Java注解
注解:注解是一系列元数据,它利用元数据来解释,说明程序代码(即被注解的对象)
注解的作用:
- 提供信息给编译器,编译器利用注解来探测错误和警告信息
- 软件工具可以利用注解信息来生成代码,HTML文档或者做其他相应的处理
- 运行时的处理,某些注解可以在程序运行时接受代码的提取
publice @interface TestAnnotation{}
@TestAnnotation
publice class Test{}
创建了一个类Test,并在类定义的上方加上了TestAnnotation注解,就意味着用TestAnnotation注解了类Test
- 元注解@Retention应用到一个注解时,说明该注解的存活时间
- 元注解@Documented表示注解内容会被Javadoc工具提取成文档,文档内容会因为注解内容的不同而不同
- 元注解@Target表示注解用于什么地方,如类型,方法和域等
- 被元注解@Inherited注解过的注解作用于父类后,子类会自动继承父类的注解
- 注解中属性的类型只能是8种基本数据类型和类,接口,注解及它们的数组
- 注解@Deprecated是用来标记过时的元素
- 注解@SuppressWarnings表示阻止警告的意思
- 注解@Override表示子类要重写父类(或接口)的对应方法
- 注解@SafeVarargs被用来标识参数安全类型
- 注解@FunctionalInterface被用来指定某个接口必须是函数式接口,否则就会编译出错
- 注解@Controller标注一个控制器组件类,它被用来实现自动检测类路径下的组件并将组件自动注册成Bean
- 注解@Service标注一个业务逻辑组件类
- 注解@Repository标注一个DAO组件类
- 注解@Autowired被用来实现自动装配,@Autowired可以被用来标注成员变量,方法,构造函数等对象
- 注解@Qualifier和@Autowired配合使用的代码示例
@Service(“service”)
public class EmployeeServiceImpl implements EmployeeService{}
@Service(“service1”)
public class EmployeeServiceImpl1 implements EmployeeService{}
@Autowired
@Qualifier(“service”)
EmployeeService employeeService;
- 注解@Resource可用于标注一个对象的SET方法【注解@Resource的作用相当于@Autowired,只不过@Autowired按类型自动注入,而@Resource默认按名字自动注入】
- 标注了@PreDestroy的方法将在类销毁之前调用,@PostConstruct注解过的方法将在类实例化后调用
- 注解@Scope来定义Bean的作用范围(称为作用域)
- 注解@RequestMapping为类或方法指定一个映射路径,可以通过指定的路径来访问对应的类或方法
- 注解@PathVariable主要用来获取单一的URI参数
- 注解@RequestParam将请求中带的值赋给被注解的方法参数
- 注解@RequestBody把请求报文中的正文自动转换成绑定给方法参数的变量字符串
- 注解@ResponseBody将内容或Java对象转换成响应报文的正文返回
- 注解@Param表示对参数的解释,一般写在注释里面
- 注解@JoinTable表示Java类和数据库表的映射关系,也可以标识列的映射,主键的映射等
- 注解@Transactional是Spring事务管理的注解。被@Transactional注解的方法或类自动被注册成事务,接受Spring容器的管理【关键字Synchronized表示实现Java同步机制,它不能和注解@Transactional同时使用】
- 注解@ModelAttribute声明在属性上,表示该属性的值来源于model里queryBean,并被保存到model里【注解@ModelAttribute声明在方法上,表示该方法的返回值被保存到model里】
- 注解@Cacheable表明一个方法的返回值应该被缓存
- 注解@Required负责检查一个Bean在初始化时其SET方法是否被执行
- 注解@Conditional根据满足某一特定条件创建一个特定的Bean