首页 > Java开发 > 基于Spring注解方式配置项目的相关说明

基于Spring注解方式配置项目的相关说明

此文档旨在说明项目中如何配置使用注解以减少项目的额外配置。具体将以一个系统为例,讲述如何配置以及使用注解(包含事务注解、Dao层注解、Service层注解、Action层注解),注解皆采用Spring提供的注解。

 

一、 下面先讲述如何配置注解:

首先,引入jar包,下面3个jar与注解配置直接相关,其他关联包请自行引入:

 

第二步,在Spring的applicationContext-xx.xml中进行如下配置:

[html][/html] view plaincopy

  1. <!--  配置注解扫描目录  -->
  2.     <context:component-scan base-package="com.bodatech">
  3.     </context:component-scan>
  4. <!--  引入注解   -->
  5.        <context:annotation-config />

 

通过以上配置后,项目中即可使用Spring提供的@Autowired、@Service、@Repository、@Compant等标签,以上标签具体含义请自行Google之,此处不再赘述。

第三步,配置事务注解:

[html][/html] view plaincopy

  1. <!-- 事务管理器 -->
  2.     <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
  3.         <property name="dataSource" ref="dataSource" />
  4.     </bean>
  5.     <!-- 配置事务控制   -->
  6. <tx:annotation-driven transaction-manager="transactionManager" />

 

 

注:因为项目中使用的是jdbcTemplate,故此处事务管理类使用 DataSourceTransactionManager。若使用ibatis、hibernate时请使用其他事务管理类。

 

第四步,配置jdbcTemplate注入Bean:

 

[html][/html] view plaincopy

  1. <!-- 配置 jdbctemplate 注入Bean -->
  2.     <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
  3.         <property name="dataSource" ref="dataSource" />
  4.     </bean>

二、  通过以上配置即可在项目中使用注解,下面着重讲述使用方法:

 

 

首先,由于项目中存在一个基类Dao,其他用户自定义类皆继承于该类,故只需要在BaseDao中注入jdbcTemplate。如下:

 

[java][/java] view plaincopy

  1. @Autowired
  2. private JdbcTemplate jdbcTemplate;

注:使用注解形式,无需再额外配置setter、getter方法,下同。

 

第二步,在Dao实现类上配置注解,如下:

 

[java][/java] view plaincopy

  1. @Repository
  2. public class NewsPublishedDaoImpl extends BaseDao implements INewsPublishedDao
  3. {
  4. }

 

 

注:因为NewsPublishedDaoImpl继承BaseDao,故在此类中可以直接使用jdbcTemplate,而无需再进行注入。如果项目中无BaseDao,请记得在每个用户自定义Dao中配置jdbcTemplate。

第三步,在Service实现类上配置注解,如下:

 

[java][/java] view plaincopy

  1. @Service
  2. public class NewsPublishedServiceImpl implements INewsPublishedService
  3. {
  4.    @Autowired
  5.    private INewsPublishedDao newsPublishedDao;
  6. }

 

第四步,在Service实现类配置事务注解,如下:

 

[java][/java] view plaincopy

  1. @Transactional
  2. public boolean insertNewsPublished()
  3. {
  4. }

 

注:在需要事务控制的方法上添加该注解即可,不需要事务的方法无需添加。以上事务注解配置等价于

 

[java][/java] view plaincopy

  1. @Transactional(propagation = Propagation.REQUIRED, isolation=Isolation.DEFAULT, readOnly = false)

 

且,以上配置默认的回滚原则是捕获RuntimeException异常,如果需要捕获其他异常,请配置rollbackFor = YourException.class。

第五步,在Action引入注解,如下:

 

[java][/java] view plaincopy

  1. public class NewsPublishedAction
  2. {
  3.    @Autowired
  4.    private INewsPublishedService newsPublishedService;
  5. }

 

 

综上,注解配置完毕。至于Action/Controller层亦可以使用注解来实现零配置,该内容不在本次讲解的范畴内,请自行Google之。


本文固定链接: http://www.devba.com/index.php/archives/3421.html | 开发吧

报歉!评论已关闭.