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可更加明晰其修饰的目标。
        
        @Target(ElementType.TYPE)   //接口、类、枚举、注解
        @Target(ElementType.FIELD) //字段、枚举的常量
        @Target(ElementType.METHOD) //方法
        @Target(ElementType.PARAMETER) //方法参数
        @Target(ElementType.CONSTRUCTOR)  //构造函数
        @Target(ElementType.LOCAL_VARIABLE)//局部变量
        @Target(ElementType.ANNOTATION_TYPE)//注解
        @Target(ElementType.PACKAGE) ///包   
eg:  
@Documented
@Retention(RUNTIME)
@Target({ TYPE, METHOD })
public @interface Page {     //注解Page可用于   TYPE:接口、类、枚举、注解、METHOD:方法
    String value();
}

 

 11、@Async : 在Spring中,基于@Async标注的方法,称之为异步方法;这些方法将在执行的时候,将会在独立的线程中被执行,调用者无需等待它的完成,即可继续其他的操作。

 12、@Controller:修饰class,用来创建处理http请求对象
   @RestController : Spring4之后加入的注解,原来在@Controller中返回json需要@ResponseBody来配合,如果直接用@RestController替代@Controller就不需要再配置@ResponseBody,默认返回json格式。
 13、@Qualifier:当接口有两个实现类时,要注入接口,使用@Qualifier("ImplName")来标注使用哪个实现类来注入。(注:须标明serviceImplClass的name)
 14、@RunWith(SpringJUnit4ClassRunner.class) :     @RunWith:用于指定junit运行环境,是junit提供给其他框架测试环境接口扩展,为了便于使用spring的依赖注入,spring提供了org.springframework.test.context.junit4.SpringJUnit4ClassRunner作为Junit测试环境。<注意:使用springTest需要引入jar包spring-test>
 15、@ContextConfiguration:用于指定spring配置环境
 16、@
 
 
 
 
 
 
 
 
 
 
 
 
 

附:

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:用对象接收参数时,描述对象的一个字段   

 

 

 

 

 

不定时更新。。。

posted @ 2017-05-22 09:16  豆腐全家  阅读(175)  评论(0编辑  收藏  举报