@Configuration
类是定义 bean 配置的地方,而 @Bean
方法是具体创建 bean 实例的方法。
@Configuration
作用:
@Configuration
注解用于定义配置类,表明该类包含一个或多个 bean 定义的方法。Spring 容器在启动时会自动扫描这些配置类以注册 bean。生命周期:
特点:
@Bean
定义方法。@Configuration
注解的类可以使用 Spring 的 @ComponentScan
注解来自动扫描和注册 bean。如果不懂 @ComponentScan
注解作用,可以看下我这篇文章
springboot注解@ComponentScan 详解-CSDN博客
@Bean
作用:
@Bean
注解用于在配置类中声明一个 bean。当配置类使用 @Configuration
标注时,@Bean
注解的方法将返回一个对象,该对象由 Spring 容器管理。生命周期:
@Bean
注解的方法在首次被调用时执行,除非指定了作用域为 prototype。对于单例(singleton)作用域(默认),结果对象添加到 Spring 上下文中,并在后续的请求中重用。特点:
@Bean
方法可以有参数,这些参数由 Spring 自动提供,通常是对其他 bean 的引用。相互依赖:@Configuration
类提供了一个或多个 @Bean
方法,这些方法实际上定义了应用中的 bean。@Configuration
类是用于声明这些 bean 的容器,而 @Bean
方法是用来创建具体的 bean 实例。
增强的功能:当一个类使用 @Configuration
注解时,Spring
会对这个类进行特殊处理,为其创建一个增强的代理。这个代理确保 @Bean
方法的调用被正确地处理,以便每个 bean 只被实例化一次(对于单例作用域),即使它在配置类中被多次引用。
以下是一个使用 @Configuration
和 @Bean
的简单示例:
@Configuration
public class AppConfig {
@Bean
public MyService myService() {
return new MyServiceImpl();
}
}
public interface MyService {
// service methods
}
public class MyServiceImpl implements MyService {
// implementation of service methods
}
在这个例子中,AppConfig
是一个配置类,用 @Configuration
标注。它声明了一个 @Bean
方法 myService
,该方法返回 MyServiceImpl
的实例。Spring 容器会自动识别 AppConfig
类,调用 myService
方法,并将返回的对象添加到 Spring 应用上下文中。
------------------------------------------与正文内容无关------------------------------------
如果觉的文章写对各位读者老爷们有帮助的话,麻烦点赞加关注呗!小弟在这拜谢了!
如果您觉得我的文章在某些地方写的不尽人意或者写的不对,从而让你对你人生观产生颠覆(概不负责),需要斧正,麻烦在评论区不吝赐教,作者看到后会根据您的提示查阅文章进行修改,还这世间一个公理一片蓝天