Skip to content
This repository has been archived by the owner on Apr 16, 2024. It is now read-only.

Commit

Permalink
[ch05] Use TransactionManager to abstract transaction bound with spri…
Browse files Browse the repository at this point in the history
…ng DI.
  • Loading branch information
dhsim86 committed Sep 6, 2017
1 parent 8730c87 commit f657e32
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 18 deletions.
16 changes: 6 additions & 10 deletions src/main/java/ch01/springbook/user/UserService.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,6 @@

import java.util.List;

import javax.sql.DataSource;

import org.springframework.jdbc.datasource.DataSourceTransactionManager;
import org.springframework.transaction.PlatformTransactionManager;
import org.springframework.transaction.TransactionStatus;
import org.springframework.transaction.support.DefaultTransactionDefinition;
Expand All @@ -18,20 +15,19 @@ public class UserService {
public static final int MIN_LOGCOUNT_FOR_SILVER = 50;
public static final int MIN_RECOMMEND_FOR_GOLD = 30;

UserDao userDao;
private DataSource dataSource;
private PlatformTransactionManager transactionManager;
private UserDao userDao;

public void setUserDao(UserDao userDao) {
this.userDao = userDao;
public void setTransactionManager(PlatformTransactionManager transactionManager) {
this.transactionManager = transactionManager;
}

public void setDataSource(DataSource dataSource) {
this.dataSource = dataSource;
public void setUserDao(UserDao userDao) {
this.userDao = userDao;
}

public void upgradeLevels() throws Exception {

PlatformTransactionManager transactionManager = new DataSourceTransactionManager(dataSource);
TransactionStatus status = transactionManager.getTransaction(new DefaultTransactionDefinition());

try {
Expand Down
6 changes: 5 additions & 1 deletion src/main/resources/applicationContext.xml
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,10 @@
<property name="password" value="study" />
</bean>

<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager" >
<property name="dataSource" ref="dataSource" />
</bean>

<bean id="jdbcContext" class="ch03.springbook.user.dao.JdbcContext">
<property name="dataSource" ref="dataSource" />
</bean>
Expand All @@ -21,7 +25,7 @@

<bean id="userService" class="ch01.springbook.user.UserService">
<property name="userDao" ref="userDao" />
<property name="dataSource" ref="dataSource" />
<property name="transactionManager" ref="transactionManager" />
</bean>

</beans>
13 changes: 6 additions & 7 deletions src/test/java/ch01/springbook/user/UserServiceTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -10,14 +10,13 @@
import java.util.Arrays;
import java.util.List;

import javax.sql.DataSource;

import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.transaction.PlatformTransactionManager;

import ch01.springbook.user.dao.UserDao;
import ch01.springbook.user.domain.Level;
Expand Down Expand Up @@ -48,15 +47,15 @@ protected void upgradeLevel(User user) {
}

@Autowired
UserService userService;
private PlatformTransactionManager transactionManager;

@Autowired
UserDao userDao;
private UserService userService;

@Autowired
DataSource dataSource;
private UserDao userDao;

List<User> userList;
private List<User> userList;

@Before
public void setUp() {
Expand Down Expand Up @@ -116,7 +115,7 @@ public void add() {
public void upgradeAllOrNothing() throws Exception {
UserService testUserService = new TestUserService(userList.get(3).getId());
testUserService.setUserDao(userDao);
testUserService.setDataSource(dataSource);
testUserService.setTransactionManager(transactionManager);

userDao.deleteAll();
for (User user : userList) {
Expand Down

0 comments on commit f657e32

Please sign in to comment.