您的位置:首页 > 其它

注解开发详解

2017-09-08 15:03 183 查看


1.@Autowired 

Spring 2.5 引入了 @Autowired 注释,它可以对类成员变量、方法及构造函数进行标注,完成自动装配的工作。 通过 @Autowired的使用来消除 set ,get方法。

* 在applicationContext.xml中加入:<!-- 该 BeanPostProcessor 将自动对标注 @Autowired 的 Bean 进行注入 -->
<bean class="org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor"/>


Spring 通过一个 BeanPostProcessor 对 @Autowired 进行解析,所以要让 @Autowired 起作用必须事先在 Spring 容器中声明 AutowiredAnnotationBeanPostProcessor Bean。



同理在bean中:

Public class Inspur{
Private Soft soft;
@Autowired
Public void setSoft(Soft soft){
this.soft=soft;}
}

当 Spring 容器启动时,AutowiredAnnotationBeanPostProcessor 将扫描Spring 容器中所有 Bean,service,当发现 Bean,service 中拥有@Autowired 注释时就找到和其匹配(默认按类型匹配)的 Bean,service,并注入到对应的地方中去。


2.@transient

java 的transient关键字的作用是需要实现Serilizable接口,将不需要序列化的属性前添加关键字transient,序列化对象的时候,这个属性就不会序列化到指定的目的地中。






在实际开发过程中,我们常常会遇到这样的问题,这个类的有些属性需要序列化,而其他属性不需要被序列化,比如一个用户有一些敏感信息(如密码,银行卡号等),为了安全起见,不希望在网络操作中被传输,这些信息对应的变量就可以加上transient关键字。

3.@Entity @Table @Column @Id

@Entity注释指名这是一个实体Bean,
@Table注释指定了Entity所要映射带数据库表,
其中@Table.name()用来指定映射表的表名。如果缺省@Table注释,系统默认采用类名作为映射表的表名。
实体Bean的每个实例代表数据表中的一行数据,行中的一列对应实例中的一个属性。
@Column注释定义了将成员属性映射到关系表中的哪一列和该列的结构信息
如果类名与表名,列名与字段名相同,@Table 和@Column(name=.. 可以不写
@Id注释指定表的主键



4.@component  @Repository  @Service  @Controller

如果 Web 应用程序采用了经典的三层分层结构的话,最好在持久层、业务层和控制层分别采用 @Repository、@Service 和 @Controller 对分层中的类进行注释,而用 @Component 对那些比较中立的类
977a
进行注释。

控制层:



业务层:



持久层:



5.@RequestMapping

RequestMapping是一个用来处理请求地址映射的注解,可用于类或方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径。

 

Requestmapping一共有6个属性,

value:指定请求的实际地址;
method:指定请求的method类型, GET、POST、PUT、DELETE等;
params: 指定request中必须包含某些参数值是,才让该方法处理;
headers: 指定request中必须包含某些指定的header值,才能让该方法处理请求;
consumes: 指定处理请求的提交内容类型(Content-Type),例如application/json, text/html;
produces: 指定返回的内容类型,仅当request请求头中的(Accept)类型中包含该指定类型才返回;



在这里执行查询下属用户控制层时,路径就是context+”service/organ/findxsuser”

6.@RequestBody @ResponseBody

@RequestBody

i) 该注解用于读取Request请求的body部分数据,使用系统默认配置的HttpMessageConverter进行解析,然后把相应的数据绑定到要返回的对象上;
ii) 再把HttpMessageConverter返回的对象数据绑定到 controller中方法的参数上。
@ResponseBody

该注解用于将Controller的方法返回的对象,通过适当的HttpMessageConverter转换为指定格式后,写入到Response对象的body数据区。




内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: