首页 > 编程语言 > 详细

spring-boot autoConfiguration

时间:2019-07-09 17:49:48      阅读:92      评论:0      收藏:0      [点我收藏+]

一, 第一个待注入类

public class CacheService {
}

public class LoggerService {
}

  

方法一, 实现接口ImportSelectort

public class CacheImportSelector implements ImportSelector {
    @Override
    public String[] selectImports(AnnotationMetadata annotationMetadata) {
        return new String[]{CacheService.class.getName()};
    }
}

 

方法二, 实现接口ImportBeanDefinitionRegistrar,

public class LoggerServiceSelector implements ImportBeanDefinitionRegistrar {
    @Override
    public void registerBeanDefinitions(AnnotationMetadata annotationMetadata, BeanDefinitionRegistry beanDefinitionRegistry) {
        RootBeanDefinition rootBeanDefinition = new RootBeanDefinition(LoggerService.class);
        String strBeanname = StringUtils.uncapitalize(LoggerService.class.getName());
        beanDefinitionRegistry.registerBeanDefinition(strBeanname, rootBeanDefinition);
    }
}

 

 

自定义Enable注解, 将CacheService, LoggerService加载到Spring-boot项目中

@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Component
@Import({CacheImportSelector.class, LoggerServiceSelector.class})
public @interface EnableCacheService {
}



//启动Spring-boot

@EnableCacheService
@SpringBootApplication
public class SpringBootDemoApplication {
    public static void main(String[] args) {
        ConfigurableApplicationContext context = SpringApplication.run(SpringBootDemoApplication.class, args);
        CacheService cacheService = context.getBean(CacheService.class);
        System.out.println(cacheService.toString());
        LoggerService loggerService = context.getBean(LoggerService.class);
        System.out.println(loggerService);
    }
}

 

spring-boot autoConfiguration

原文:https://www.cnblogs.com/snow-man/p/11158743.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!