Spring 学习记录 3 自动装配
2014-10-22 12:49
323 查看
上一篇介绍了 Spring 中最简单的依赖注入。
这一篇将介绍自动装配。
框架的目的一直没变,让编程变得更傻瓜化。
保证易用性和拓展性的同时,框架的规则会限定你,
确保不会让代码变得太过糟糕。
将 noname.xml 稍作改动
这样就可以使用注解装配了,并且 weapon 不再是通过构造函数注入,而是通过自动装配。
Spring 容器会在声明的 bean 中寻找,符合 Weapon 接口的类,并装配到 weapon 属性中。
如果找不到这样的类,就会报错。
如果有多个符合条件的实现类,添加该注解时就会提示错误信息。
最后,强调一点。
之前提过,spring 中默认 bean 都是单列。
这其实是不对的,人怎么可能只有一个呢,应该有其他可选的配置吧。
这一篇将介绍自动装配。
框架的目的一直没变,让编程变得更傻瓜化。
保证易用性和拓展性的同时,框架的规则会限定你,
确保不会让代码变得太过糟糕。
将 noname.xml 稍作改动
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> <context:annotation-config/> <bean id="weapon" class="ivo.BowAndArrow"/> <bean id="person" class="ivo.Person"/> </beans>
这样就可以使用注解装配了,并且 weapon 不再是通过构造函数注入,而是通过自动装配。
public class Person { @Autowired private Weapon weapon; public void killEnemy() { weapon.killEnemy(); } }
Spring 容器会在声明的 bean 中寻找,符合 Weapon 接口的类,并装配到 weapon 属性中。
如果找不到这样的类,就会报错。
如果有多个符合条件的实现类,添加该注解时就会提示错误信息。
最后,强调一点。
之前提过,spring 中默认 bean 都是单列。
这其实是不对的,人怎么可能只有一个呢,应该有其他可选的配置吧。
相关文章推荐
- Spring学习记录(十一)---使用注解和自动装配
- Spring学习记录(三)---bean自动装配autowire
- Spring视频学习笔记(3)Bean的作用域及自动装配
- ITCAST视频-Spring学习笔记(@Autowire注解与自动装配)
- [spring学习之一]自动装配
- Spring学习(三)—— 自动装配案例分析
- Spring学习笔记--自动装配Bean属性
- Spring 学习笔记 -beans 的自动扫描与装配和管理
- spring学习总结(五):IOC & DI 配置 Bean 之自动装配及bean之间的关系
- Spring学习之Bean的自动装配(非注解)
- spring自动装配的学习研究各种情况(未完待续.....)
- 【Spring学习笔记四】-自动装配Bean
- Spring4 学习笔记(5)-Spring 的自动装配
- [原创]java WEB学习笔记99:Spring学习---Spring Bean配置:自动装配,配置bean之间的关系(继承/依赖),bean的作用域(singleton,prototype,web环境作用域),使用外部属性文件
- Spring 学习笔记【一】自动装配bean
- Spring学习第五天:配置bean-自动装配
- Spring学习(16)--- 基于Java类的配置Bean 之 基于泛型的自动装配(spring4新增)
- spring学习笔记(13)——注解Autowired自动装配
- Spring的自动装配学习总结/spring的自动装配
- 学习Spring(三) -- Spring的自动装配