종희님꺼로 해 보았으나 안되더라구요.
답변을 달아 주셔서 감사합니다.
제가 이것 저젓 수정해서 연결은 되었으나 transaction은 되지 않고 있습니다.
controller에서 익센션 발생시(또는 throw일때 )rollback을 하고자 하는데 되지 않고 있습니다.
XML설정 과 controller은 아래와 같습니다.
최종적으로 bbb갑 입력이 되지 않아야 되는데 해당 부분을 어떻게 해야 할지 감이 잡히지 않고 있습니다.
답이 아니라도 좋으니 참고 또는 공부 할만한 사이트를 알려 주시면 감사하겠습니다.
이번에도 소스도 같이 첨부 합니다.
<?xml version="1.0" encoding="UTF-8"?>
<bean
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<value>/WEB-INF/spring/appServlet/dbpool.properties</value>
</property>
</bean>
<bean id="dataSoruce" class="org.apache.tomcat.jdbc.pool.DataSource" destroy-method="close">
<property name="driverClassName" value="${write.jdbc.driverClass}" />
<property name="url" value="${write.jdbc.url}" />
<property name="username" value="${write.jdbc.username}" />
<property name="password" value="${write.jdbc.password}" />
<property name="initialSize" value="${write.jdbc.min.size}" />
<property name="maxActive" value="${write.jdbc.max.size}" />
<property name="maxIdle" value="5" />
<property name="minIdle" value="2" />
<property name="validationQuery" value="select 1"/>
<property name="testWhileIdle" value="true"/>
<property name="timeBetweenEvictionRunsMillis" value="7200000"/>
</bean>
<!-- Transaction Manager -->
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSoruce" />
</bean>
<aop:config proxy-target-class="true">
<aop:pointcut id="serviceOperation" expression="execution(* com.ys2cdh.framework.dao.service.*Service.*(..))" />
<aop:advisor id="transactionAdvisor" pointcut-ref="serviceOperation" advice-ref="txAdvice"/>
</aop:config>
<tx:advice id="txAdvice" transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="insert*" rollback-for="Exception"/>
<tx:method name="update*" rollback-for="Exception"/>
<tx:method name="remove*" rollback-for="Exception"/>
</tx:attributes>
</tx:advice>
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSoruce" />
<property name="configLocation" value="classpath:/com/ys2cdh/framework/mybatis/mybatisWrite-config.xml" />
</bean>
<bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate" destroy-method="clearCache">
<constructor-arg index="0" ref="sqlSessionFactory" />
</bean>
<!--
<bean id="writeMapper" class="org.mybatis.spring.mapper.MapperFactoryBean">
<property name="mapperInterface" value="com.ys2cdh.framework.dao.service.PersonWriteMapper" />
<property name="sqlSessionFactory" ref="sqlSessionWriteFactory" />
<property name="sqlSessionTemplate" ref="sqlSessionWriteTemplate" />
</bean>
-->
<bean id="readSource" class="org.apache.tomcat.jdbc.pool.DataSource" destroy-method="close">
<property name="driverClassName" value="${read.jdbc.driverClass}" />
<property name="url" value="${read.jdbc.url}" />
<property name="username" value="${read.jdbc.username}" />
<property name="password" value="${read.jdbc.password}" />
<property name="initialSize" value="${read.jdbc.min.size}" />
<property name="maxActive" value="${read.jdbc.max.size}" />
<property name="maxIdle" value="5" />
<property name="minIdle" value="2" />
<property name="validationQuery" value="select 1"/>
<property name="testWhileIdle" value="true"/>
<property name="timeBetweenEvictionRunsMillis" value="7200000"/>
</bean>
<!-- Transaction Manager
<bean id="transactionReadManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="readSource" />
</bean>
-->
<bean id="sqlSessionReadFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="readSource" />
<property name="configLocation" value="classpath:/com/ys2cdh/framework/mybatis/mybatisRead-config.xml" />
</bean>
<bean id="sqlSessionRead" class="org.mybatis.spring.SqlSessionTemplate" destroy-method="clearCache">
<constructor-arg index="0" ref="sqlSessionReadFactory" />
</bean>
</beans>
------------------------------------------------------------------------------------------------------------------
controller
@RequestMapping(value = "/insert", method = RequestMethod.GET)
public ModelAndView insert(HttpServletRequest request)
{
// HttpServletRequest를 이용하여 main.jsp로부터 값을 가져온다 getParameter로는 id값을 가져옴.
Person person = new Person();
person.setId((String) request.getParameter("id"));
person.setNamem("bbbb");
personWriteServiceImpl.insertperson(person);
try
{
throw new Exception("test");
}
catch (Exception e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
// 아래부분은 select값을 result.jsp파일에 보여주기 위해 또사용.
ModelAndView result = new ModelAndView();
List<Person> memberList = personReadServiceImpl.selectPerson();
result.addObject("result", memberList);
result.setViewName("result");
return result;
}