SpringBoot配置类中@Configuration和@Bean的作用
@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的作用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
SpringBoot如何使用RateLimiter通过AOP方式进行限流
这篇文章主要介绍了SpringBoot如何使用RateLimiter通过AOP方式进行限流,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2022-06-06
MyBatis在insert插入操作时返回主键ID的配置(推荐)
这篇文章主要介绍了MyBatis在insert插入操作时返回主键ID的配置的相关资料,需要的朋友可以参考下2017-10-10
SpringBoot学习篇之@Valid与@Validated的区别
@Valid是使用Hibernate validation的时候使用,@Validated是只用Spring Validator校验机制使用,下面这篇文章主要给大家介绍了关于SpringBoot学习篇之@Valid与@Validated区别的相关资料,需要的朋友可以参考下2022-11-11
logback中显示mybatis查询日志文件并写入的方法示例
这篇文章主要为大家介绍了logback中显示mybatis查询日志文件并写入的方法示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪2022-03-03
在springboot3微项目中如何用idea批量创建单元测试逻辑
这篇文章主要介绍了在SpringBoot3项目中使用IntelliJIDEA批量创建单元测试包括准备工作(确保项目配置正确,添加测试依赖),使用IntelliJIDEA创建测试,感兴趣的朋友一起看看吧2024-10-10


最新评论