SpringBoot学习笔记(一) @Configuration 和 @Import注解使用和理解
SpringBoot @Configuration
注解属性的用法
proxyBeanMethods
属性,默认为true。为true时是全配置(Full)
@Configuration
等于
@Configuration(proxyBeanMethods = true)
当proxyBeanMethods
为true时,其他类对该配置类下所有组件的调用都去容器中找组件,所以每次都取到的都是同一个对象。能够解决组件依赖问题。
proxyBeanMethods
属性为flase时是轻量级配置(Lite)
@Configuration(proxyBeanMethods = flase)
当proxyBeanMethods
为false时,容器中再也不会保存代理对象,所以在外面每一次调用都会产生一个新的对象。可以解决。
当proxyBeanMethods
为false时,springboot运行起来比较快,因为它不会去容器中检查调用的组件是否存在。相反的,proxyBeanMethods
为true时,springboot运行起来较慢,因为外界每一次对组件的调用,它都会去容器中看该组件是否存在。
所以,如果配置类中的组件经常被调用的话就把proxyBeanMethods
设为true,能够保证容器中对象依赖的组件就是那个组件。如果只是单单给容器注册组件,别人也不依赖我们这些组件,我们就把proxyBeanMethods
调为false。
SpringBoot @Import
注解的用法
@Import
注解的作用是调用无参构造方法创建对象并将指定类型的组件导入容器中
@Import({User.class,Pet.class})
@Import 导入的组件的名字默认就是全类名