spring注释积累
1、lombok.jar包 有注解@Data ,为属性提供get和set方法
2、@Resource 属于包 javax.annotation.Resource,为Java注解,进行自动装配
与@Autowired区别及理解:
① 、@Autowired与@Resource都可以用来装配bean. 都可以写在字段上,或写在setter方法上。
② 、@Autowired默认按类型装配(这个注解是属业spring的),默认情况下必须要求依赖对象必须存在,如果要允许null 值,可以设置它的required属性为false,如:@Autowired(required=false) ,如果我们想使用名称装配可以结合@Qualifier注解进行使用,如下:
@Autowired private BaseDao baseDao; //自动按类型装配 @Autowired() @Qualifier("baseDao") private BaseDao baseDao; //按名称装配
③ 、@Resource(这个注解属于J2EE的),默认安照指定name属性进行装配,如果没有指定name属性,当注解写在字段上时,默认取字段名进行按照名称查找,如果注解写在setter方法上默认取属性名进行装配。 当找不到与名称匹配的bean时才按照类型进行装配。但是需要注意的是,如果name属性一旦指定,就只会按照名称进行装配。
@Resource(name="baseDao") private BaseDao baseDao;
3、@PathVariable 用来获取请求地址中的参数 eg: http://www.qingqiu.com/art/10178.html 后台接受请求地址:@RequestMapping(value = "/{artId}", method = RequestMethod.GET)
则,方法参数中 public void getArt(@PathVariable(value = "artId") Integer artId) 可以获取到地址中的10178
4、@Value 用于获取配置文件的值,即使给变量赋了初值也会以配置文件的值为准。
eg: @Value("${timer_enable}")
private Boolean timerEnabled;
5、@Bean(name = online)
6、@Entity 表示当前为实体类
7、@Valid 递归的对关联对象进行校验, 如果关联对象是个集合或者数组,那么对其中的元素进行递归校验,如果是一个map,则对其中的值部分进行校验.(是否进行递归验证)
8、public @interface xxx 定义注解 ,@interface 不是interface,是注解类
是jdk1.5之后加入的,java没有给它新的关键字,所以就用@interface 这么个东西表示了
这个注解类,就是定义一个可用的注解,包括这个注解用于什么地方,是类,还是方法,还是property,还是方法入参等等
9、@Retention(RetentionPolicy.RUNTIME) // 注解会在class字节码文件中存在,在运行时可以通过反射获取到
10、@Target:注解的作用目标,说明了Annotation所修饰的对象范围(即:被描述的注解可以用在什么地方):Annotation可被用于 packages、types(类、接口、枚举、Annotation类型)、类型成员(方法、构造方法、成员变量、枚举值)、方法参数和本地变量(如循环变量、catch参数)。在Annotation类型的声明中使用了target可更加明晰其修饰的目标。
@Documented @Retention(RUNTIME) @Target({ TYPE, METHOD }) public @interface Page { //注解Page可用于 TYPE:接口、类、枚举、注解、METHOD:方法 String value(); }
11、@Async : 在Spring中,基于@Async标注的方法,称之为异步方法;这些方法将在执行的时候,将会在独立的线程中被执行,调用者无需等待它的完成,即可继续其他的操作。
@Controller
中返回json需要@ResponseBody
来配合,如果直接用@RestController
替代@Controller
就不需要再配置@ResponseBody
,默认返回json格式。附:
Swagger注释:
@Api:修饰整个类,描述Controller的作用 eg:@Api("类别管理后台")
@ApiOperation:描述一个类的一个方法,或者说一个接口 eg:@ApiOperation("类别列表") //标注tabs方法
@ApiParam:单个参数描述 eg: @ApiParam("当前页") @RequestParam(value = "index", required = false, defaultValue = "1") int index //标注index参数
@ApiModel:用来描述对象模型 实例如下:
@ApiModelProperty :用于描述对象的属性 实例如下:
@ApiProperty:用对象接收参数时,描述对象的一个字段
不定时更新。。。