[实训]SSH常用注解

来源:互联网 发布:资管新规 知乎 编辑:程序博客网 时间:2024/06/04 17:52

用ssh用的比较多,在ssh中注解的使用也是比较方便的,百度了下ssh常用的注解在这里mark一下。
转自:http://blog.csdn.net/xfg0218/article/details/42525493

1、@RequestParam(value = what required = true)
这个是传参 当他为false 时 使用这个注解可以不传这个参数 true时必须传
required默认值是true

2、@Autowired可以对成员变量、方法和构造函数进行标注,来完成自动装配的工作,
这里必须明确:@Autowired是根据类型进行自动装配的,如果需要按名称进行装配,则需要配合@Qualifier[1] 使用;

3、@SuppressWarnings(“unchecked”)
用来取消警告,一般常见在sessionfactroy中list中常见

4、@table的使用
通过 @Table 为实体Bean指定对应数据库表,目录和schema的名字。

@Entity

@Table(name=”tbl_sky”)

public class Sky implementsSerializable {

@Table 注解包含一个schema和一个catelog 属性,使用@UniqueConstraints 可以定义表的唯一约束。

@Table(name=”tbl_sky”,

uniqueConstraints ={@UniqueConstraint(columnNames={“month”, “day”})}

)

上述代码在 “month” 和 “day” 两个 field 上加上 unique constrainst

5、@table的使用
通过 @Table 为实体Bean指定对应数据库表,目录和schema的名字。

@Entity

@Table(name=”tbl_sky”)

public class Sky implementsSerializable {

@Table 注解包含一个schema和一个catelog 属性,使用@UniqueConstraints 可以定义表的唯一约束。

@Table(name=”tbl_sky”,

uniqueConstraints ={@UniqueConstraint(columnNames={“month”, “day”})}

)

上述代码在 “month” 和 “day” 两个 field 上加上 unique constrainst

6、常用注解
@Service用于标注业务层组件

@Controller用于标注控制层组件(如struts中的action)

@Repository用于标注数据访问组件,即DAO组件

@Component泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注。

@Deprecated 使这个方法或者类过时,建议不实用此类或者此方法

7、Spring配置注解






@Transactional //默认事务配置
@Transactional(rollbackFor=Exception.class) //出现Exception异常也回滚
@Transactional(noRollbackFor=Exception.class) //出现Exception异常不回滚
@Transactional(readOnly=true) //只读,性能优化,效率高
@Transactional(propagation=Propagation.NOT_SUPPORTED) //不开启事务
@Transactional(propagation=Propagation.REQUIRED) //如果有事务,那么加入事务,没有的话新建一个(不写的情况下)
@Transactional(propagation=Propagation.NOT_SUPPORTED) //容器不为这个方法开启事务
@Transactional(propagation=Propagation.REQUIRES_NEW) //不管是否存在事务,都创建一个新的事务,原来的挂起,新的执行完毕,继续执行老的事务
@Transactional(propagation=Propagation.MANDATORY) //必须在一个已有的事务中执行,否则抛出异常
@Transactional(propagation=Propagation.NEVER) //必须在一个没有的事务中执行,否则抛出异常(与Propagation.MANDATORY相反)
@Transactional(propagation=Propagation.SUPPORTS) //如果其他bean调用这个方法,在其他bean中声明事务,那就用事务.如果其他bean没有声明事务,那就不用事务.
@Transactional(propagation=Propagation.NESTED)
@Transactional(propagation = Propagation.REQUIRED,readOnly=true) //readOnly=true只读,不能更新,删除
@Transactional(propagation = Propagation.REQUIRED,timeout=30)//设置超时时间
@Transactional(propagation = Propagation.REQUIRED,isolation=Isolation.DEFAULT)//设置数据库隔离级别