Java学习 --- @Configuration注解

一、@Configuration 与@Bean注解

  1. @Configuration //这个类就是配置类相当于配置文件
  2. public class MyConfig {
  3. @Bean
  4. public User user(){
  5. return new User("老王",25);
  6. }
  7. @Bean("pet") //相当于组件
  8. public Pet pet(){
  9. return new Pet("小白",1);
  10. }
  11. }

 二、加载的组件相当于单实例

  1. @SpringBootApplication
  2. public class MyApplicataion {
  3. public static void main(String[] args) {
  4. ConfigurableApplicationContext run = SpringApplication.run(MyApplicataion.class, args);
  5. String[] names = run.getBeanDefinitionNames();
  6. for (String name: names) {
  7. System.out.println(name);
  8. }
  9. Pet pet1 = run.getBean("pet", Pet.class);
  10. Pet pet2 = run.getBean("pet", Pet.class);
  11. System.out.println("pet1 与 pet2:"+ (pet1 == pet2));
  12. }
  13. }

 三、配置类本身是组件

  1. @SpringBootApplication
  2. public class MyApplicataion {
  3. public static void main(String[] args) {
  4. ConfigurableApplicationContext run = SpringApplication.run(MyApplicataion.class, args);
  5. String[] names = run.getBeanDefinitionNames();
  6. for (String name: names) {
  7. System.out.println(name);
  8. }
  9. MyConfig bean = run.getBean(MyConfig.class);
  10. System.out.println(bean);
  11. }

四、@Configuration(proxyBeanMethods = true)

  1. @Configuration(proxyBeanMethods = true) //这个类就是配置类相当于配置文件
  2. public class MyConfig {
  3. @Bean
  4. public User user(){
  5. return new User("老王",25);
  6. }
  7. @Bean("pet") //相当于组件
  8. public Pet pet(){
  9. return new Pet("小白",1);
  10. }
  11. }


原文链接:https://blog.csdn.net/qq_46093575/article/details/123719491

posted @ 2022-08-18 21:55  独苏  阅读(446)  评论(0编辑  收藏  举报