- 浏览: 108496 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
Inmethetiger:
yixiandave 写道能不能在Validation注解的m ...
Spring验证小结和问题 -
yixiandave:
Inmethetiger 写道yixiandave 写道如果用 ...
Spring验证小结和问题 -
Inmethetiger:
yixiandave 写道如果用JSR303的话,可以引入hi ...
Spring验证小结和问题 -
yixiandave:
如果用JSR303的话,可以引入hibernate-valid ...
Spring验证小结和问题 -
jackytang520:
貌似用了这么久,没有碰到过这个问题..
idea属性文件中文乱码
首发地址: http://inmethetiger.iteye.com/blog/1685973
主要涉及构造方法注入,静态工厂,实例化工厂,set方法这几类方法实例化bean
1:使用空构造器进行定义,使用此种方式,class属性指定的类必须有空构造器
接口:
package com.yiyou.spring; public interface IHello { public String sayHello(); }
接口实现:
package com.yiyou.spring; public class HelloImpl implements IHello { private String message; //空的构造方法 public HelloImpl() { this.message = "Hello Spring Use Empty args Constructor"; } @Override public String sayHello() { return message; } }
配置
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"> <!-- 使用空构造器进行定义,使用此种方式,class属性指定的类必须有空构造器 --> <bean name="bean1" class="com.yiyou.spring.HelloImpl"></bean> </beans>
测试:
@Test public void test1() { BeanFactory beanFactory = new ClassPathXmlApplicationContext( "beans.xml"); IHello iHello = beanFactory.getBean("bean1", IHello.class); iHello.sayHello(); log.info(iHello.sayHello());//Hello Spring Use Empty args Constructor }
结果:Hello Spring Use Empty args Contructor
2:使用含有参数的构造器,使用此种方式,class属性指定的类必须含有该参数的构造器
接口一样。
接口实现:
package com.yiyou.spring; public class HelloImpl implements IHello { private String message; public HelloImpl(String message) { this.message = message; } @Override public String sayHello() { return message; } }
配置
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"> <!-- 使用含有参数的构造器,使用此种方式,class属性指定的类必须含有该参数的构造器 --> <bean id="bean2" class="com.yiyou.spring.HelloImpl"> <constructor-arg index="0" value="Hello Spring by Constructor"></constructor-arg> </bean> </beans>
测试
@Test public void test2() { BeanFactory beanFactory = new ClassPathXmlApplicationContext( "beans.xml"); IHello iHello = beanFactory.getBean("bean2", IHello.class); iHello.sayHello(); log.info(iHello.sayHello());//Hello Spring by Constructor }
结果:Hello Spring by Constructor表明使用带参数构造函数
3:使用静态工厂实例化bean,使用此种方法必须指定class属性,还要指定factory-method属性来指定实例化bean的方法,而且使用静态化方法也允许指定方法参数
1:接口。同上
2:同带参数的构造方法相同
3:需要一个静态工厂方法,返回一个接口
package com.yiyou.spring; public class HelloStaticFactory { //工厂方法 public static IHello newInstance(String message){ return new HelloImpl(message); } }
4:配置
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"> <!-- 使用静态工厂实例化bean,使用此种方法必须指定class属性,还要指定factory-method属性来指定实例化bean的方法,而且使用静态化 方法也允许指定方法参数 --> <bean id="bean" class="com.yiyou.spring.HelloStaticFactory" factory-method="newInstance"> <constructor-arg index="0" value="静态方法初始化bean"></constructor-arg> </bean> </beans>
测试:
@Test public void testStatic() { BeanFactory beanFactory = new ClassPathXmlApplicationContext( "beans.xml"); IHello iHello = beanFactory.getBean("bean", IHello.class); iHello.sayHello(); log.info(iHello.sayHello());// 静态方法初始化bean }
4:使用实例化工厂实例化bean,使用此种方法不能指定class属性,此刻必须使用factory-bean属性来指定工厂bean,同 样可以使用参数
一般都同上,只有以下不同
工厂方法:
package com.yiyou.spring; public class HelloInstanceFactory { //实例化工厂方法 public IHello newInstance(String message){ return new HelloImpl(message); } }
2:配置文件:
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"> <!-- 使用实例化工厂实例化bean,使用此种方法不能指定class属性,此刻必须使用factory-bean属性来指定工厂bean,同样可以使用参数 --> <!-- 实例化工厂bean初始化 --> <bean id="factoryBean" class="com.yiyou.spring.HelloInstanceFactory"></bean> <bean id="bean" factory-bean="factoryBean" factory-method="newInstance"> <constructor-arg index="0" value="实例化工厂方法初始化bean"></constructor-arg> </bean> </beans>
对静态工厂实例化和实例化工厂实例化来说,主要在配置文件中可以看出来。静态工厂中的配置文件只需要指定工厂类和工厂类的实例化方法。
而实例化工厂则需要实例化工厂类并且在实例化类中指定factory-bean
5:使用set方法注入。这个是最常见的一种,注入的对象必须存在set方法。
接口同上
实现
package com.yiyou.spring; public class HelloImpl implements IHello { private String message; public HelloImpl() { super(); // TODO Auto-generated constructor stub } public HelloImpl(String message) { super(); this.message = message; } public String getMessage() { return message; } public void setMessage(String message) { this.message = message; } @Override public String sayHello() { return message; } }
其中可以去掉构造方法。
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"> <!-- 使用set注入,使用此种方式,注入对象必须存在set方法 --> <bean name="hello" class="com.yiyou.spring.HelloImpl"> <property name="message" value="这是使用set方法注入的"></property> </bean> </beans>
测试:
@Test public void test1() { BeanFactory beanFactory = new ClassPathXmlApplicationContext( "beans.xml"); IHello iHello = beanFactory.getBean("hello", IHello.class); iHello.sayHello(); log.info(iHello.sayHello());//这是使用set方法注入的 }
------------------------------------------------防广告线-----------------------------------------------------------------
发表评论
-
Spring验证小结和问题
2014-07-27 16:36 4885因为从云笔记中粘贴过来的,代码格式就没有了。格式稍好点的地 ... -
在spring中使用Ehcache
2014-06-18 16:07 1042前提: 使用环境:详细页面 依赖包: ... -
Spring MVC 3.0版本和3.1版本的一点小区别
2013-06-12 00:57 2727先上代码: 主要是控制器: @Controller ... -
在Maven下的springJpa多模块开发引起的问题
2013-02-21 22:33 3113最近的项目搭建中,出现了一个问题。 ... -
spring 事务二:注解springmvc+注解or声明式事务
2012-11-23 08:42 2235前面讲了两大类,四种spring事务的方式。这篇主要记录基于注 ... -
spring 事务一:非注解springmvc+注解or声明式事务
2012-11-22 15:47 2495前两天一人问我,在使用spring mvc (基于注解) 的时 ... -
在spring中使用mybatis
2012-11-14 21:59 3631今天在使用mybatis的时候,发现dao的实现竟然可以不需要 ... -
@Controller中的@RequestMapping参数
2012-11-07 09:56 3815转载自:http://blog.sina.com.cn/s/b ... -
三种连接池的配置
2012-09-28 10:00 1146用spring默认的连接池性能效率不高, 如果数据库重启 ... -
spring jdbc之query详细实例2
2012-09-27 16:45 1885首发地址: http://inmethetiger.iteye ... -
spring jdbc之query详细实例1
2012-09-27 16:15 3221首发:http://inmethetiger.iteye. ... -
spring jdbc之最简单的增删改查
2012-09-27 10:10 2073首发地址: http://inmethetiger.iteye ... -
Spring Aop(一)
2012-09-26 16:06 766这是一个简单的spring aop的例子。 一:定义目 ... -
spring mvc表单标签和@ModelAttribute
2012-09-20 21:05 9115首发地址:http://inmethetiger.iteye ... -
spring相关资料的URL(持续更新)
2012-09-20 13:34 1200首发地址http://inmethetiger.iteye.c ... -
Spring mvc注解之实现MultiActionController功能
2012-09-16 16:38 1633首发地址http://inmethetiger.iteye.c ... -
spring mvc 之注解版基础
2012-09-14 17:28 920首发地址:http://inmethetiger.iteye ... -
spring mvc 之MultiActionController和MethodNameResolver--附带实例
2012-09-14 17:23 1981首发地址:http://inmethetiger.iteye. ... -
Spring MVC的开发流程--附带实例
2012-09-12 18:05 2569首发地址: http://inmethetiger.i ...
相关推荐
Spring 实例化Bean的三种方式
spring配置对象实例化后执行的方法,两种实现比对,通过InitializingBean接口,并实现arterPropertiesSet()方法;或者通过applicationContext.xml配置init-method属性
NULL 博文链接:https://88548886.iteye.com/blog/1682243
spring实例化对象
Spring的三种实例化Bean的方式
spring配置对象实例化后执行的方法,两种实现比对,通过DisposableBean接口,并实现destory()方法;或者通过applicationContext.xml配置destory-method属性
Spring 延迟实例化
JavaEE spring实例工厂的实例方式
spring 静态实例化
spring国际化实例 下下来就能用 捐点分吧(就1分) 谢谢
可以把dao层的id等内容实例化至数据库
介绍了spring实例化javabean的三种方式,有需要的朋友可以参考一下
Spring项目bean实例化代码,包括bean是如何创建的;实例化bean的三种方式,构造方法,静态工厂和实例工厂。
本篇文章主要介绍了详解Spring中bean实例化的三种方式,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
主要介绍了Spring实例化bean的方式代码详解,具有一定借鉴价值,需要的朋友可以参考下
主要介绍了Spring实例化bean过程解析及完整代码示例,简单分析实例化bean过程并且分享了相关实例,具有一定借鉴价值,需要的朋友可以参考下
通过实例工厂方法和静态工厂方法实例化spring bean的例子。
主要介绍了Spring Bean实例化实现过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
spring3中实例化BeanFactory的3中方法
实例化Bean有三种方式,分别为构造器实例化、静态工厂方式实例化和实例工厂方式实例化(其中最常用的是构造器实例化)。 2.2.1 构造器实例化 创建Web项目,导入相关Jar包; 创建名为Bean1的Java类; 创建Spring配置...