(五)JavaConfig

一、介绍

Java Config是指基于Java配置的Spring。传统的Spring一般都是基本xml配置的,后来Spring3.0新增了许多Java Config的注解,特别是Spring Boot,基本都是清一色的Java Config。

在XML配置和直接注解式配置之外还有一种有趣的选择方式-JavaConfig,它是在Spring 3.0开始从一个独立的项目并入到Spring中的。它结合了XML的解耦和JAVA编译时检查的优点。JavaConfig可以看成一个XML文件,只不过是使用Java编写的。

二、JavaConfig的使用

2.1.配置类
以往Spring的组件注册都是写在xml配置文件中,或者开启组件扫描开关后使用@Component、@Service、@Repository来注册组件。
JavaConfig组件的注册是写在配置类中的,配置类就类似于xml配置文件,同时该类对象也是容器中的一个组件。
(五)JavaConfig

2.2.组件注册
组件注册就是将xml中的bean标签转换为配置类中的一个方法。
该方法的注解、返回值、方法名、形参都是具备特殊含义的。
注解:@Bean注解中的value用来指定组件的id,对应bean标签中的id。
返回值:返回值的类型为该组件的类或其接口,对应bean标签中的class或其接口。
方法名:如果没有通过@Bean注解的value属性指定组件id,默认使用方法名作为组件id。
形参:形参可以直接从容器中取出对应的类型的组件,前提是容器中该类型的组件只有一个,类似于@Autowired;如果该类型的形参在容器中不止一个,需要在形参前增加@Qualifier来指定组件id。
(五)JavaConfig
(五)JavaConfig
2.3.其他标签
在xml文件中存在些标签并不是bean标签,不是用于组件注册的;比如注解扫描开关,事务注解驱动等,这些也有的JavaConfig形式,这些以注解的形式写在配置类上。
2.3.1.spring注解扫描开关
<context:component-scan base-package/> spring注解扫描开关
(五)JavaConfig
2.3.2.引入配置文件
<context:property-placeholder location/>
(五)JavaConfig
2.3.3.aspectj注解开关
aop:aspectj-autoproxy/
(五)JavaConfig
2.3.4.事务的注解开关
<tx:annotation-driven transaction-manager/>
(五)JavaConfig
2.4.单元测试
之前是加载配置文件,现在是加载配置类
(五)JavaConfig