Spring Bean装配-自动装配
2016-02-28 15:42
381 查看
一、autowiring方式
二、autowiring使用方法
1. xml中
<?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.xsd" <span style="background-color: rgb(255, 255, 153);"> default-autowire="byName"></span>
<bean <span style="background-color: rgb(255, 255, 153);">id="autoWiringService"</span> class="com.imooc.autowiring.AutoWiringService" ></bean>
<bean id="<span style="font-family: Arial, Helvetica, sans-serif;">AutoWiringService </span><span style="font-family: Arial, Helvetica, sans-serif;">" class="com.imooc.autowiring.AutoWiringDAO" ></bean></span>
</beans>
2. .java中
public class AutoWiringService {
private AutoWiringDAO autoWiringDAO;
public AutoWiringService(AutoWiringDAO autoWiringDAO) {
System.out.println("AutoWiringService");
this.autoWiringDAO = autoWiringDAO;
}
<span style="background-color: rgb(255, 255, 153);"> public void setAutoWiringDAO(AutoWiringDAO autoWiringDAO) {
System.out.println("setAutoWiringDAO");
this.autoWiringDAO = autoWiringDAO;
}</span>
public void say(String word) {
this.autoWiringDAO.say(word);
}
}
3. 单元测试类
@RunWith(BlockJUnit4ClassRunner.class)
public class TestAutoWiring extends UnitTestBase {
public TestAutoWiring() {
super("classpath:spring-autowiring.xml");
}
@Test
public void testSay() {
AutoWiringService service = super.getBean("autoWiringService");
service.say(" this is a test");
}
}
三、总结
byName:bean的名称和<bean>中的id要对应。如果上例子,private AutoWiringDAO autoWiringDAO中autoWiringDAO要和xml中bean的属性id保持一致。如果xml中存在两个一样的bean id,则项目启动时,spring会报错。
byType:bean的名称和<bean>中的class要对应。
constructor:应用于构造器参数
spring自动来把dao装配到service中。不用显示调用setter方法了。default-autowire="byName"配置文件中这个配置就是来自动装配的,只要service中有setter方法,就会找到对应的dao自动装配到service中(是在使用default-autowire="byName"或是byType的时候,如果需要把某个类A注入到类B中,需要在类B中有setter方法)
二、autowiring使用方法
1. xml中
<?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.xsd" <span style="background-color: rgb(255, 255, 153);"> default-autowire="byName"></span>
<bean <span style="background-color: rgb(255, 255, 153);">id="autoWiringService"</span> class="com.imooc.autowiring.AutoWiringService" ></bean>
<bean id="<span style="font-family: Arial, Helvetica, sans-serif;">AutoWiringService </span><span style="font-family: Arial, Helvetica, sans-serif;">" class="com.imooc.autowiring.AutoWiringDAO" ></bean></span>
</beans>
2. .java中
public class AutoWiringService {
private AutoWiringDAO autoWiringDAO;
public AutoWiringService(AutoWiringDAO autoWiringDAO) {
System.out.println("AutoWiringService");
this.autoWiringDAO = autoWiringDAO;
}
<span style="background-color: rgb(255, 255, 153);"> public void setAutoWiringDAO(AutoWiringDAO autoWiringDAO) {
System.out.println("setAutoWiringDAO");
this.autoWiringDAO = autoWiringDAO;
}</span>
public void say(String word) {
this.autoWiringDAO.say(word);
}
}
3. 单元测试类
@RunWith(BlockJUnit4ClassRunner.class)
public class TestAutoWiring extends UnitTestBase {
public TestAutoWiring() {
super("classpath:spring-autowiring.xml");
}
@Test
public void testSay() {
AutoWiringService service = super.getBean("autoWiringService");
service.say(" this is a test");
}
}
三、总结
byName:bean的名称和<bean>中的id要对应。如果上例子,private AutoWiringDAO autoWiringDAO中autoWiringDAO要和xml中bean的属性id保持一致。如果xml中存在两个一样的bean id,则项目启动时,spring会报错。
byType:bean的名称和<bean>中的class要对应。
constructor:应用于构造器参数
spring自动来把dao装配到service中。不用显示调用setter方法了。default-autowire="byName"配置文件中这个配置就是来自动装配的,只要service中有setter方法,就会找到对应的dao自动装配到service中(是在使用default-autowire="byName"或是byType的时候,如果需要把某个类A注入到类B中,需要在类B中有setter方法)
相关文章推荐
- 一个jar包里的网站
- 一个jar包里的网站之文件上传
- 一个jar包里的网站之返回对媒体类型
- Spring整合Quartz(JobDetailBean方式)
- Spring整合Quartz(JobDetailBean方式)
- 模拟Spring的简单实现
- spring+html5实现安全传输随机数字密码键盘
- Spring中属性注入详解
- SpringMVC框架下JQuery传递并解析Json格式的数据是如何实现的
- struts2 spring整合fieldError问题
- spring的jdbctemplate的crud的基类dao
- 读取spring配置文件的方法(spring读取资源文件)
- Spring Bean基本管理实例详解
- java实现简单美女拼图游戏
- 详解Java的Spring框架中的事务管理方式
- 解析Java的Spring框架的BeanPostProcessor发布处理器
- Java开发框架spring实现自定义缓存标签
- java基本教程之线程休眠 java多线程教程
- JSP开发中在spring mvc项目中实现登录账号单浏览器登录
- spring boot实战之内嵌容器tomcat配置