@bean用于定义一个bean实例,@configuration用于标识配置类,二者配合使用可实现spring容器中组件的有效管理。
1、 Spring的Java配置方式核心在于使用@Configuration注解的类和@Bean注解的方法,通过这种基于Java的配置模式,能够更灵活、清晰地声明和管理Spring中的Bean,显著增强配置的可读性与类型安全。

2、 使用@Bean注解的方法,表示该方法将负责创建并返回一个由Spring IoC容器管理的对象实例。对于熟悉XML配置的开发者来说,@Bean的作用类似于XML中的

3、 @Configuration注解表明该类是一个配置类,主要用于提供Bean的定义。此外,它还支持在同一个类内部调用其他被@Bean标注的方法来构建Bean之间的依赖关系。这种方式使得配置逻辑内聚,便于管理和复用,增强了配置类的整体结构性与可维护性。

4、 以下是最基本的配置类编写示例。

5、 上述AppConfig类所实现的功能,等同于如下Spring XML配置。

6、 若在未使用@Configuration注解的类中定义@Bean方法,则这些方法将以“精简模式”处理。此类情况通常出现在普通的@Component类或普通Java类中,这类类本身并非专为配置设计,其主要职责可能是实现业务功能。此时的@Bean方法仅作为向Spring容器注册Bean的一种附加手段。例如,某个服务类可通过添加@Bean方法,将其自身暴露给Spring容器进行管理,从而在不破坏原有结构的前提下扩展容器集成能力,体现了一种轻量级、灵活的配置策略。

7、 在精简模式下,@Bean方法无法正确表达Bean间的依赖调用关系。这类方法通常只作用于所在类的内部状态,也可通过参数注入外部依赖。因此,不应在一个@Bean方法中直接调用另一个@Bean方法。每个@Bean方法本质上是一个独立的工厂方法,仅负责创建并返回一个Bean实例,不具备特殊的代理行为。由于无需Spring对其进行代理增强,故不需要CGLIB生成子类,从而允许配置类为final类或不可继承类型,提高了类设计的自由度。

8、 在标准实践中,@Bean方法应定义在@Configuration类中,以确保运行在“完整模式”下。在此模式中,对@Bean方法的调用会被Spring容器拦截并重定向,确保始终从容器中获取实例,避免重复创建对象。这种方式有效解决了因直接调用@Bean方法而导致的单例失效问题,防止了精简模式下可能出现的隐蔽错误,保障了Bean生命周期的一致性和配置的可靠性。

以上就是@Bean与@Configuration详解的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号