Spring 常用注解

一、用于MVC上的注解

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

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

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

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


二、用于类或方法上的注解

@Scope用于指定scope作用域的(用在类上,单例或是多例)
@PostConstruct用于指定初始化方法(用在方法上)
@PreDestory用于指定销毁方法(用在方法上)【默认 单例  启动就加载
@DependsOn:定义Bean初始化及销毁时的顺序


三、用于引用Bean的注解

@Autowired 默认按类型装配,如果我们想使用按名称装配,可以结合@Qualifier注解一起使用。如下:@Autowired @Qualifier("personDaoBean") 存在多个实例配合使用

@Resource默认按名称装配,当找不到与名称匹配的bean才会按类型装配。


注意:applicationContext.xml文件必须配置

<!--(1)自动扫描机制 -->
  <context:component-scan base-package="com.hlx"/>


四、用于事务的注解

      // 如果有事务,那么加入事务,没有的话新建一个(不写的情况下)
    @Transactional(propagation=Propagation.REQUIRED) 


    // 容器不为这个方法开启事务
    @Transactional(propagation=Propagation.NOT_SUPPORTED)


    // 不管是否存在事务,都创建一个新的事务,原来的挂起,新的执行完毕,继续执行老的事务
    @Transactional(propagation=Propagation.REQUIRES_NEW) 


    // 必须在一个已有的事务中执行,否则抛出异常
    @Transactional(propagation=Propagation.MANDATORY)


    // 必须在一个没有的事务中执行,否则抛出异常(与Propagation.MANDATORY相反)
    @Transactional(propagation=Propagation.NEVER) 


    // 如果其他bean调用这个方法,在其他bean中声明事务,那就用事务.如果其他bean没有声明事务,那就不用事务.
    @Transactional(propagation=Propagation.SUPPORTS) 


  // readOnly=true只读,不能更新,删除 
  @Transactional (propagation = Propagation.REQUIRED,readOnly=true) 


 // 设置超时时间
  @Transactional (propagation = Propagation.REQUIRED,timeout=30)


 // 设置数据库隔离级别
@Transactional (propagation = Propagation.REQUIRED,isolation=Isolation.DEFAULT)


默认遇到throw new RuntimeException("...");会回滚
注意:需要捕获的throw new Exception("...");不会回滚


// 指定回滚
@Transactional(rollbackFor=Exception.class) 
    public void methodName() {
       // 不会回滚
       throw new Exception("...");
    } 
//指定不回滚
@Transactional(noRollbackFor=Exception.class)
    public ItimDaoImpl getItemDaoImpl() {
        // 会回滚
        throw new RuntimeException("注释");
    } 


注意:applicationContext.xml文件必须配置

   <!-- (2) 事务bean -->
   <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
    <property name="dataSource" ref="dataSource"/>  <!-- must datasource -->
   </bean>
 
   
   <!-- (3)事务注解 -->
   <tx:annotation-driven transaction-manager="transactionManager"/>



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值