Spring提供@Component注解的三个衍生注解(@Component是通用的)
@Controller :用于表现层bean定义
@Service :用于业务层bean定义
@Repository :用于数据层bean定义(意为数据仓库)
二、纯注解开发 把配置文件写成类的形式@Configuration注解用于设定当前类为配置类
@ComponentScan注解用于设定扫描路径,此注解只能添加一次,多个数据请用数组格式
Spring3. 0开启了纯注解开发模式,使用Java类替代配置文件,开启了Spring快速开发赛道
读取Spring核心配置文件初始化容器对象切换为读取Java配置类初始化容器对象
三、bean的作用范围和生命周期prototype就是多例模式
bean的作用范围:bean的生命周期
四、自动装配
@Autowired是按类型装配的
使用反射里的暴力反射,给serviceImplment直接加值了,不需要再用set注入
所以这样我们一个注解就能完成装配的问题
注意: 自动装配基于反射设计创建对象并暴力反射对应属性为私有属性初始化数据, 因此无需提供setter方法
注意:自动装配建议使用无参构造方法创建对象(默认) ,如果不提供对应构造方法,请提供唯一的构造方法
如果有相同类型的bean,使用@Autowired和@Repository时,在@Repository后要加上名字,
但是推荐使用@qualifier(“bookDao2),这个注解必须搭配 @Autowired使用
使用@Value进行简单类型注入
怎样把外部的properties注入
1.在配置类中用@propertySource("配置文件名")
2.在@Value后面用${里面内容是配置文件的内容}
五、第三方的bean管理
spring中配置类都会有独立的
不建议使用下面的方法
第三方bean依赖注入: 简单类型用成员变量的方法 引用类型用方法形参 XML配置与注解配置的对比



