天天看点

Java注解之简介

1.概念

Java提供了一种源程序中的元素关联任何信息(属性、方法和类)的途径和方法。

2.使用注解的好处

  • 能够读懂别人的代码,特别是框架相关的代码
  • 让编程更加简洁,代码更加清晰

3.常见注解

(1).JDK中自带的注解

  • @Override:覆盖父类的方法
  • @Deprecated:不推荐使用该该方法,可以调用其它更好的方法,但仍然可以使用,调用不会报错
  • @Suppreswarnings:告诉编译器忽略指定的警告,不用在编译完成后出现警告信息
public interface Person {
    String name();

    String age();

    @Deprecated
    void sing();
}      
public class Baby implements Person {
   @Override
   public String name() {
       return null;
   }

   @Override
   public String age() {
       return null;
   }

   @Override
   public void sing() {

   }
}      
public class App {
   public static void main(String[] args) {
       Baby baby = new Baby();
       baby.sing();
   }
}      

(2).常见的第三方注解

  • @Autowired:自动进行依赖注入的注解
  • @Controller:控制器层注解
  • @Service:业务层注解
  • @Repository:持久层注解
  • @RequestMapping:处理请求的注解
@Controller
@EnableScheduling
@RequestMapping("/acceptanceNumber")
public class AcceptanceNumberController {
    @Autowired
    AcceptanceNumberImpl acceptanceNumberImpl;

    //药品受理号定时任务
    @Scheduled(cron = "0 0 18 * * ?")
    public void getDrugAcceptanceNumberScheduled() {
        acceptanceNumberImpl.getDrugAcceptanceNumber();
    }

    @RequestMapping(value = "/getDrugAcceptanceNumber", method = RequestMethod.GET)
    public void getDrugAcceptanceNumber() {
        acceptanceNumberImpl.getDrugAcceptanceNumber();
    }
}      

4.注解的分类

(1).元注解

  • @Target:注解的使用范围
  • @Retention:注解的生命周期
  • @Inherited:允许子类继承,子类只继承类上的注解(标识注解)
  • @Documented:生产javadoc时会包含的注解(标识注解)

(2).按运行机制分

  • 源码注解:只在源码中存在,编译后就不存在了
  • 编译时注解:存在于源码和.class文件中,如JDK自带的注解
  • 运行时注解:在运行阶段还会起作用的注解,能够影响程序的运行逻辑
  • JDK自带的注解
  • 第三方注解
  • 自定义注解