Notice
Recent Posts
Recent Comments
Link
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

자기 혐오 개발자

[Java]스프링 트랜잭션 Working Code 본문

Java,JSP

[Java]스프링 트랜잭션 Working Code

올라치노 2018. 5. 21. 18:47

pom.xml

에 추가.


<dependency>

<groupId>cglib</groupId>

<artifactId>cglib</artifactId>

<version>2.2.2</version>

</dependency>




applicationContext.xml에 추가해준다.


  <tx:annotation-driven transaction-manager="txManager" />

<bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">

    <property name="dataSource" ref="dataSource" />

</bean>

<tx:advice id="txAdvice" transaction-manager="txManager">

<tx:attributes>

<tx:method name="get*" read-only="true"/>

<tx:method name="*" propagation="REQUIRED" rollback-for="Exception" />

</tx:attributes>

</tx:advice>


<aop:config proxy-target-class="true">

<aop:pointcut id="serviceOperation"

expression="execution(public * kr.test.service.impl.*Impl.*(..))" />

<aop:advisor id="transactionAdvisor" pointcut-ref="serviceOperation"

advice-ref="txAdvice" />

</aop:config>



servlet-context.xml 에서는


<!-- Controller가 들어있는 package. -->

<context:component-scan base-package="kr.test.controller"/>




Class단에서 

Service의 impl에는

package kr.test.service.impl;


@Service

public class TestServiceImpl implements TestService {

...


@Override

public int insertHpTest(HpTestVO vo) throws Exception {

int result = 0;

try {

long time = System.currentTimeMillis();

SimpleDateFormat dayTime = new SimpleDateFormat("yyyyMMddHHmmss");


logger.info("1");

logger.info("2");

vo.setTest_title("처음들어가는 값 = " + dayTime.format(new Date(time)));

managerDao.insertHpTest(vo);

                        // 30개 이상의 글자가 들어가면 오류..

vo.setTest_title(

"0123456789 01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789");

managerDao.insertHpTest(vo);

logger.info("3");

logger.info("4");

} catch (Exception e) {

logger.info("a");

logger.info("b");

  throw new Exception();

}

return result;

}