spring注解--组合注解

这几天学习springboot 和springcloud 越来越深入,接触到了越来越多的组合注解。

比如最著名的springboot 注解里的
@SpringApplication

@Target(value=TYPE)
 @Retention(value=RUNTIME)
 @Documented
 @Inherited
 @SpringBootConfiguration
 @EnableAutoConfiguration
 @ComponentScan(excludeFilters=)

加了这一个就有了无限多种打开方式
。。。

自己设一个组合注解 这样写自己的应用就一个注解就好了
AoHuiAppAnnotation .java

/**
 * 组合注解
 * @ComponentScan 扫描包
 * @Configuration 配置类
 * @Import(PropConfig.class) 加载属性配置
 */
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@ComponentScan
@Configuration
@Import(PropConfig.class)
public @interface AoHuiAppAnnotation {
}

PropConfig .java

@Configuration
@PropertySource("classpath:config.properties")
public class PropConfig {
    @Bean
    public static PropertySourcesPlaceholderConfigurer propertySourcesPlaceholderConfigurer() {
        return new PropertySourcesPlaceholderConfigurer();
    }
}

config.properties

aasd = aasdasd

运行一下

public class Application {
    @Value("${aasd}")
    private String a;

    public void print(){
        System.out.println("a ================= " + a);
    }

    public static void main(String[] args) {
        AnnotationConfigApplicationContext annotationConfigApplicationContext = new AnnotationConfigApplicationContext(Application.class);
        Application application = (Application) annotationConfigApplicationContext.getBean("application");
        application.print();
    }
}

//a ================= aasdasd

现在了解的只是一个表面,先挖个坑,等理解深入了再来更新一波 ,现在这个例子应该可以解决50%的问题了

你可能感兴趣的:(spring,framework)