SpringBoot配置类中@Configuration和@Bean的作用
作者:明天天明~
这篇文章主要介绍了SpringBoot配置类中@Configuration和@Bean的作用,@Configuration 指明当前类是一个配置类来替代之前的Spring配置文件,Spring boot的配置类,相当于Spring的配置文件,需要的朋友可以参考下
@Configuration和@Bean的作用
- @Configuration 指明当前类是一个配置类来替代之前的Spring配置文件,Spring boot的配置类,相当于Spring的配置文件
- @Bean将方法的返回值添加到容器中
通过@Bean向容器中注册组件:
方法名就是组件的id,返回类型就是组件类型,返回的值就是组件中的实例对象
@Bean("XXX“)XXX就是组件id的别名
@Bean public User user01(){ User user = new User(); user.setName("zhangao"); user.setAge(12); user.setPet(tomcat());//这个pet就是容器中的pet return user; } @Bean("tom")//不用方法名作为组件id,为组件id起别名 public Pet tomcat(){ return new Pet("tom"); }
@Configuration(proxyBeanMethods = true) 开启代理bean
true :每次调用组件中的实例,如果组件有都会调用组建的代理实例,多次调用都是调用的同一个代理实例。
false:每次调用都会重新创建一个组件实例。
@Configuration注解作用在类上,就和普通类一样能够进行相互嵌套,定义内部类。
// 来自JavaDoc @Configuration public class AppConfig{ @Inject DataSource dataSource; @Bean public MyBean myBean(){ return new MyBean(dataSource); } @Configuration static class DataConfig(){ @Bean DataSource dataSource(){ return new EmbeddedDatabaseBuilder().build() } } }
在上述代码中,只需要在应用程序的上下文中注册 AppConfig 。由于是嵌套的@Configuration 类,DataConfig 将自动注册。
当 AppConfig 、DataConfig 之间的关系已经隐含清楚时,这就避免了使用@Import 注解的需要。
到此这篇关于SpringBoot配置类中@Configuration和@Bean的作用的文章就介绍到这了,更多相关@Configuration和@Bean的作用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!