注解开发
一、注解开发定义Bean
1.注解开发的使用
(1)在要配置的Bean类上加注解@Component
【tips】这样操作就相当于之前的
:“@Component”表示要配置一个Bean(<bean>),后面()内写id,写在哪个类中代替了class。
(2) 在配置文件中扫描(scan)注解配置的Bean
【tips】注意是在context中扫描,base-package表示要扫描的位置。
(3)使用Bean即可
2.@Component的衍生注解
Spring为表现层、业务层和数据层提供了各自的@Component衍生注解。(用法和作用都与@Component一样)
(1)@Controller——表现层定义Bean
(2)@Service——业务层
(3)@Repository——数据层
3.纯注解开发的使用
(1)创建配置类
在类上@Configuration,用于设置当前类为配置类。
(2)用@ComponentScan扫描要管理的Bean
(3)通过加载Spring配置类初始化容器
因为没有配置文件了,所以不能用之前的
来初始化容器。
二、Bean的管理
1.Bean的作用范围
2.控制生命周期
分别在创建后和销毁前要执行的方法上用@PostConstruct和@PreDestroy表示两个方法:
三、使用注解实现依赖注入的自动装配
自动装配基于反射设计创建对象,并暴力反射对应属性为私有属性初始化数据,因此无set方法时也可使用@Autowired注解进行自动装配。
1.引用类型的自动装配
(1)类型唯一按类型自动装配
(2)类型不唯一按指定名称自动装配
用@Qualifier("beanName")指定名称:
【注意】@Qualifier必须配合@Autowired使用,无法单独使用。
2.简单类型的自动装配
使用@Value("value")实现简单类型的自动装配
3.通过properties文件进行自动装配简单类型
(1)加载properties文件
在配置类中使用@PropertySource("path")加载:
【注意】路径仅支持单一文件配置,多文件路径可用数组格式配置,不能使用*。
(2)读取文件中的数据
使用${"keyName"}的形式读取:
四、注解开发管理第三方Bean(以DruidDataSource为例)
1.第三方Bean的管理
管理第三方Bean由于不能把配置直接写在源代码中,所以只能在配置类中进行配置。
(1)定义JdbcConfig类
(2)定义方法来获取要管理的DruidDataSource对象
该类用来配置与JDBC有关的Bean,但是不用写@Configuration将其声明成一个配置类!
(3)将该方法的返回值定义成Bean
在方法上使用@Bean表示该方法的返回值是一个Bean:
(4)将JdbcConfig导入到SpringConfig配置类
在SpringConfig配置类(上有@Configuration)上用@Import导入JdbcConfig.class即可将其声明为配置类:
2.第三方Bean的依赖注入
(1)简单类型注入——成员变量
使用@Value
(2)引用类型注入(★)——方法形参
为获取Bean的方法设置形参即可,形参即为要注入的引用类型,容器会按类型进行自动装配: