一、概念
注解(Annotation),也叫元数据(Metadata),是Java5的新特性,JDK5引入了Metadata很容易的就能够调用Annotations。注解与类、接口、枚举在同一个层次,并可以应用于包、类型、构造方法、方法、成员变量、参数、本地变量的声明中,用来对这些元素进行说明注释。注解是以‘@注解名’在代码中存在的。
二、作用
1.生成文档。这是最常见的,也是java 最早提供的注解。常用的有@see @param @return 等;
2.跟踪代码依赖性,实现替代配置文件功能。比较常见的是spring 2.5 开始的基于注解配置。作用就是减少配置。现在的框架基本都使用了这种配置来减少配置文件的数量;
3.在编译时进行格式检查。如@Override放在方法前,如果你这个方法并不是覆盖了超类方法,则编译时就能检查出;
三、使用
1、@Component
(1)在类前边添加@Component
如果没有name值默认是累的首字母小写
(2)@Component(name=“users”)
添加nama值自定义名字
2、@Repository @Service @Controller
这三个注解是 @Component 注解的衍生注解,功能一样。
@Repository :dao层
@Service:service层
@Controller:web层
3、@Resource
@Resource 注解,它可以对类成员变量、方法及构造函数进行标注,完成自动装配的工作。 通过 @Resource 的使用来消除 set ,get方法。
在User类中没有给Person set ,get方法。
public class Users {
private int uid;
private String uname;
@Resource(name ="person")
private Person person;
@Override
public String toString() {
return "Users{" +
"uid=" + uid +
", uname='" + uname + '\'' +
", person=" + person +
'}';
}
}
@Component("person")
public class Person {
private int pid;
private String pname;
@Override
public String toString() {
return "Person{" +
"pid=" + pid +
", pname='" + pname + '\'' +
'}';
}
运行结果
Users{uid=0, uname='null', person=Person{pid=0, pname='李垚'}}