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