1、@Configuration & @Bean

Configuration 翻译:配置

当类被 @Configuration 注解时,是告诉 SpringBoot 这是一个配置类。相当于 Spring 的 xml 配置文件。

@Configuation 默认是单实例的。
proxyBeanMethods 翻译:bean 的代理方法

  • 单实例:无论外界怎么调用容器中的 bean,每次调用的都是同一个对象。
  • 多实例:容器中的 bean 每次被外界调用都会在内存中新建一个实例,即每次被调用的对象都不同。
    1. @Configuration(proxyBeanMethods = true) // 单实例(默认)
    2. @Configuration(proxyBeanMethods = false) // 多实例

配置类中的方法用 @Bean 注解,@Bean 的含义是给容器注册组件,默认也是单实例的。

  • 默认以方法名作为组件的 id,或者给注解添加参数更改 id ==> @Bean("id")
  • 返回类型是组件类型
  • 返回的值就是组件在容器中的实例