Spring Annotation常用注解小结

本文总结的是Spring中经常用到的一些注解的用法:

(1)<context:annotation-config/>

该配置表示启用注解。

(2)<context:component-scan base-package="*.*" />

该配置表示扫描哪些包下的注解,该配置隐式注册了多个对注解进行解析的处理器,其中包括了<context:annotation-config/>配置项里面的注解所使用的处理器。所以,在配置了<context:component-scan base-package="">以后,就不用再配置<context:annotation-config/>。

(3)@Component、@Repository、@Service、@Controller、@Autowired、@Resource

在配置了<context:component-scan base-package="*.*" />以后,Spring就会自动扫描classpath下标注了@Component、@Repository、@Service、@Controller、@Autowired、@Resource等注解的类,并把这些类纳入Spring容器中管理,其作用和直接在XML中配置bean是一样的。

@Service:用于标注业务层组件。

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

@Controller:用于标注控制层组件,如Struts中的Action。

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

@Autowired和@Resource意义一样,一般使用@Resource注解,因为@Resource是J2EE提供的,而@Autowired是Spring提供的。

(4)<tx:annotation-driven />

该配置用于配置事务管理,@Transactional 注解可以被应用于接口定义和接口方法、类定义和类的 public 方法上。Spring团队的建议是你在具体的类(或类的方法)上使用 @Transactional 注解,而不要使用在类所要实现的任何接口上。

@Service
@Transactional(rollbackFor=Exception.class)   //对当前类的所有方法起作用,异常时都回滚
public class ButtonBo extends GlobalBo {
 ....
 @Transactional(propagation = Propagation.NOT_SUPPORTED, readOnly = true) //具体方法上
   public Button findButton(String buttonid) throws BaseException {
    return hibernateEntityDao.get(Button.class, buttonid);
  }
}

Spring中配置事务有多种方法,上面即为其中一种比较方便、常用的方式。

本文标题:Spring Annotation常用注解小结

本文链接:http://yedward.net/?id=339

本文版权归作者所有,欢迎转载,转载请以文字链接的形式注明文章出处。

相关文章