?!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
此文档旨在说明项目中如何配置使用注解以减项目的额外配置。具体将以一个系lؓ例,讲述如何配置以及使用注解Q包含事务注解、Dao层注解、Service层注解、Action层注解)Q注解皆采用Spring提供的注解?/span>
一?南软g开?/strong>先讲q如何配|注解:
首先Q引入jar包,下面3个jar与注解配|直接相养I其他兌包请自行引入Q?/span>
W二步,在Spring的applicationContext-xx.xml中进行如下配|:
[html]
<!-- 配置注解扫描目录 -->
<context:component-scan base-package="com.bodatech">
</context:component-scan>
<!-- 引入注解 -->
<context:annotation-config />
通过以上配置后,目中即可用Spring提供的@Autowired、@Service、@Repository、@Compant{标{,以上标签具体含义误行Google之,此处不再赘述?/span>
W三步,配置事务注解Q?/span>
[html]
<!-- 事务理?-->
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource" />
</bean>
<!-- 配置事务控制 -->
<tx:annotation-driven transaction-manager="transactionManager" />
注:因ؓ目中用的是jdbcTemplateQ故此处事务理cM?DataSourceTransactionManager。若使用ibatis、hibernate时请使用其他事务理cR?/span>
W四步,配置jdbcTemplate注入BeanQ?/span>
[html]
<!-- 配置 jdbctemplate 注入Bean -->
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource" ref="dataSource" />
</bean>
二? 通过以上配置卛_在项目中使用注解Q下面着重讲qC用方法:
首先Q由于项目中存在一个基cDaoQ其他用戯定义cȝl承于该c,故只需要在BaseDao中注入jdbcTemplate。如下:
[java]
@Autowired
private JdbcTemplate jdbcTemplate;
注:使用注解形式Q无需再额外配|setter、getterҎQ下同?/span>
W二步,在Dao实现cM配置注解Q如下:
[java]
@Repository
public class NewsPublishedDaoImpl extends BaseDao implements INewsPublishedDao
{
}
注:因ؓNewsPublishedDaoImpll承BaseDaoQ故在此cM可以直接使用jdbcTemplateQ而无需再进行注入。如果项目中无BaseDaoQ请记得在每个用戯定义Dao中配|jdbcTemplate?/span>
W三步,在Service实现cM配置注解Q如下:
[java]
@Service
public class NewsPublishedServiceImpl implements INewsPublishedService
{
@Autowired
private INewsPublishedDao newsPublishedDao;
}
W四步,在Service实现c配|事务注解,如下Q?/span>
[java]
@Transactional
public boolean insertNewsPublished()
{
}
注:在需要事务控制的Ҏ上添加该注解卛_Q不需要事务的Ҏ无需d。以上事务注解配|等价于
[java]
@Transactional(propagation = Propagation.REQUIRED, isolation=Isolation.DEFAULT, readOnly = false)
且,以上配置默认的回滚原则是捕获RuntimeException异常Q如果需要捕获其他异常,请配|rollbackFor = YourException.class?/span>
W五步,在Action引入注解Q如下:
[java]
public class NewsPublishedAction
{
@Autowired
private INewsPublishedService newsPublishedService;
}
lgQ注解配|完毕。至于Action/Controller层亦可以使用注解来实现零配置Q该内容不在本次讲解的范畴内Q请自行Google之?/span>