一个service管理多个service

global.dao.dbcp.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: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.0.xsd
	http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
	http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
	http://www.springframework.org/schema/context  http://www.springframework.org/schema/context/spring-context-3.0.xsd">

	<!-- =================== G4Studio平台数据源配置 ================== -->
	<!-- Apache Commons DBCP 数据源
	<bean id="dataSourceG4" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
		<property name="driverClassName" value="${pmpf.jdbc.driverClassName}" />
		<property name="url" value="${pmpf.jdbc.url}" />
		<property name="username" value="${pmpf.jdbc.username}" />
		<property name="password" value="${pmpf.jdbc.password}" />
		<property name="initialSize" value="10" />
		<property name="maxActive" value="30" />
		<property name="maxIdle" value="15" />
		<property name="minIdle" value="5" />
		<property name="removeAbandoned" value="true" />
		<property name="removeAbandonedTimeout" value="60" />
		<property name="maxWait" value="10000" />
		<property name="logAbandoned" value="true" />
	</bean>
	-->
	<!-- Alibaba Druid 数据源 -->
	<bean id="dataSourceG4" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close">
		<property name="url" value="${pmpf.jdbc.url}" />
		<property name="username" value="${pmpf.jdbc.username}" />
		<property name="password" value="${pmpf.jdbc.password}" />
		<!-- 配置初始化大小、最小、最大 -->
		<property name="initialSize" value="${pmpf.jdbc.initialSize}" />
		<property name="maxActive" value="${pmpf.jdbc.maxActive}" />
		<property name="minIdle" value="${pmpf.jdbc.minIdle}" />
		<!-- 配置获取连接等待超时的时间 -->
		<property name="maxWait" value="${pmpf.jdbc.maxWait}" />
		<!-- 配置一个连接在池中最小生存的时间,单位是毫秒 -->
		<property name="minEvictableIdleTimeMillis" value="${pmpf.jdbc.minEvictableIdleTimeMillis}" />
		<!-- 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 -->
		<property name="timeBetweenEvictionRunsMillis" value="${pmpf.jdbc.timeBetweenEvictionRunsMillis}" />

		<property name="validationQuery" value="${pmpf.jdbc.validationQuery}" />
		<property name="testWhileIdle" value="${pmpf.jdbc.testWhileIdle}" />
		<property name="testOnBorrow" value="${pmpf.jdbc.testOnBorrow}" />
		<property name="testOnReturn" value="${pmpf.jdbc.testOnReturn}" />
		<!-- 打开PSCache,并且指定每个连接上PSCache的大小 -->
		<property name="poolPreparedStatements" value="${pmpf.jdbc.poolPreparedStatements}" />
		<property name="maxPoolPreparedStatementPerConnectionSize" value="${pmpf.jdbc.maxPoolPreparedStatementPerConnectionSize}" />

		<!-- 配置监控统计拦截的filters -->
		<property name="filters" value="${pmpf.jdbc.filters}" />
		<!-- 关闭长时间不使用的连接超时时间,单位秒 -->
		<property name="removeAbandoned" value="${pmpf.jdbc.removeAbandoned}" />
		<property name="removeAbandonedTimeout" value="${pmpf.jdbc.removeAbandonedTimeout}" />
		<property name="logAbandoned" value="${pmpf.jdbc.logAbandoned}" />
	</bean>

	<!-- JNDI 数据源
	<bean id="dataSourceG4" class="org.springframework.jndi.JndiObjectFactoryBean">
		<property name="jndiName">
			<value>${global.datasource}</value>
		</property>
	</bean>
	-->

	 <!-- 配置平台层面的qlmapClientFactory -->
	<bean id="sqlMapClientG4" class="org.g4studio.core.orm.xibatis.support.SqlMapClientFactoryBean">
		<property name="configLocations">
			<list>
				<value>config/g4/g4.sqlmap.xml</value>
				<value>classpath*:config/app/*.sqlmap.xml</value>
			</list>
		</property>
		<property name="dataSource" ref="dataSourceG4" />
	</bean>
	<!-- 配置平台层面的G4Reader -->
	<bean id="g4Reader" class="org.g4studio.core.model.dao.impl.ReaderImpl">
		<property name="sqlMapClient" ref="sqlMapClientG4" />
	</bean>
	<!-- 配置平台层面的G4Dao -->
	<bean id="g4Dao" class="org.g4studio.core.model.dao.impl.DaoImpl">
		<property name="sqlMapClient" ref="sqlMapClientG4" />
	</bean>

	<!-- JDBC事务管理器配置 -->
	<bean id="transactionManagerG4" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
		<property name="dataSource">
			<ref bean="dataSourceG4" />
		</property>
	</bean>
	<!-- 配置事务代理的基类 -->
	<bean id="baseTransactionProxyG4" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean" abstract="true">
		<property name="transactionManager">
			<ref bean="transactionManagerG4" />
		</property>
		<property name="transactionAttributes">
			<props>
				<prop key="save*">PROPAGATION_REQUIRED,-Exception</prop>
				<prop key="do*">PROPAGATION_REQUIRED,-Exception</prop>
				<prop key="insert*">PROPAGATION_REQUIRED,-Exception</prop>
				<prop key="del*">PROPAGATION_REQUIRED,-Exception</prop>
				<prop key="drop*">PROPAGATION_REQUIRED,-Exception</prop>
				<prop key="update*">PROPAGATION_REQUIRED,-Exception</prop>
				<prop key="edit*">PROPAGATION_REQUIRED,-Exception</prop>
				<prop key="modify*">PROPAGATION_REQUIRED,-Exception</prop>
				<prop key="call*">PROPAGATION_REQUIRED,-Exception</prop>
				<prop key="get*">PROPAGATION_REQUIRED,-Exception</prop>
				<prop key="query*">PROPAGATION_REQUIRED,-Exception</prop>
				<prop key="batch*">PROPAGATION_REQUIRED,-Exception</prop>
				<prop key="*">PROPAGATION_SUPPORTS,-Exception</prop>
			</props>
		</property>
	</bean>

</beans>

pmpf.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:aop="http://www.springframework.org/schema/aop"
	xmlns:tx="http://www.springframework.org/schema/tx"
	xsi:schemaLocation="
	http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
	http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
	http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd">

	<!-- 退款处理-->
	<bean id="refundManageService" parent="baseTransactionProxyG4">
		<property name="target">
			<bean class="com.saicfc.pmpf.internal.manage.service.impl.RefundManageServiceImpl">
				<property name="g4Dao" ref="g4Dao" />
				<property name="refundInfoExpServiceMap">
					<map>
						<entry key="ICBC"  value-ref="icbcRefundManageService"/>
						<entry key="CEB" value-ref="cebRefundManageService"/>
						<entry key="BOC" value-ref="bocRefundManageService"/>
						<entry key="CCB" value-ref="ccbRefundManageService"/>
						<entry key="BOCOM" value-ref="bocomRefundManageService"/>
						<entry key="CIB" value-ref="cibRefundManageService"/>
						<entry key="CMB" value-ref="cmbRefundManageService"/>
						<entry key="CITIC" value-ref="citicRefundManageService"/>
					</map>
				</property>
			</bean>
		</property>
	</bean>

	<!-- 工商银行退款导出管理-->
	<bean id="icbcRefundManageService" parent="baseTransactionProxyG4">
		<property name="target">
			<bean class="com.saicfc.pmpf.internal.manage.renfund.impl.ICBCRefundInfoExportServiceImpl">
				<property name="g4Dao" ref="g4Dao" />
			</bean>
		</property>
	</bean>

	<!-- 光大银行退款导出管理-->
	<bean id="cebRefundManageService" parent="baseTransactionProxyG4">
		<property name="target">
			<bean class="com.saicfc.pmpf.internal.manage.renfund.impl.CEBRefundInfoExportServiceImpl">
				<property name="g4Dao" ref="g4Dao" />
			</bean>
		</property>
	</bean>

	<!-- 中国银行退款导出管理-->
	<bean id="bocRefundManageService" parent="baseTransactionProxyG4">
		<property name="target">
			<bean class="com.saicfc.pmpf.internal.manage.renfund.impl.BOCRefundInfoExportServiceImpl">
				<property name="g4Dao" ref="g4Dao" />
			</bean>
		</property>
	</bean>

	<!-- 建设银行退款导出管理-->
	<bean id="ccbRefundManageService" parent="baseTransactionProxyG4">
		<property name="target">
			<bean class="com.saicfc.pmpf.internal.manage.renfund.impl.CCBRefundInfoExportServiceImpl">
				<property name="g4Dao" ref="g4Dao" />
			</bean>
		</property>
	</bean>

	<!-- 交通银行退款导出管理-->
	<bean id="bocomRefundManageService" parent="baseTransactionProxyG4">
		<property name="target">
			<bean class="com.saicfc.pmpf.internal.manage.renfund.impl.BOCOMRefundInfoExportServiceImpl">
				<property name="g4Dao" ref="g4Dao" />
			</bean>
		</property>
	</bean>

	<!-- 兴业银行退款导出管理-->
	<bean id="cibRefundManageService" parent="baseTransactionProxyG4">
		<property name="target">
			<bean class="com.saicfc.pmpf.internal.manage.renfund.impl.CIBRefundInfoExportServiceImpl">
				<property name="g4Dao" ref="g4Dao" />
			</bean>
		</property>
	</bean>

	<!-- 招商银行退款导出管理-->
	<bean id="cmbRefundManageService" parent="baseTransactionProxyG4">
		<property name="target">
			<bean class="com.saicfc.pmpf.internal.manage.renfund.impl.CMBRefundInfoExportServiceImpl">
				<property name="g4Dao" ref="g4Dao" />
			</bean>
		</property>
	</bean>

	<!-- 中信银行退款导出管理-->
	<bean id="citicRefundManageService" parent="baseTransactionProxyG4">
		<property name="target">
			<bean class="com.saicfc.pmpf.internal.manage.renfund.impl.CITICRefundInfoExportServiceImpl">
				<property name="g4Dao" ref="g4Dao" />
			</bean>
		</property>
	</bean>

</beans>

RefundManageService.java

/**
 *
 */
package com.saicfc.pmpf.internal.manage.service;

import java.sql.SQLException;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;

import org.g4studio.core.metatype.Dto;

/**
 * 退款处理
 * @author lizhiyong
 * @version $Id: RefundManageService.java, v 0.1
		2014年7月7日 下午1:33:34 Exp $
 */
public interface RefundManageService {

    /**
     * 配置导出的详细信息
     * @param channelCode
     *                 渠道代码
     * @param paymentMap
     *                 订单信息
     * @param map
     *           退款信息
     * @return
     * @throws Exception
     */
    @SuppressWarnings("rawtypes")
    public LinkedHashMap getExportDetailInfo(String channelCode, HashMap paymentMap, HashMap refundMap) throws Exception;

    /**
     * 设置导出文件头部信息
     * @param channelCode  渠道代码
     * @return
     * @throws Exception
     */
    @SuppressWarnings("rawtypes")
    public LinkedHashMap getExportTile(String channelCode) throws Exception;

    /**
     * 上传网银格式文件的最大数目
     * @param channelCode
     * @return
     */
    public int maxCount(String channelCode);

}

RefundManageServiceImpl.java

/**
 *
 */
package com.saicfc.pmpf.internal.manage.service.impl;

import java.sql.SQLException;
import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.g4studio.core.metatype.Dto;
import org.g4studio.core.metatype.impl.BaseDto;
import org.g4studio.core.model.service.impl.BizServiceImpl;

import com.saicfc.pmpf.internal.manage.renfund.RefundInfoExportService;
import com.saicfc.pmpf.internal.manage.service.RefundManageService;
import com.saicfc.pmpf.internal.manage.utils.CommonUtils;
import com.saicfc.pmpf.internal.manage.utils.Contants;
import com.saicfc.pmpf.internal.manage.utils.DateUtil;

/**
 * 退款处理
 * @author lizhiyong
 * @version $Id: RefundManageServiceImpl.java, v 0.1
		2014年7月7日 下午1:33:49 Exp $
 */
public class RefundManageServiceImpl extends BizServiceImpl implements RefundManageService {

    private Log                                  logger = LogFactory.getLog(getClass());

    private Map<String, RefundInfoExportService> refundInfoExpServiceMap;

    public void setRefundInfoExpServiceMap(Map<String, RefundInfoExportService> refundInfoExpServiceMap) {
        this.refundInfoExpServiceMap = refundInfoExpServiceMap;
    }

    @SuppressWarnings("rawtypes")
    @Override
    public LinkedHashMap getExportDetailInfo(String channelCode, HashMap paymentMap, HashMap refundMap)
                                                                                                 throws Exception {
        try {
            return this.refundInfoExpServiceMap.get(channelCode).getExportDetailInfo(paymentMap,
                refundMap);
        } catch (Exception e) {
            throw e;
        }
    }

    @SuppressWarnings("rawtypes")
    @Override
    public LinkedHashMap getExportTile(String channelCode) throws Exception {
        try {
            return this.refundInfoExpServiceMap.get(channelCode).getExportTile();
        } catch (Exception e) {
            throw e;
        }
    }

    @Override
    public int maxCount(String channelCode) {
        return this.refundInfoExpServiceMap.get(channelCode).maxCount();
    }
}

RefundInfoExportService.java

package com.saicfc.pmpf.internal.manage.renfund;

import java.util.HashMap;
import java.util.LinkedHashMap;

/**
 * 退款导出网银格式文件service
 * @author lizhiyong
 * @version $Id: RefundInfoExportService.java, v 0.1
		2014年9月10日 下午4:06:26 Exp $
 */
public interface RefundInfoExportService {

    /**
     * 配置导出的详细信息
     * @param channelCode
     *                 渠道代码
     * @param paymentMap
     *                 订单信息
     * @param map
     *           退款信息
     * @return
     */
    @SuppressWarnings("rawtypes")
    public LinkedHashMap getExportDetailInfo(HashMap paymentMap, HashMap refundMap);

    /**
     * 设置导出文件头部信息
     * @param channelCode  渠道代码
     * @return
     */
    @SuppressWarnings("rawtypes")
    public LinkedHashMap getExportTile();

    /**
     * 设置最大导出条数
     * @param channelCode
     * @return
     */
    int maxCount();

}

ICBCRefundInfoExportServiceImpl.java

package com.saicfc.pmpf.internal.manage.renfund.impl;

import java.math.BigDecimal;
import java.util.Date;
import java.util.HashMap;
import java.util.LinkedHashMap;

import org.g4studio.core.model.service.impl.BizServiceImpl;

import com.saicfc.pmpf.internal.manage.renfund.RefundInfoExportService;
import com.saicfc.pmpf.internal.manage.utils.DateUtil;

public class ICBCRefundInfoExportServiceImpl extends BizServiceImpl implements
                                                                   RefundInfoExportService {

    /**
     * 配置工商银行导出的详细信息
     * @param channelCode
     * @param paymentMap
     * @param map
     * @return
     * @see com.saicfc.pmpf.internal.manage.renfund.RefundInfoExportService#getExportDetailInfo(java.lang.String, java.util.HashMap, java.util.HashMap)
     */
    @SuppressWarnings({ "rawtypes", "unchecked" })
    @Override
    public LinkedHashMap getExportDetailInfo(HashMap paymentMap, HashMap refundMap) {
        LinkedHashMap datamMap = new LinkedHashMap();
        String orderTime = DateUtil.convertDateToString("yyyyMMdd",
            (Date) paymentMap.get("orderTime"));
        String channelOrderNo = (String) paymentMap.get("channelOrderNo");
        datamMap.put("1", channelOrderNo);
        datamMap.put("2", orderTime);
        BigDecimal amount = (BigDecimal) refundMap.get("amount");
        String amountString = amount.divide(new BigDecimal(10)).toPlainString();
        datamMap.put("3", amountString);
        datamMap.put("4", refundMap.get("remark") != null ? refundMap.get("remark") : "");
        datamMap.put("5", "");
        return datamMap;
    }

    /**
     * 设置工商银行导出文件头部信息
     * @param channelCode
     * @return
     * @see com.saicfc.pmpf.internal.manage.renfund.RefundInfoExportService#getExportTile(java.lang.String)
     */
    @SuppressWarnings({ "rawtypes", "unchecked" })
    @Override
    public LinkedHashMap getExportTile() {
        LinkedHashMap map = new LinkedHashMap();
        map.put("1", "订单号");
        map.put("2", "支付日期");
        map.put("3", "退货现金金额(整数金额 单位:分)");
        map.put("4", "退货原因");
        map.put("5", "退货积分商户金额(整数金额  单位 : 分)");
        return map;
    }

    @Override
    public int maxCount() {
        return 0;
    }

}
时间: 2024-08-05 20:02:27

一个service管理多个service的相关文章

Linux service管理自定义脚本

今天需要在服务器上启动多个MySQL实例 新加的MySQL实例不能用mysqld_multi 管理,所以就自定了个mysql_3307服务,用service管理 可以看看service的代码,都是些简单的shell脚本 service的原理就是去/etc/init.d下找对应的服务脚本,然后调用脚本,service的第二个参数是传给调用的服务作为第一个参数 因此可以自已在/etc/init.d下写一个脚本,脚本中定义相应的start,stop,status等或者也可以自己加些别的动作,在增加个执

搭建一个RESTFUL风格的Web Service (Maven版本)

[该教程翻译自Spring官方,并进行适当删减.] 你将搭建的 你将搭建一个可以接受Http Get 请求的web service, http://localhost:8080/greeting 并将以JSON字符串的形式返回问候, {"id":1,"content":"Hello, World!"} 工具 一个文本编辑器,JDK1.6及以上,Maven 3.0+或者Gradle 1.11+.(本文将使用Maven) 下面是pom.xml文件的清

Spring事务管理 ——》java service

java的事务处理,如果对数据库进行多次操作,每一次的执行或步骤都是一个事务.如果数据库操作在某一步没有执行或出现异常而导致事务失败,这样有的事务被执行有的就没有被执行,从而就有了事务的回滚,取消先前的操作..... 注:在Java中使用事务处理,首先要求数据库支持事务.如使用MySQL的事务功能,就要求MySQL的表类型为Innodb才支持事务.否则,在Java程序中做了commit或rollback,但在数据库中根本不能生效. 1.JavaBean中使用JDBC方式进行事务处理 public

Linux crond任务调度 磁盘分区和挂载 网络环境 进程管理 服务(service)管理 动态监控进程 rpm和yum

crond任务调度 1.基本语法 1.crontab [选项] -e : bianji crontab定时任务 -l : 查询crontab -r : 删除当前用户所有的crontab任务2.编辑模式:时间格式 命令或脚本路径 参数说明 示例: 例子: 每分钟执行查看一次/ect目录,把目录内容写进/tml/a.txt下 具体实现步骤: 1.crontab -e 2.*/1 * * * * ls -l /etc >> /tmp/a.txt 3.保存退出 上述权限示例 Linux 磁盘分区.挂载

svcs (service status) 和 svcadm (service administration) 使用

1. svcs  显示服务实例的状态信息 svcs - report service status  显示服务状态命令 DESCRIPTION The svcs command displays information about service instances as recorded in the service configuration repository. 该命令显示记录在服务配置库中的服务实例信息 The first form of this command prints one

Android Bound Service(一) ----- Extending Binder Service(进程内绑定Service的简单例子)

ref:http://developer.android.com/guide/components/bound-services.html? 前言 重新学习这一项技术,主要的原因,是因为以前没有好好的学,那时总觉得作品能动,能完成工作就好了,而这种得过且过的想法,大大地影响了我的技术程度,也因此,在这个这个博客里,有许多的复习心得.有幸得到一位前辈的指导,指出,若只是学习,而无实际应用,这样进步会较少,因此,最好要多看源码,并且自己多尝试多实践,这样学习一万小时,应该能有小进步,因此开始了 Bo

【起航计划 033】2015 起航计划 Android APIDemo的魔鬼步伐 32 App-&gt;Service-&gt;Foreground Service Controller service使用,共享service,前台服务,onStartCommand

Android系统也提供了一种称为“Service”的组件通常在后台运行.Activity 可以用来启动一个Service,Service启动后可以保持在后台一直运行,即使启动它的Activity退出或是切换到别的应用Service也能保持运行状态. Service 可以以两种形式存在: Started 当一个如Activity使用startService()来启动一个Service,一旦Service启动后,就不受启动它的Activity控制, 可以在后台长期运行,通常这种Service在后台

Web Service(0):用Web Service实现两个整数运算

最近,项目开发中需要用到Web Service.自己在网上搜集资料.自己做了一个小例子,用来加深自己对Web Service理解. 概念:Web Service主要是为了使原来各孤立的站点之间的信息能够相互通信.共享而提出的一种接口. Web Service所使用的是Internet上统一.开放的标准,如HTTP.XML.SOAP(简单对象访问协议).WSDL等,所以Web Service可以在任何支持这些标准的环境(Windows,Linux)中使用.注:SOAP协议(Simple Objec

How to Remove A Service Entry From Win10 Service List

.warnbanner { width: 600px; background-color: #FFEFCE } .warnbanner.border { border: 0px } .warnbanner .title { position: relative; height: 24px; line-height: 24px; background-color: #FF9900; text-align: center; vertical-align: middle } .warnbanner .