SpringMVC—相关注解介绍
2016-04-26 14:25
344 查看
本文主要介绍一些常见的注解:
@Entity:标注类为实体类
@Table:指定实体类对应的数据库中的表
@Id:标注某属性为主键
@GeneratedValue:设置主键的生成策略
@Column:标识实体类中属性与数据表中字段的对应关系
@JoinColumn:标识保存表与表之间关系(ManyToOne、OneToOne)的字段,它要标注在实体属性上
@JSON(serialize=false):不参与JSON转换,不被序列化
@Temporal(TemporalType.DATE):格式化时间和日期,在页面直接得到格式化后的数据
TemporalType.TIME:时间 TemporalType.TIMESTAMP:日期和时间
@Resource:当需要在某个类中定义一个属性,并且该属性是一个已存在的bean,要为该属性赋值或注入时在该属性上一行使用@Resource(name="xxx"),相当于为该属性注入一个名称为xxx的bean。即依赖注入bean,作用在属性上
@Resource装配顺序:
1. 如果同时指定了name和type,则从Spring上下文中找到唯一匹配的bean进行装配,找不到则抛出异常
2. 如果指定了name,则从上下文中查找名称(id)匹配的bean进行装配,找不到则抛出异常
3. 如果指定了type,则从上下文中找到类型匹配的唯一bean进行装配,找不到或者找到多个,都会抛出异常
4. 如果既没有指定name,又没有指定type,则自动按照byName方式进行装配;如果没有匹配,则回退为一个原始类型进行匹配,如果匹配则自动装配;
@Repository:将数据访问层dao的类标识为Bean,只需将该注解标注在DAO类上即可。不只是将类识别为Bean,同时它还能将所标注的类中抛出的数据访问异常封装为Spring的数据访问异常类型
@service:将业务层service的类标识为bean,则在这个类的类名前一行使用@Service("XXX"),就相当于将这个类定义为一个bean,bean名称为XXX;即定义bean,作用在类上
@Constroller:将控制层action的类标识为bean
@Component:是一个泛化的概念,仅仅表示一个组件(Bean),可以作用在任何层次。
@Scope:简单点说就是用来指定bean的作用域,默认作用域是"singleton",即单例,还可以是prototype,request,session,global
session
@Scheduled(cron="0/30 * * * * *"):定时调度
使用步骤:1、在spring.xml文件的命名空间中添加task相关内容
2、配置任务扫描注解:<task:annotation-driven/>
3、配置自动扫描的包:<context:component-scan base-package="*"/>
需要注意:1、定时器的任务方法不能有返回值2、任务方法的类上要有@Component注解
@RequestParam(value=”指定参数名”, required=false):
相当于request.getParamter();用于获取参数值。
指定value的值后,名称一定要对应,不然报错。
required值为false时,参数可不传,不传会给参数赋值为null;参数类型建议使用包装类(Integer),不要使用基本类型(int)。使用基本类型赋值为null时会报错。
@PathVariable:用于给uri中的动态参数注入值
@RequestHeader:用于将请求头中的值绑定到方法的参数上。@CookieValue
@RequestBody:一般用于处理json和xml格式的请求
@SessionAttributes:用于绑定HttpSession中的attribute对象的值,便于在方法中使用,一般作用于类上
@Entity:标注类为实体类
@Table:指定实体类对应的数据库中的表
@Id:标注某属性为主键
@GeneratedValue:设置主键的生成策略
@Column:标识实体类中属性与数据表中字段的对应关系
@JoinColumn:标识保存表与表之间关系(ManyToOne、OneToOne)的字段,它要标注在实体属性上
@JSON(serialize=false):不参与JSON转换,不被序列化
@Temporal(TemporalType.DATE):格式化时间和日期,在页面直接得到格式化后的数据
TemporalType.TIME:时间 TemporalType.TIMESTAMP:日期和时间
@Resource:当需要在某个类中定义一个属性,并且该属性是一个已存在的bean,要为该属性赋值或注入时在该属性上一行使用@Resource(name="xxx"),相当于为该属性注入一个名称为xxx的bean。即依赖注入bean,作用在属性上
@Resource装配顺序:
1. 如果同时指定了name和type,则从Spring上下文中找到唯一匹配的bean进行装配,找不到则抛出异常
2. 如果指定了name,则从上下文中查找名称(id)匹配的bean进行装配,找不到则抛出异常
3. 如果指定了type,则从上下文中找到类型匹配的唯一bean进行装配,找不到或者找到多个,都会抛出异常
4. 如果既没有指定name,又没有指定type,则自动按照byName方式进行装配;如果没有匹配,则回退为一个原始类型进行匹配,如果匹配则自动装配;
@Repository:将数据访问层dao的类标识为Bean,只需将该注解标注在DAO类上即可。不只是将类识别为Bean,同时它还能将所标注的类中抛出的数据访问异常封装为Spring的数据访问异常类型
@service:将业务层service的类标识为bean,则在这个类的类名前一行使用@Service("XXX"),就相当于将这个类定义为一个bean,bean名称为XXX;即定义bean,作用在类上
@Constroller:将控制层action的类标识为bean
@Component:是一个泛化的概念,仅仅表示一个组件(Bean),可以作用在任何层次。
@Scope:简单点说就是用来指定bean的作用域,默认作用域是"singleton",即单例,还可以是prototype,request,session,global
session
@Scheduled(cron="0/30 * * * * *"):定时调度
使用步骤:1、在spring.xml文件的命名空间中添加task相关内容
2、配置任务扫描注解:<task:annotation-driven/>
3、配置自动扫描的包:<context:component-scan base-package="*"/>
需要注意:1、定时器的任务方法不能有返回值2、任务方法的类上要有@Component注解
@RequestParam(value=”指定参数名”, required=false):
相当于request.getParamter();用于获取参数值。
指定value的值后,名称一定要对应,不然报错。
required值为false时,参数可不传,不传会给参数赋值为null;参数类型建议使用包装类(Integer),不要使用基本类型(int)。使用基本类型赋值为null时会报错。
@PathVariable:用于给uri中的动态参数注入值
@RequestHeader:用于将请求头中的值绑定到方法的参数上。@CookieValue
@RequestBody:一般用于处理json和xml格式的请求
@SessionAttributes:用于绑定HttpSession中的attribute对象的值,便于在方法中使用,一般作用于类上
相关文章推荐
- 详解JDK 5 Annotation 注解之@Target的用法介绍
- java教程之java注解annotation使用方法
- Java中注解的工作原理
- Java注解之Retention、Documented、Inherited介绍
- spring aop两种配置方式
- Restful传递数组参数及注解大全
- Java @Deprecated注解的作用及传递性
- 小议Java中@param注解与@see注解的作用
- Java注解详细介绍
- 详解Java编程中Annotation注解对象的使用方法
- JDK 5 提供的注解:Target、Inherited和Documented的区别
- SpringMVC restful 注解之@RequestBody进行json与object转换
- 基于Java 注解(Annotation)的基本概念详解
- Spring常用注解汇总
- Java中三种简单注解介绍和代码实例
- 详解Java Spring各种依赖注入注解的区别
- 详解Java注解教程及自定义注解
- 一个奇怪的异常,SSH使用注解方式
- struts2注解配置注意事项
- Java Android 注解(Annotation) 及几个常用开源项目注解原理简析