首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

Spring 兑现ibatis事务回滚

2012-10-08 
Spring 实现ibatis事务回滚网上发现这篇文章,转过来学习一下,好不好用还没有实践,需要自己检验一下。web.xm

Spring 实现ibatis事务回滚

网上发现这篇文章,转过来学习一下,好不好用还没有实践,需要自己检验一下。

web.xml

<?xml version="1.0" encoding="UTF-8"?><web-app xmlns="http://java.sun.com/xml/ns/j2ee"    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4"    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee   http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">    <context-param>       <param-name>contextConfigLocation</param-name>       <param-value>classpath:applicationContext.xml</param-value>    </context-param>    <listener>       <listener-class>           org.springframework.web.context.ContextLoaderListener       </listener-class>    </listener>     <servlet>       <servlet-name>AppConfigServlet</servlet-name>       <servlet-class>com.test.ConfigServlet</servlet-class>       <load-on-startup>2</load-on-startup>    </servlet>    <welcome-file-list>       <welcome-file>index.jsp</welcome-file>    </welcome-file-list></web-app>

?ApplicationContext.xml

<bean id="transactionManager"ref="dataSource" />    </bean><bean id="businessTarget"       />           <bean id="businessBean"       />       </property>       <property name="transactionAttributes">           <props>              <prop key="*">PROPAGATION_REQUIRED,-Exception</prop>           </props>       </property>    </bean>    <bean id="dataSource"       ref="dataSource"></property>    </bean>

?Ibatis.xml

<insert id="testInsert" parameterparametername="code">public class ConfigServlet extends HttpServlet {    /**     * UID     */    private static final long serialVersionUID = 5118794568550751611L;    public void init() throws ServletException {       ApplicationContext ctx = WebApplicationContextUtils.getRequiredWebApplicationContext(this.getServletContext());       BaseService.getInstance().init(ctx);       super.init();    }}

?BaseService.java

public class BaseService implements ApplicationContextAware {     private static ApplicationContext ctx;    private static SqlMapClient sqlMapClient;    private static SqlMapClient sqlMapClientProxy;    private static BusinessInterface businessBean;     private static BaseService instance = new BaseService();       /**     * @return 返回 静态类     */    public static BaseService getInstance(){       return instance;    }    /**     * @return 返回 初始化BaseService,存于内存     */    public void init(ApplicationContext ctx) {       setApplicationContext(ctx);       setSqlMapClient(ctx);       setBusinessBean(ctx);//     setSqlMapClientProxy(ctx);       System.out.println(" INFO - 初始化baseservice成功");    }        public void setSqlMapClient(ApplicationContext ctx){       sqlMapClient = (SqlMapClient) ctx.getBean("sqlMapClient");    }    /**     * @return 返回 sqlMapClient。     */    public SqlMapClient getInstanceSqlMapClient() {       return this.sqlMapClient;    }        /**     * 通过spring注入ApplicationContext     *      * @param ApplicationContext     * @return null     */    public void setApplicationContext(ApplicationContext arg0) throws BeansException {       ctx = arg0;    }     public Object getBean(String beanName) {       return ctx.getBean(beanName);    }    /**     * @return 返回 sqlMapClient。     */    public SqlMapClient getSqlMapClient() {       return (SqlMapClient) ctx.getBean("sqlMapClient");    }    public void setSqlMapClientProxy(ApplicationContext ctx) {       sqlMapClientProxy= (SqlMapClient) ctx.getBean("sqlMapClientProxy");    }    public SqlMapClient getSqlMapClientProxy() {       return sqlMapClientProxy;    }    public static BusinessInterface getBusinessBean() {       return businessBean;    }     public static void setBusinessBean(ApplicationContext ctx) {       businessBean = (BusinessInterface) ctx.getBean("businessBean");    }}

?BusinessInterface.java

?

public interface BusinessInterface {    public void hello() throws SQLException;}

?

BusinessInterfaceImpl.java

public class BusinessInterfaceImpl implements BusinessInterface {    public void hello() throws SQLException {       System.out.println("hello Spring AOP.");       SqlMapClient sqlMapClient = BaseService.getInstance().getInstanceSqlMapClient();               sqlMapClient.startTransaction();           sqlMapClient.insert("testInsert","7");           System.out.println("1");           sqlMapClient.insert("testInsert","8");           System.out.println("2");           sqlMapClient.insert("testInsert","9");           System.out.println("3");           sqlMapClient.insert("testInsertWrong","10");           sqlMapClient.commitTransaction();           }}

?

?

?

热点排行