Springboot加载动态Bean的10种方式
        【摘要】 使用@Bean注解动态创建Bean在Springboot中,可以使用@Bean注解在配置类中动态创建Bean,例如:@Configurationpublic class MyConfig {    @Bean    public MyBean myBean() {        return new MyBean();    }}使用@Component注解动态创建Bean除了使用@Bean...
    
    
    
    - 使用@Bean注解动态创建Bean
 
在Springboot中,可以使用@Bean注解在配置类中动态创建Bean,例如:
@Configuration
public class MyConfig {
    @Bean
    public MyBean myBean() {
        return new MyBean();
    }
}
 - 使用@Component注解动态创建Bean
 
除了使用@Bean注解创建Bean外,还可以使用@Component注解动态创建Bean,例如:
@Component
public class MyComponent {
    @Autowired
    private MyService myService;
    // ...
}
 - 使用@Import注解动态导入Bean
 
使用@Import注解可以动态导入其他配置类中的Bean,例如:
@Configuration
@Import(MyConfig.class)
public class AppConfig {
    @Autowired
    private MyBean myBean;
    // ...
}
 - 使用@ConfigurationProperties注解动态注入配置属性
 
使用@ConfigurationProperties注解可以动态注入配置属性,例如:
@Configuration
@ConfigurationProperties(prefix = "my.config")
public class MyConfig {
    private String name;
    private int age;
    // ...
}
 - 使用@Value注解动态注入值
 
使用@Value注解可以动态注入值,例如:
@Component
public class MyComponent {
    @Value("${my.property}")
    private String myProperty;
    // ...
}
 - 使用@Autowired注解动态注入Bean
 
使用@Autowired注解可以动态注入其他Bean,例如:
@Component
public class MyComponent {
    @Autowired
    private MyService myService;
    // ...
}
 - 使用@Qualifier注解动态指定Bean
 
使用@Qualifier注解可以动态指定注入的Bean,例如:
@Component
public class MyComponent {
    @Autowired
    @Qualifier("myBean")
    private MyBean myBean;
    // ...
}
 - 使用@Lazy注解动态延迟加载Bean
 
使用@Lazy注解可以动态延迟加载Bean,例如:
@Component
@Lazy
public class MyComponent {
    @Autowired
    private MyService myService;
    // ...
}
 - 使用FactoryBean动态创建Bean
 
使用FactoryBean可以动态创建Bean,例如:
public class MyFactoryBean implements FactoryBean<MyBean> {
    @Override
    public MyBean getObject() throws Exception {
        return new MyBean();
    }
    @Override
    public Class<?> getObjectType() {
        return MyBean.class;
    }
}
 - 使用@Conditional注解动态创建Bean
 
使用@Conditional注解可以动态创建Bean,例如:
@Configuration
public class MyConfig {
    @Bean
    @Conditional(MyCondition.class)
    public MyBean myBean() {
        return new MyBean();
    }
}
            【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
                cloudbbs@huaweicloud.com
                
            
        
        
        
        
        
        
        - 点赞
 - 收藏
 - 关注作者
 
            
           
评论(0)