注解开发详解

来源:互联网 发布:英语翻译用哪个软件 编辑:程序博客网 时间:2024/06/13 00:42


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;@AutowiredPublic 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 对那些比较中立的类进行注释。

控制层:


业务层:

持久层:

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数据区。



















原创粉丝点击