zoukankan      html  css  js  c++  java
  • 组合注解与元注解

      从spring2开始,为了响应jdk1.5推出的注解功能,spring开始大量加入注解来代替xml配置。随着注解的大量使用,我们发现多个相同的注解被在不同的类或者方法里多次使用的时候,代码看起来比较繁琐。这就是所谓的样板代码,是spring设计原则中要消除的代码。比如以下代码:

      如果我们把以上三个注解合并为一个注解,那多省事儿!这就是组合注解,与之相对的就是元注解。
      元注解就是可以注解到别的注解上的注解,被注解的注解就是组合注解。
      额,好乱。元注解就是可以用来跟别的注解搭配,从而构造出新的注解的基础数据,而构造出来的新数据就是组合注解。一个注解是组合注解还是元注解是相对的,它相对于一个注解来说是组合注解,相对于另一个来说可能就是元注解。
    ------示例:@Configuration跟@ComponentScan注解组合为一个新注解----------------------------------------

    注解类:

    @Target(ElementType.TYPE)  //jdk5注解,表示作用目标类型,是类、方法还是变量等
    @Retention(RetentionPolicy.RUNTIME)//jdk注解,表示该注解会保存多久,生命周期相关
    @Documented//jdk注解,表示是否被javadoc命令导出文档
    @Configuration //组合Configuration注解
    @ComponentScan //组合ComponentScan注解
    public @interface WiselyConfiguration {
        String[] value() default {};
    }
    

    新注解使用类:

      @WiselyConfiguration("com.wzy.bj.myannotation")
      public class DemoConfig {
      }
    

    测试服务类:

    @Service
    public class DemoService {
        public void doService(){
            System.out.println("doing my demoService,,,,,");
        }
    }
    
    测试类:

    public class AnnotationMain {
        public static void main(String[] args) {
            AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(DemoConfig.class);
            DemoService demoService = context.getBean(DemoService.class);
            demoService.doService();
    
            context.close();
        }
    }
    

    测试结果:

      

  • 相关阅读:
    K折交叉验证
    浅谈python的第三方库——pandas(三)
    关于机器学习二分类问题的几个评估指标辨析
    浅谈python的第三方库——pandas(二)
    浅谈python的第三方库——pandas(一)
    【内核篇】Windows内核重要变量
    【逆向篇】分析一段简单的ShellCode——从TEB到函数地址获取
    【系统篇】从int 3探索Windows应用程序调试原理
    【编程篇】使用操作系统异常巧妙获取交叉链表的交点
    【灌水篇】为什么我们要拼搏北上广
  • 原文地址:https://www.cnblogs.com/nevermorewang/p/8996618.html
Copyright © 2011-2022 走看看