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自带的注解
  • 运行时注解:在运行阶段还会起作用的注解,能够影响程序的运行逻辑

(3).按来源分

  • JDK自带的注解
  • 第三方注解
  • 自定义注解