Annotation-开发常用注解笔记
本文章记录开发过程中遇到的一些注解。
1. Spring
- @AutoWired:常注解于pojo字段。自动装配,完成bean的注入。先通过ByType再通过ByName。可以通过“required“属性来判断其是否为必要字段。
/* Demo for @Autowired */
public class People {
@Autowired
private String name;
@Autowired(required = false)
private String address;
}
- @Qualifier:配合@Autowired使用。若自动装配的可匹配bean不唯一,可通过“value = xxx”指定目标bean。
/* Demo for @Qualifier */
public class People {
@Autowired
private String name;
@Autowired(required = false)
@Qualifer(value = “phoneNum”)
private String contact;
// @Qualifer(value = “homeNum”)
}
- @Resource:常注解于pojo字段。自动装配,完成bean的注入。先通过ByName再通过ByType。若自动装配的可匹配bean不唯一,则可通过“name = xxx”来指定对应bean。
/* Demo for @Resource */
public class People {
@Resource
private String name;
@Resource(name = “phoneNum”)
private String contact;
}
-
@Nullable:常注解于类字段。说明该字段可以为Null值。
-
@Component:常注解于pojo。完成bean的注册,说明该类被注册为bean并且受Spring所管理,可认为代替了先前的bean配置。【注意:@Component可理解为创建bean;而@Autowired可理解为为bean注入。】
-
@ComponentScan:常注解于类。常配合Component使用,来进行bean配置。
-
@Repository:常注解于dao。衍生自@Component,功能基本相同。
-
@Service:常注解于service。衍生自@Component,功能基本相同。
-
@Controller:常注解于controller。衍生自@Component,功能基本相同。
-
@Configuration:常注解于类。衍生自@Component,说明该类为配置类,类似于xml配置时使用的beans.xml。
-
@Scope:常注解于类。说明该bean的域,如singleton或者prototype等。
-
@Bean:常注解于类方法。说明将该方法注册为bean,类似于xml时使用的<bean>标签。常与@Configuration配合,进行bean的配置。
/* Demo for @Component, @Scope, @Repository, @Service, @Controller */
@Component
@Scope(“singleton”)
public class User {}
@Repository
public class UserDao {}
@Service
public class UserService {}
@Controller
public class UserController {}
2. Swagger
此处指配合Springboot使用的Springfox的注解工具,主要用于方便前后端人员接口开发的同步沟通。
- @Api:
3. Lombok
为MyBatis的注解插件,主要用于简化代码开发。
- @Data:常注解于POJO类,可简化代码开发。实现隐藏各属性的Getter及Setter方法,以及HashCode和EqualsTo等方法。
- @Getter / @Setter / @ToString / @EqualsAndHashCode:可注解于类或属性,简化代码开发。
- @NoArgsConstructor:常注解于POJO类,相当于构造无参构造器。
oString / @EqualsAndHashCode**:可注解于类或属性,简化代码开发。 - @NoArgsConstructor:常注解于POJO类,相当于构造无参构造器。
- @AllArgsConstructor:常注解于POJO类,相当于构造包含所有属性的构造器。