zoukankan      html  css  js  c++  java
  • Springboot@Configuration和@Bean详解

    Springboot@Configuration和@Bean详解

    一、@Configuration

    @Target({ElementType.TYPE})
    @Retention(RetentionPolicy.RUNTIME)
    @Documented
    @Component
    public @interface Configuration {
        @AliasFor(
            annotation = Component.class
        )
        String value() default "";
    }

    可以看到在@Configuration注解中是包含@Component注解的,被@Configuration修饰的类被定义为一个Spring容器(应用上下文)

    @Configuration就相当于Spring配置文件中的<beans />标签,里面可以配置bean

    二、@Bean

    @Bean相当于Spring配置文件中的<bean />标签可以在Spring容器中注入一个bean

    @Configuration
    public class TestConfiguration {
    
        @Bean
        public TestBean testBean() {
            return new TestBean();
        }
    
    }

    上述代码相当于实例化一个TestBean并交给Spring容器管理

    ps: 

    1、@Bean注解在返回实例的方法上,如果未通过@Bean指定bean的名称,则默认与方法名相同

    2、@Bean注解默认作用域为单例singleton作用域,可通过@Scope(“prototype”)设置为多例

    三、依赖注入

    @Configuration
    public class TestConfiguration {
    
        @Bean
        public TestBean testBean() {
            return new TestBean();
        }
    
        @Bean
        public DIBean diBean() {
            return new DIBean(testBean());
        }  
    
    }

    如上述代码,通过在@Bean方法中调用其他@Bean注解的方法来实现依赖注入

     ps:

    当需要强制指定实例化bean的顺序,可以通过@Order或@DependsOn注解来实现

  • 相关阅读:
    MongoDB的下载与安装
    Oracle PL/SQL 编程手册(SQL大全)
    内部类、异常、其他
    异常(补充)
    final、抽象类、接口、多态、
    改变JVM中的参数以提高Eclipse的运行速度
    Java中的三目运算符 详解
    Java中的Stringbuffer类解析
    Staitic(静态) 相关知识点介绍
    Java反射
  • 原文地址:https://www.cnblogs.com/javafucker/p/10148464.html
Copyright © 2011-2022 走看看