- 浏览: 373158 次
- 性别:
- 来自: 青岛
文章分类
最新评论
-
lippeng:
楼主,你好!这篇中提到的一个话题,是我现在非常关心的,我自己还 ...
使用JUnit测试通过 HttpClient(https协议)访问支付宝接口时不能自动获得证书的解决办法 -
snoopy7713:
[2014-03-14 17:55:06.651] TCP ...
刚完成Struts的Virgo插件,分享一下设计思路和Virgo OSGi内部的独特机制 -
snoopy7713:
需要看一下,你的代码说的挺模糊的。我的联系方式QQ 16200 ...
刚完成Struts的Virgo插件,分享一下设计思路和Virgo OSGi内部的独特机制 -
roronjavaeye:
不错,受教了
java_class反编译后的代码还原 -
daoyongyu:
讲的很好,很详细。
Struts2配置文件详解——struts.properties
(singleton,unlimited , poolable), public class BeanFactory { .... private Object getBeanProxy(BeanConfiguration config)throws UtilException { Object bean = null ; Object proxy = null ; TransactionDelegate delegate = null ; String beanName = config.getImpl(); String[] interfaceNames = config.getName(); Class[] cls = new Class[interfaceNames.length] ; try { for (int i = 0; i < interfaceNames.length; i++) { System.out.println("cls ="+interfaceNames); cls = Class.forName(interfaceNames.trim()) ; } if (BeanConfiguration.SINGLETON.equals(config.getMethod())) { bean = cache.getFromCache(beanName) ; if (bean == null) { bean = Class.forName(beanName).newInstance() ; cache.putIntoCache(beanName , bean) ; } delegate = new TransactionDelegate() ; delegate.setObject(bean) ; proxy = Proxy.newProxyInstance(delegate.getClass().getClassLoader() , cls , delegate) ; } else if (BeanConfiguration.UNLIMITED.equals(config.getMethod())) { bean = Class.forName(beanName).newInstance() ; delegate = new TransactionDelegate(); delegate.setObject(bean); proxy = Proxy.newProxyInstance(delegate.getClass().getClassLoader() , cls , delegate); } else if (BeanConfiguration.POOLED.equals(config.getMethod())) { ServiceLog.debug("beanPool instance ="+beanPool); if (beanPool == null) { throw new UtilException("系统没有发现相应的池,不支持池管理Bean" , -1); } ServiceLog.info("current facade bean pool active num is ="+beanPool.currentActiveNum(beanName)); ServiceLog.info("current facade bean pool idle num is ="+beanPool.currentIdleNum(beanName)); bean = beanPool.get(beanName) ; delegate = new TransactionDelegate() ; delegate.setObject(bean); ServiceLog.info("current facade bean pool size is ="+delegate); proxy = Proxy.newProxyInstance(delegate.getClass().getClassLoader() , cls , delegate); } else { throw new UtilException("错误的池的Bean管理方式" , -1); } System.out.println("从池中取出的bean 为="+bean); return proxy ; } catch (UtilException ex) { ex.printStackTrace(); ServiceLog.error(ex.getMessage() , ex); throw ex ; } catch (Exception ex) { ex.printStackTrace(); ServiceLog.error(ex.getMessage() , ex); throw new UtilException(ex); } } ...... } package com.goldenchance.amis.framework.proxy; import java.lang.reflect.Method; import java.lang.reflect.InvocationHandler; import com.goldenchance.common.framework.OperationService; import com.goldenchance.common.exception.FacadeAccessException; import com.goldenchance.common.util.TransactionContext; import com.goldenchance.common.util.TransactionContextFactory; import com.goldenchance.common.log.ServiceLog; import java.util.*; import java.lang.reflect.*; /** * 事务代理类 * <p>Title: 实时监控系统</p> * <p>Description: 通过动态代理技术,实现事务处理的动态封装</p> * @version 1.0 */ public class TransactionDelegate implements InvocationHandler { private final static List DEFAULT_METHOD_LIST = new ArrayList(); private TransactionContextFactory factory ; private Object object; public TransactionDelegate() { factory = TransactionContextFactory.newFactory(); } public void finalize() { this.release(); } public void release() { object = null ; } /** * 将Object对象中的方法设置为纳入默认忽略的方法集合中 */ static { DEFAULT_METHOD_LIST.add("equals"); DEFAULT_METHOD_LIST.add("getClass"); DEFAULT_METHOD_LIST.add("hashCode"); DEFAULT_METHOD_LIST.add("notify"); DEFAULT_METHOD_LIST.add("notifyAll"); DEFAULT_METHOD_LIST.add("toString"); DEFAULT_METHOD_LIST.add("wait"); } /** * 实现接口的invoke方法 * @see java.lang.reflect.InvocationHandler.invoke(Object , Method , Object[]) */ public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { String name = method.getName() ; Object result = null ; ServiceLog.info("开始调用"+object.getClass().getName()+"的方法"+name); if (DEFAULT_METHOD_LIST.contains(name)) { result = method.invoke(object , args); ServiceLog.info("Start : 调用"+object.getClass().getName()+"的方法"+name); return result ; } else if (object instanceof OperationService){ //如果代理对象是OperationService实现类,则说明它支持事务处理 OperationService serivce = (OperationService)object ; TransactionContext tc = factory.getTransactionContext(); try { serivce.setTransactionContext(tc); if (name.startsWith("search")) { //如果是查询方法,则不进行事务封装 result = method.invoke(object , args) ; } else { tc.beginTransaction(); try { result = method.invoke(object , args) ; tc.commitTransaction(); } catch (Exception ex) { ServiceLog.error(ex.getMessage() , ex) ; if (ex instanceof FacadeAccessException) { FacadeAccessException actual = (FacadeAccessException) ex ; tc.rollbackTransaction() ; throw actual ; } throw ex ; } } return result ; } finally { tc.closeConnection(); ServiceLog.info("End : 调用"+object.getClass().getName()+"的方法"+name); } } else { result = method.invoke(object , args) ; return result ; } } public Object getObject() { return object; } public void setObject(Object object) { this.object = object; } }
http://www.jdon.com/jivejdon/thread/18095.html
you ge shi cuo wu............
发表评论
-
java_class反编译后的代码还原
2012-03-18 00:06 1778java class 利用jad 反编译之后,偶尔回碰到 ... -
ThreadLocal的几种误区
2012-01-10 09:48 885最近由于需要用到ThreadLocal,在网上搜索 ... -
深入解析OGNL投影
2011-12-16 15:15 1908先看这个表达式:list.{#me=#this,#root.m ... -
浅谈JAVA ThreadPoolExecutor
2011-01-28 16:36 1332这篇文章分为两部分 ... -
ant echo message 特殊字符转换
2011-01-27 11:54 1727< < > &a ... -
hibernate------hql总结
2010-08-24 12:52 8521. 查询整个映射对象所 ... -
log4j additivity 作用
2010-08-11 22:15 1975log4j.rootLogger=debug,stdout ... -
Log4j 集群环境下的 处理方案
2010-08-11 21:17 3216需求:近期有个项目要 ... -
构建Java并发模型框架
2010-07-12 17:04 917Java的多线程特性为构建 ... -
Java 程序中的多线程
2010-07-12 17:03 820由于在语言级提供了线 ... -
JAVA 线程 基础概念
2010-07-12 17:00 1035Java 有几程方法可以实 ... -
在 Java 平台上进行多线程编程的缺陷
2010-07-12 16:58 970Java 语言的并发编程 就其自身来说,并发编程是一种 ... -
c3p0-0.9.1.2数据库连接池
2010-06-17 11:46 1379C3PO是一个开放源代码的JDBC数据源实现项目,它在li ... -
Axis2快速上手指南
2010-06-03 17:59 816http://hideto.iteye.com/blog/56 ... -
C3P0连接池详细配置与实现
2010-05-31 17:33 1050<c3p0-config> <defau ... -
实例讲解:JAVA SOAP技术
2010-05-25 18:19 2383Very Simple Object Access Proto ... -
Tomcat 5.5 JNDI Resource 配置
2010-05-25 11:14 1657本文来自CSDN博客,转载请标明出处:http://blog. ... -
SSH2 jar
2010-05-21 14:51 1695在JavaEE企业级开发中, ... -
让httpclient接受所有ssl证书https 分享
2010-04-29 11:21 5095访问https 资源时,让httpclient接受所有ssl证 ... -
使用JUnit测试通过 HttpClient(https协议)访问支付宝接口时不能自动获得证书的解决办法
2010-04-29 11:17 5253最近在做一个通过 HttpCl ...
相关推荐
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
Unity3d 3D模型描边代码 懒人直接上代码
原文链接:https://alading.blog.csdn.net/article/details/141710476 包含功能: 经理管理:负责经理信息维护与权限分配,确保管理层操作的安全性和高效性。 员工管理:管理员工信息,包括招聘、离职、考勤及权限设置,优化人力资源配置。 商品分类管理:对商品进行科学分类,便于商品检索与管理,提升顾客购物体验。 商品信息管理:维护商品详细信息,如名称、价格、描述等,确保信息准确无误。 商品入库管理:监控商品入库流程,记录库存变化,实现库存精准管理。 商品销售管理:处理销售事务,包括销售记录、退货处理,支持销售业绩分析。 缺货提醒管理:自动检测库存水平,及时发出缺货警告,保障商品供应连续性。 商品收银管理:处理交易结算,支持多种支付方式,确保收银过程快速准确。 供应商管理:维护供应商信息,评估合作效果,优化供应链,保证商品质量与供应稳定性。
MATLAB实现工业PCB电路板缺陷识别和检测【图像处理实战】项目详情请参见:https://handsome-man.blog.csdn.net/article/details/130493170 PCB板检测的大概流程如下:首先存储一个标准PCB板图像作为良好板材的参考标准,然后将待检测的PCB板图像进行处理,比较与标准PCB图像的差异,根据差异的情况来判断缺陷类型。 项目代码可顺利编译运行~
Jupyter-Notebook
1991-2021年中国科技统计年鉴-最新数据发布.zip
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
BMI270 驱动开发程序
Jupyter-Notebook
Jupyter-Notebook
Jupyter-Notebook
上市公司基本资料及行业分类(2020)+员工构成数据大全(2006-2020)-最新发布.zip
安慰剂检验代码与数据文章-最新研究成果.zip
原文链接:https://alading.blog.csdn.net/article/details/141678636 包含功能: 用户管理:负责系统用户的注册、登录、权限分配及个人信息管理。 供应商管理:维护供应商信息,包括添加、编辑、删除供应商资料及合作状态。 商品分类管理:创建、修改和删除商品分类,便于商品归类与查找。 商品信息管理:管理商品详情,如添加新品、编辑商品属性、价格及库存量。 采购入库管理:记录采购订单详情,处理入库操作,更新库存数量。 销售信息管理:记录销售订单,追踪销售数据,支持销售分析与报表生成。 赠品入库管理:管理赠品入库流程,记录赠品信息,关联促销活动。 退货入库管理:处理客户退货,记录退货详情,恢复库存数量。 其他入库管理:管理非采购、非赠品的入库情况,如调拨入库等。 购买订单管理:跟踪客户购买订单状态,从下单到发货的全流程管理。 赠送信息管理:管理赠品发放规则,记录赠送活动执行情况。 盘点信息管理:定期进行库存盘点,记录盘点结果,调整库存差异。
演示:https://blog.csdn.net/m0_54925305/article/details/143660348?spm=1001.2014.3001.5501
Jupyter-Notebook
shiahdifhiahfiqefiwhfi weifwijfiwqufiqweefijeq0jfe
用java实现了全部23种设计模式,代码简单易懂,注释详细,仅作学习使用——hrh。
北大新农研究院联合阿里县域乡村指数(2018)-已更至最新.zip