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)