zoukankan      html  css  js  c++  java
  • spring-boot autoConfiguration

    一, 第一个待注入类

    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);
        }
    }
  • 相关阅读:
    influxdb时序数据库之随想其他列式存储数据库
    ss 命令参数 redis-benchmark 以及POSTMAN, CURL分析网络
    HTTP2.0
    我的2020工作总结
    2021-03-31 JDK8 字符串常量池
    try catch与spring的事务回滚
    Spring主动触发事务回滚
    Redis五种数据类型及应用场景
    java面试题
    ubuntu linux mysql 安装 基本操作 命令
  • 原文地址:https://www.cnblogs.com/snow-man/p/11158743.html
Copyright © 2011-2022 走看看