JavaConfig,是在Spring 3.0开始从一个独立的项目并入到Spring中的。JavaConfig可以看成一个用于完成Bean装配的Spring配置文件,即Spring容器,只不过该容器不是XML文件,而是由程序员使用Java自己编写的Java类。
@Configuration 注解的使用
-
从
Spring3.0,@Configuration用于定义配置类,可替换xml配置文件,被注解的类内部包含有一个或多个被@Bean注解的方法
@Component 的注解的使用
-
一旦使用关于
Spring的注解出现在类里,例如别的地方需要使用这个类,要用到@Autowired注解,被注解的这个类是从Spring容器里取出来的,那调用的实现类也需要被Spring容器管理,加上@Component -
把普通
pojo实例化到spring容器中,相当于配置文件中的<bean id="" class=""> -
泛指各种组件,就是说当我们的类不属于各种归类的时候(不属于
@Controller、@Service、@Repository的时候),我们就可以使用@Component来标注这个类-
@Controller控制器 (注入服务) -
@Service服务(注入dao) -
@Repository(实现dao访问)
-
@Configuration和@Component的区别
-
如果使用
@Configuration,所有用@Bean标记的方法会被包装成
CGLIB的wrapper其工作原理是:如果方式是首次被调用那么原始的方法体会被执行并且结果对象会被注册到Spring上下文中。之后所有的对该方法的调用仅仅只是从Spring上下文中取回该对象返回给调用者 -
如果使用
@Component,所有用@Bean只是纯
JAVA方式的调用,需要使用到@Autowired注解,多次调用该方法返回的是不同的对象实例。
@Bean注解的使用
-
Spring的@Bean注解用于告诉方法,产生一个Bean对象,然后这个Bean对象交给Spring管理。产生这个Bean对象的方法Spring只会调用一次,随后这个Spring将会将这个Bean对象放在自己的IOC容器中。 -
SpringIOC容器管理一个或者多个bean,这些bean都需要在@Configuration注解下进行创建,在一个方法上使用@Bean注解就表明这个方法需要交给Spring进行管理。
@Bean和@Autowired的区别
我也引用一下最漂亮的回答
-
@Bean告诉Spring:”这是这个类的一个实例,请保留它,并在我请求时将它还给我“ -
@Autowired说:”请给我一个这个类的实例,例如,一个我之前用@Bean注解创建的实例“
什么是POJO
-
Plain Ordinary Java Object:简单普通的java对象 -
有一些
private的参数作为对象的属性及其getter、setter方法的类 -
POJO主要用于数据的临时传递,它只能装载数据, 作为数据存储的载体,不包含业务逻辑的单纯用来存储数据的java类
@ConfigurationProperties注解
-
java config是指基于java配置的spring,传统的Spring一般都是基本xml配置的,后来spring3.0新增了许多java config的注解,特别是spring boot,基本都是清一色的java config。 -
@ConfigurationProperties的POJO类的命名比较严格,因为它必须和prefix的后缀名要一致,不然值会绑定不上,特殊的后缀名是”driver-class-name“这种带横杠的情况,在POJO里面的命名规则是下划线转驼峰就可以绑定成功,所以就是”driverClassName“ -
@ConfigurationProperties和@Value有着相同的功能,但是@ConfigurationProperties的写法更为方便
@Data注解的使用
-
提高代码的简洁,使用这个注解可以省去代码中大量的
get()、set()、toString()等方法