[SpringBoot]通过spring.factory⽂件来加载第三⽅的bean     在springboot的开发过程中,我们经常需要加载⼀些bean,如果bean使我们⾃⼰写的类,那很好办,加个@Component注解就搞定了,然后过程启动会扫描启动类所在的包及其⼦包,如果我们需要的bean不在⾃⼰的包⾥⾯,在第三⽅包怎么办?这⾥介绍⼀个使⽤spring.factories⽂件的⽅法
    期望⼯程启动的时候就加载这个bean到容器,我们的包是提供给其他⼈使⽤的,其他⼯程的启动了类所在的路径不能覆盖这个bean所在的包路径,通过ComponouneScan扫描太⿇烦了,⽽且需求是⼯程启动后就加载bean,可以这样做:
  在包下⾯的resources下⾯新建⽂件/META-INF/spring.factories⽂件,⾥⾯写上下⾯的内容
org.springframework.boot.autoconfigure.EnableAutoConfiguration=cn.aaron911.shield.ShieldAutoConfiguration
  右边是你的⼀个类,然后在这个类⾥⾯写⼊:springframework jar包导入
@Configuration
@ConditionalOnBean(annotation = EnableShieldDefence.class)
@EnableConfigurationProperties(ShieldProperties.class)
public class ShieldAutoConfiguration {
private static final Logger log = Logger(ShieldAutoConfiguration.class);
@Autowired
private ShieldProperties properties;
@PostConstruct
public void init() {
log.info("You'll be safe ");
log.String());
}
@Bean
@ConditionalOnMissingBean(name = {"shieldProcessor"})
public ShieldProcessor shieldProcessor() {
return new ShieldProcessorDefence();
}
@Bean(name = "shieldCache")
public Cache shieldCache() {
CacheType type = CacheType();
if (type == CacheType.REDIS) {
return new RedisCache();
}
return new ConcurrentHashMapCache();
}
}

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。