重要用于纯java配置,配置事务
主要是在这个例子上做二次开发 http://blog.csdn.net/niugang0920/article/details/79448595
主要是增加了 一个TransactionalConfig.java 事务的配置文件
修改了RootConfig.java,及业务层代码UserService.java
TransactionalConfig.java
package com.niugang;
import javax.sql.DataSource;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.jdbc.datasource.DataSourceTransactionManager;
import org.springframework.transaction.annotation.EnableTransactionManagement;
/**
* 事务配置文件
*
* @author niugang
*
*/
@Configuration
@EnableTransactionManagement
/*
* 事务具体配置可以参考 @EnableTransactionManagement里面源码的配置
*/
public class TransactionalConfig {
@Bean
public DataSourceTransactionManager dataSourceTransactionManager(DataSource dataSource) {
DataSourceTransactionManager dataSourceTransactionManager = new DataSourceTransactionManager();
dataSourceTransactionManager.setDataSource(dataSource);
return dataSourceTransactionManager;
}
}
RootConfig.java
package com.niugang;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.ComponentScan.Filter;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.FilterType;
import org.springframework.context.annotation.Import;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
/**
* 上下文配置
* @author niugang
*
*/
@Configuration
@ComponentScan(basePackages={"con.niugang"},
excludeFilters={
@Filter(type=FilterType.ANNOTATION, value=EnableWebMvc.class)
}
)
//在上下文中引入jdbc配置文件,事务配置文件
@Import({JdbcConfig.class,TransactionalConfig.class})
public class RootConfig {
}
UserService.java
package com.niugang.service;
import java.util.List;
import javax.annotation.Resource;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.niugang.dao.UserDao;
import com.niugang.entity.User;
@Service
public class UserService {
@Resource
private UserDao userDao;
public List<User> queryList() {
return userDao.queryList();
}
@Transactional
public void save(User user) {
userDao.save(user);
throw new RuntimeException("数据库访问异常");
}
public User get(int id) {
return userDao.get(id);
}
public void delete(int id) {
userDao.delete(id);
}
}
微信公众号