`

zeus持久层spring事务单元测试

阅读更多

今天把zeus事务单元测试放出来,让大家指出他的毛病,

1.ZeusTransactionTest.java 单元测试

 

package com.dengliang.zeus.webdemo.test;

import java.util.ArrayList;
import java.util.List;

import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.dengliang.zeus.webdemo.services.IDajc01Service;
import com.dengliang.zeus.webdemo.util.UIDGenerator;
import com.dengliang.zeus.webdemo.vo.Dajc01VO;


//
/**
 * zeus 持久层事务测试 由于打包时要调用 test方法 ,如果测试手工添加@Test
 * @author 100755_邓亮 2015年4月28日
 *
 */
public class ZeusTransactionTest {
	private static ApplicationContext context;
	/**
	 * 获取bean
	 * 
	 * @param id
	 * @return
	 */
	public static Object getBean(String id) {
		if (context == null) {
			synchronized (id) {
				context = new ClassPathXmlApplicationContext(
						"applicationContext-simpledb.xml",
						"applicationContext-dao.xml",
						"applicationContext-service.xml",
						"applicationContext-transaction.xml");
			}
		}
		return context.getBean(id);
	}
	@Test
	public void addTransactionTest() {
		// 新增测试
		IDajc01Service service = (IDajc01Service) ZeusTransactionTest.getBean("dajc01Service");
		try {
			List<Dajc01VO> list=new ArrayList();
			for (int i = 0; i < 10; i++) {
				Dajc01VO da001 = new Dajc01VO();
				da001.setUuid(UIDGenerator.getUUID());
				da001.setSysId(i+"");
				list.add(da001);
			}
			service.addList(list);
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}	
}

 2.相关几个配置文件

 

applicationContext-simpledb.xml

 

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
	xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
	xmlns:context="http://www.springframework.org/schema/context"
	xsi:schemaLocation="http://www.springframework.org/schema/beans 
		http://www.springframework.org/schema/beans/spring-beans.xsd
		http://www.springframework.org/schema/context 
		http://www.springframework.org/schema/context/spring-context.xsd 
		http://www.springframework.org/schema/aop
		http://www.springframework.org/schema/aop/spring-aop.xsd
		http://www.springframework.org/schema/tx
		http://www.springframework.org/schema/tx/spring-tx.xsd ">

	<context:property-placeholder location="classpath:*.properties" />
	<bean id="parentDataSource" class="com.alibaba.druid.pool.DruidDataSource"
		destroy-method="close">
		<!-- 配置初始化大小、最小、最大 -->
		<property name="initialSize" value="20" />
		<property name="minIdle" value="20" />
		<property name="maxIdle" value="30" />
		<property name="maxActive" value="50" />
		<!-- 配置获取连接等待超时的时间 -->
		<property name="maxWait" value="0" />
		<!-- 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 -->
		<property name="timeBetweenEvictionRunsMillis" value="60000" />
		<!-- 配置一个连接在池中最小生存的时间,单位是毫秒 -->
		<property name="minEvictableIdleTimeMillis" value="300000" />
		<property name="validationQuery" value="SELECT 'x'" />
		<property name="testWhileIdle" value="true" />
		<property name="testOnBorrow" value="false" />
		<property name="testOnReturn" value="false" />
		<property name="removeAbandoned" value="false" />
		<!-- 打开PSCache,并且指定每个连接上PSCache的大小 -->
		<property name="poolPreparedStatements" value="true" />
		<property name="maxPoolPreparedStatementPerConnectionSize"
			value="20" />
			<property name="filters" value ="stat,wall"></property>
	 </bean>
     
     <bean id="jlerp_db" parent="parentDataSource" destroy-method="close">
		<property name="url" value="jdbc:oracle:thin:@10.68.2.23:1521/erpdb" />
		<property name="username" value="jlerp_db" />
		<property name="password" value="jlerp_db" />
	</bean>	
	
	<!--daoSupport-->
	<bean id="zeusdaoSupport" class="com.dengliang.zeus.framework.dao.ZeusDaoSupport">
		<property name="dataSource" ref="jlerp_db"/>
	</bean>

</beans>

 applicationContext-dao.xml

 

 

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
		xmlns:p="http://www.springframework.org/schema/p" 
		xmlns:aop="http://www.springframework.org/schema/aop" 
		xmlns:tx="http://www.springframework.org/schema/tx"
		xmlns:context="http://www.springframework.org/schema/context"  
		xsi:schemaLocation="http://www.springframework.org/schema/beans 
		http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
		http://www.springframework.org/schema/context 
		http://www.springframework.org/schema/context/spring-context-3.2.xsd 
		http://www.springframework.org/schema/aop
		http://www.springframework.org/schema/aop/spring-aop-3.2.xsd
		http://www.springframework.org/schema/tx
		http://www.springframework.org/schema/tx/spring-tx-3.2.xsd ">
	<!-- DAO -->
	<bean id="dajc01DAO" class="com.dengliang.zeus.webdemo.dao.Dajc01DAO" parent="zeusdaoSupport"/>
</beans>

 applicationContext-service.xml

 

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
	xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
	xmlns:context="http://www.springframework.org/schema/context"
	xsi:schemaLocation="http://www.springframework.org/schema/beans 
		http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
		http://www.springframework.org/schema/context 
		http://www.springframework.org/schema/context/spring-context-3.2.xsd 
		http://www.springframework.org/schema/aop
		http://www.springframework.org/schema/aop/spring-aop-3.2.xsd
		http://www.springframework.org/schema/tx
		http://www.springframework.org/schema/tx/spring-tx-3.2.xsd ">

	<!-- BIZ -->
	<bean id="dajc01Service" class="com.dengliang.zeus.webdemo.services.impl.Dajc01Service">
		<property name="dajc01DAO" ref="dajc01DAO" />
	</bean>
	
</beans>

 applicationContext-transaction.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
	xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
	xmlns:context="http://www.springframework.org/schema/context"
	xsi:schemaLocation="http://www.springframework.org/schema/beans 
		http://www.springframework.org/schema/beans/spring-beans.xsd
		http://www.springframework.org/schema/context 
		http://www.springframework.org/schema/context/spring-context.xsd 
		http://www.springframework.org/schema/aop
		http://www.springframework.org/schema/aop/spring-aop.xsd
		http://www.springframework.org/schema/tx
		http://www.springframework.org/schema/tx/spring-tx.xsd ">

	  <bean id = "transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
    	<property name="dataSource" ref="jlerp_db" />
      </bean>
      <!-- 声明式事务配置 -->
	  <tx:advice id="txAdvice" transaction-manager="transactionManager">
		<tx:attributes>
				<tx:method name="do*" propagation="REQUIRED" rollback-for="Throwable, Exception, RuntimeException"/>
			<tx:method name="del*" propagation="REQUIRED" rollback-for="Throwable, Exception, RuntimeException"/>
			<tx:method name="save*" propagation="REQUIRED" rollback-for="Throwable, Exception, RuntimeException"/>
			<tx:method name="add*" propagation="REQUIRED" rollback-for="Throwable, Exception, RuntimeException"/>
			<tx:method name="begin*" propagation="REQUIRED" rollback-for="Throwable, Exception, RuntimeException"/>
			<tx:method name="end*" propagation="REQUIRED" rollback-for="Throwable, Exception, RuntimeException"/>
			<tx:method name="update*" propagation="REQUIRED" rollback-for="Throwable, Exception, RuntimeException"/>
			<tx:method name="modify*" propagation="REQUIRED" rollback-for="Throwable, Exception, RuntimeException"/>
			<tx:method name="query*" propagation="NOT_SUPPORTED"/>
			<tx:method name="load*" propagation="NOT_SUPPORTED"/>
			<tx:method name="find*" propagation="NOT_SUPPORTED"/>
			<tx:method name="*" read-only="true" propagation="SUPPORTS" />
	</tx:attributes>
	</tx:advice>
	<!-- service切面 -->
	<aop:config>
		<aop:pointcut expression="execution(* com.dengliang.zeus.webdemo.services.*.*(..))" id="pointCut" />
		<aop:advisor  pointcut-ref="pointCut" advice-ref="txAdvice"/>
	</aop:config>
   

	


	
</beans>

 

分享到:
评论

相关推荐

    经过测试的zeus/zbot代码

    【标题】"经过测试的zeus/zbot代码" 涉及的是两个著名的恶意软件家族——ZeuS和Zbot,它们在网络安全领域具有重要地位。ZeuS和Zbot都是远程控制木马(Remote Access Trojan,RAT),主要用于非法活动,如银行账户...

    zeus -- the infamous Zeus crimeware kit

    "The source code to the infamous Zeus crimeware kit, which has been sold on underground forums for years, has been leaked and is now available for anyone to see if they know where to look. Security ...

    zbot/zeus源代码-测试可用

    在IT安全领域,"zbot" 和 "zeus" 是两个非常重要的术语,它们关联着一种高度复杂的恶意软件家族。本文将深入探讨zbot/Zeus源代码的相关知识点,包括其功能、工作原理以及安全应对策略。 zbot,也被称为Zeus,是一款...

    ZeuS 2.0.8.9.rar

    ZeuS 2.0.8.9.rar 完整版源码

    zeus安装部署全套资料

    7. **验证运行**:通过Web界面检查Zeus是否正常运行,测试调度功能。 三、Zeus关键组件解析 1. **Scheduler**:负责任务的调度,根据预设的策略分配资源和时间窗口。 2. **Executor**:执行调度器分配的任务,与...

    专杀工具Zbot或Zeus专杀.zip

    在IT安全领域,Zbot和Zeus是两种非常知名的恶意软件,主要针对银行和其他金融机构进行网络犯罪活动。这些恶意软件通常被用作银行木马,能够窃取用户的网上银行凭证,进行非法转账,并且可能涉及身份盗窃。专杀工具是...

    zeus开放源码

    Zeus通常用于网络安全研究,特别是对于渗透测试和漏洞扫描。下面,我们将深入探讨Zeus源码的相关知识点。 1. **源码开放的意义**: 开放源码意味着任何人都可以访问、分析和改进软件的代码。这对于开发者和安全...

    OD吾爱破解专版 加zeus插件

    吾爱破解专版,插件也比较齐全,添加了Zeus大神的脱VMP脚本

    Go-ZEUS这是一个现代化的构建系统

    **Go-ZEUS:现代化构建系统的深度解析** Go-ZEUS是一个创新的构建系统,它在Go语言的生态系统中提供了一种高效、便捷的开发体验。这个系统的设计目标是简化项目构建过程,提升开发效率,同时也注重用户体验,通过...

    基于Spring Cloud分布式物联网(IOT)平台源码.zip

    数据处理层负责数据清洗、聚合和分析,可以利用Spring Cloud Stream进行流式处理;应用展示层则提供用户界面,展示数据和控制设备。在Spring Cloud框架下,每个层次都可以被拆分为多个微服务,通过RESTful API互相...

    ZeuS 2.0.8.9

    Zeus:是恶意程序工具包,是臭名昭著但名声卓著的黑客工具包。

    zeus.rar_.svmp壳_ZEUS脱壳_Zeus脱_vmp壳官网_vmp插件

    大牛的脱VMP壳的插件,一般的VMP壳都能脱掉

    Python库 | flask-zeus-0.2.1.tar.gz

    **Flask-Zeus** 是一个基于 **Python** 的微型框架 **Flask** 的扩展插件。这个库的主要目的是为了提供更高效、更便捷的开发体验,特别是在后端开发领域。`flask-zeus-0.2.1.tar.gz` 是这个库的一个特定版本,即...

    zeus源代码、原理及查杀

    过去横扫全球的 ZeuS 恶意程序,可说是安全威胁领域最热门的恶意程序工具套件。Zeus病毒的作者 Monstr/Slavik 将 Zeus 的原代码移交给 SpyEye 的作者 Harderman/Gribodemon 之前,Zeus 的最后一个版本为 2.0.8.9。 ...

    Zeus-Android2.rar_Only_Zitmo apk_zeus_zeus Zitmo

    【标题】"Zeus-Android2.rar_Only_Zitmo apk_zeus_zeus Zitmo" 提供的信息表明,这是一个与恶意软件Zitmo相关的Android应用样本,主要用于教育目的。Zitmo(ZeuS in the Mobile)是知名的手机银行木马,通常与桌面版...

    Go-zeus-一个非常简单和快速的HTTP路由器

    在使用Go-zeus时,首先需要引入相关的包,然后通过`zeus.New()`创建一个新的路由器实例。接着,可以通过`.Get()`, `.Post()`, `.Put()`, `.Delete()`等方法定义HTTP路由,并通过匿名函数或者自定义处理器来绑定处理...

    theine:用于JRuby的Rails预加载器(类似于Zeus,Spring和Spork)

    它类似于Zeus,Spring和Spork。 Zeus和Spring的问题在于它们使用了在JRuby上不起作用的`fork'。 time rails runner "puts Rails.env"48.31s user 1.96s system 242% cpu 20.748 total # normaltime theine runner ...

    基于Zeus平台的Agent技术在电子商务中的应用

    基于Zeus平台的Agent技术在电子商务中的应用(论文)

    ZEUS

    ZEUS

    Immergas依玛ZEUS-SUPERIOR-28-32使用说明书.pdf

    【Immergas依玛ZEUS-SUPERIOR-28-32使用说明书】 这份使用说明书是针对Immergas依玛品牌的ZEUS-SUPERIOR-28-32型号锅炉的,旨在指导用户正确操作和维护该设备。锅炉的长期安全、性能和运行效率取决于定期的维护和...

Global site tag (gtag.js) - Google Analytics