- 트랜잭션 매니저 bean정의하기
TransactionManger 정의
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"/>
</bean>
public class TransactionService1 {
/** 트랜잭션 매니져 */
private PlatformTransactionManager transactionManager;
public void setTransactionManager(PlatformTransactionManager transactionManager) {
this.transactionManager = transactionManager;
}
...
}///~
- 프로그래밍적으로 트랜잭션 처리하기(1)
프로그래밍적으로 트랜잭션 처리 샘플
public void addPerson(Person person) {
DefaultTransactionDefinition transDef =
new DefaultTransactionDefinition(TransactionDefinition.PROPAGATION_REQUIRED);
transDef.setReadOnly(false);
transDef.setIsolationLevel(TransactionDefinition.ISOLATION_READ_COMMITTED);
TransactionStatus status = transactionManager.getTransaction(transDef);
Assert.notEmpty(person.getFamilies());
String newId = this.createNewPersonId();
person.setId(newId);
...
person.setUpdateDate(createDateTime);
try {
.....
transactionManager.commit(status);
} catch (Exception e) {
transactionManager.rollback(status);
throw new RuntimeException(e);
}
}//:
- 프로그래밍적으로 트랜잭션 처리하기(2-1)
프로그래밍적으로 트랜잭션 처리 샘플
<bean id="transactionTemplate"
class="org.springframework.transaction.support.TransactionTemplate">
<property name="transactionManager">
<ref bean="transactionManager" />
</property>
</bean>
public class TransactionService4 {
private PersonDao personDao;
private FamilyDao familyDao;
private TransactionTemplate transactionTemplate;
}///~
- 프로그래밍적으로 트랜잭션 처리하기(2-2)
프로그래밍적으로 트랜잭션 처리 샘플
public void addPerson(final Person person) {
final String newId = this.createNewPersonId();
person.setId(newId);
String createDateTime = DatetimeUtil.getCurrentDateTime().substring(0, 8);
person.setCreateDate(createDateTime);
person.setUpdateDate(createDateTime);
Object retObject = transactionTemplate.execute(
new TransactionCallback() {
public Object doInTransaction(TransactionStatus status) {
int rv = personDao.insertWithObject(person);
for(int i=0; i < person.getFamilies().length; i++) {
Family fbean = person.getFamilies()[i];
fbean.setId(person.getId());
rv = addFamily(fbean);
}// for
return null;
}//:
});
}//:
'SPRING > 소스코드' 카테고리의 다른 글
#30. Spring JDBC(Transaction)| (0) | 2016.05.20 |
---|---|
[스프링]@RequestParam 배열 처리 시 알게된 사항 (0) | 2016.05.02 |
Spring Scheduler(스프링 스케쥴러) 설정방법 및 사용방법 (2) | 2016.03.24 |
[Spring] Spring 3에서 작업 스케줄러(Task Scheduler) 메써드 구현하기 (0) | 2016.03.24 |
스프링MultipartFile멀티(다중)파일 업로드[@ModelAttribute이용,Spring Framework3.X MVC multiple file upload] (1) | 2015.10.13 |
Spring 4.0 기준 MappingJacksonJsonView 설정 (0) | 2015.07.09 |
Spring MVC AbstractView 사용하여 파일 다운로드 처리 하기 (0) | 2015.03.25 |
Spring3 MVC를 이용한 웹 요청 처리 (2) - HTML 폼 값 받기 (0) | 2014.11.17 |