java常用注解
定义
Java 注解(Annotation)又称 Java 标注,是 JDK5.0 引入的一种注释机制
Java 语言中的类、方法、变量、参数和包等都可以被标注。和 Javadoc 不同,Java 标注可以通过反射获取标注内容。
在编译器生成类文件时,标注可以被嵌入到字节码中。Java 虚拟机可以保留标注内容,在运行时可以获取到标注内容 。
当然它也支持自定义 Java 标注
Java内置注解
作用在代码注解
@Override // 检查该方法是否是重写方法。如果发现其父类,或者是引用的接口中并没有该方法时,会报编译错误。
@Deprecated // 标记过时方法。如果使用该方法,会报编译警告。
@SuppressWarnings // 指示编译器去忽略注解中声明的警告。
作用在其他注解的注解(或者说 元注解)
@Retention // 标识这个注解怎么保存,是只在代码中,还是编入class文件中,或者是在运行时可以通过反射访问。
@Documented // 标记这些注解是否包含在用户文档中。
@Target // 标记这个注解应该是哪种 Java 成员。
@Inherited // 标记这个注解是继承于哪个注解类(默认 注解并没有继承于任何子类)
Java7开始额外添加的3个注解
@SafeVarargs // Java 7 开始支持,忽略任何使用参数为泛型变量的方法或构造函数调用产生的警告。
@FunctionalInterface // Java 8 开始支持,标识一个匿名函数或函数式接口。
@Repeatable // Java 8 开始支持,标识某注解可以在同一个声明上使用多次
Spring注解
@Controller // 用于标注控制层,相当于struts中的action层,用在类
@Service // 用于标注服务层,主要用来进行业务的逻辑处理
@Repository(“名称”): // 用于标注数据访问层,用在mapper类(dao层)
@RestController // 返回json数据,接口常用,用在类
@Component // 是spring中的一个注解,它的作用就是实现bean的注入(衍生注解:@Controller @Service @Repository)
@Autowired // Spring 容器启动的时候会查找相应的 Bean。可以用在成员变量、方法及构造函数
路由注解
SpringMVC注解
@RequestMapping("/demo") // 路由,用在类
@GetMapping("/demo/getMsg") // 路由,用在方法
@postMapping("/demo/getMsg") // 路由,用在方法
数据访问层注解
mybatis
@MapperScan("com.example.demo.mapper") // 扫描dao层的mapper组件,用在入口类
@Repository(“名称”): // 用于标注数据访问层dao层,用在mapper类
@Resource //注解mapper,用在属性
微服务
SpringCloud
@FeignClient("hotel-operation-platform-message") // 调用其他微服务
@FeignClient(value="xxx-xxx-xxx", url="127.0.0.1:8080") // 调用其他微服务 - 指定地址
其他
@JsonProperty // fastjson包的注解,驼峰命变量和下划线格式转换。用在属性
@slf4j // 日志门面,可以自由选择驱动,而无需维护日志具体的实现类和方法,用于类