Spring注解

Service:
@Service(""):服务(注入Dao)用标注定义来定义bean,并自动根据bean的类名生成一个首字母小写的bean。
@Autowired:消除set get方法,做bean的注入使用,按类型装配依赖对象,默认情况下要求依赖对象必须存在,如果允许空值,可以设置它required属性为false,如果想使用按名称装配,可以结合@Qualifier注解一起使用。想让@Autowired起作用必须事先在
applicationContext.xml中加入一下配置
<bean class="org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor"/>
@Qualifier:如果spring容器中匹配出两个以上bean时,会抛出异常,spring允许我们通过@Qualifier注释指定注入bean的名称。
Util:
@Component(""):把普通的pojo实例化到spring容器中,相当于配置文件中的<bean id=""class="">。泛指组件,当组件不好归类时,我们可以使用这个注解进行标注。
<context:component-scan base-package="com.common.*,com.dao,com.dao.*,com.web.service,com.web.service.*">
Entity:
@Entity:指明只是一个实体Bean。
@Table(name = ""):指定Entity所要映射带数据库表name用来指定映射表的表名,如果缺省这个注释,系统默认类名作为映射表的表名。
@GeneratedValue(strategy = GenerationType.SEQUENCE,generator=""):用来定义主键生成策略。
@SequenceGenerator(name="",sequenceName="",allocationSize=1):jpa标准注解,用来定义一个生成主键的序列。对于Oracle,在数据库中先定义一个Oracle序列,放到sequenceName里,给其一个name,在主键字段id上使用注解@GeneratedValue(strategy = GenerationType.SEQUENCE,generator="")定义逐渐生成策略为序列,并引用声明好的序列(将name里的内容给generator)。
@Column:标记表示所持久化属性所映射表中字段,
unique属性表示该字段是否为唯一标识,默认为false。如果表中有一个字段需要唯一标识,则既可       以使用该标记,也可以使用@Table标记中的@UniqueConstraint。
  nullable属性表示该字段是否可以为null值,默认为true。
 insertable属性表示在使用“INSERT”脚本插入数据时,是否需要插入该字段的值。
 updatable属性表示在使用“UPDATE”脚本插入数据时,是否需要更新该字段的值。insertable和      updatable属性一般多用于只读的属性,例如主键和外键等。这些字段的值通常是自动生成的。
 columnDefinition属性表示创建表时,该字段创建的SQL语句,一般用于通过Entity生成表定义时      使用。
table属性表示当映射多个表时,指定表的表中的字段。默认值为主表的表名。
length属性表示字段的长度,当字段的类型为varchar时,该属性才有效,默认为255个字符。
precision属性和scale属性表示精度,当字段类型为double时,precision表示数值的总长度,scale  表示小数点所占的位数。
@ManyToOne(cascade = {CascadeType.PERSIST, CascadeType.MERGE},targetEntity=Userrole.class,fetch = FetchType.EAGER):外键
@JoinColumn(name = ""):外键名
@Lob 持久化为Blob或者Clob类型,根据get方法的不同,自动进行Clob和Blob的转换
@Basic(fetch = FetchType.LAZY):@Lob 通常与@Basic同时使用,提高访问速度。


Dao:
@Repository:用于标注数据访问组件,即DAO组件
Quartz:
@Scheduled(cron="")是Spring计划任务的一种很简洁的实现。用来替代Quartz的方案。要使用此特性,需要Spring3.2以上版本。
Sms:
@XmlAccessorType(XmlAccessType.FIELD):表示使用这个类中的private非静态字段作为 xml的序列化的属性或者元素。这里还可以选择属性,也就是使用 set/get 方法来序列化属性或者元素。用于标识该Java对象与xml映射的访问方式。有如下属性值。
PROPERTY/FIELD/PUBLIC_MEMBER/NONE
PROPERTY: 所有set/get方法对将被映射为xml元素.除非被XmlTransient标注例外.
FIELD:所有对象属性将被映射为xml元素。除非被XmlTransient标注例外.
PUBLIC_MEMBER:每个public的get/set对方法或public field将被映射为xml元素。除非被XmlTransient标注例外.
NONE:没有fields 或 property被映射,除非显示指定具体fields或property。
@XmlType(name ="AddFrameResponse", propOrder = { "_return" }):Jaxb编组出来的xml中的字段顺序是随机的,可以使用@XmlType的propOrder属性来指定序列化的顺序。
@XmlTransient:指对应属性不做xml映射。
@XmlElement(name=""):指定属性映射时对应xml元素名称。
@XmlElementWrapper(name=""):在某些场景下,需要对映射的属性做包装处理。


Controller:
@Controller:controller层bean注入。
@RequestMapping:RequestMapping是一个用来处理请求地址映射的注解,可用于类或方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径。
value: 指定请求的实际地址,指定的地址可以是URI Template 模式;
method:  指定请求的method类型, GET、POST、PUT、DELETE等;
consumes:指定处理请求的提交内容类型(Content-Type),例如application/json, text/html;
produces: 指定返回的内容类型,仅当request请求头中的(Accept)类型中包含该指定类型才返回;
params:指定request中必须包含某些参数值是,才让该方法处理。
headers:指定request中必须包含某些指定的header值,才能让该方法处理请求。
@PathVariable 绑定它传过来的值到方法的参数上。
@PostConstruct:被@PostConstruct修饰的方法会在服务器加载Servle的时候运行,并且只会被服务器执行一次。
@ModelAttribute:被@ModelAttribute注释的方法会在此controller每个方法执行前被执行,因此对于一个controller映射多个URL的用法来说,要谨慎使用。
①绑定请求参数到命令对象:放在功能处理方法的入参上时,用于将多个请求参数绑定到一个命令对象,从而简化绑定流程,而且自动暴露为模型数据用于视图页面展示时使用;
②暴露表单引用对象为模型数据:放在处理器的一般方法(非功能处理方法)上时,是为表单准备要展示的表单引用
对象,如注册时需要选择的所在城市等,而且在执行功能处理方法(@RequestMapping 注解的方法)之前,自动添加到模型对象中,用于视图页面展示时使用;
③暴露@RequestMapping 方法返回值为模型数据:放在功能处理方法的返回值上时,是暴露功能处理方法的返回值为模型数据,用于视图页面展示时使用。
@Scope("prototype"):用来指定bean的作用域。
@Resource(name="IWorkflowService"):属性注入时使用。
@ResponseBody:表示该方法的返回结果直接写入HTTPresponse body中,一般在异步获取数据时使用,在使用@requestMapping后,返回值通常解析为跳转路径,加上@ResponseBody后返回值不会解析为跳转路径,比如一步获取Json数据,会直接返回Json数据。它可以标注任何对象,由spring完成对象-》协议的转换。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值