package cn.cutter.start.bean; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.springframework.stereotype.Component; /** * * @author xiaof * */ @Component public class AroundTestBean { private static fin…
分化:RMI,EJB,Hessian Spring有 Rmi,http,hessian,burlap 基于rmi的remoting方案 RMI要求远程类对象包路径和本地一致 基于HTTP的轻量级remoting方案 基于spring的http invoke 基于caucho的hessian 基于caucho的burlap 不做详细介绍,这种很少用,以后估计还是微服务多点 本人现在正在接触微服务,springcloud,先学学吧,后面有机会再拿出来详细解读 blog的话,因为最近几个月加班实在太可…
这个我也不是很了解,那么这个需要好好学习一下了 JMS有2种消息域类型 1. point to point 点对点模式 2.发布订阅模式  publish/subscribe Pub/Sub 模式 传统JMS API开发 目前没有环境,所以目前就写个demo,后面补上环境去测试一发 package jms; import javax.jms.Connection; import javax.jms.ConnectionFactory; import javax.jms.Destination;…
JndiTemplate 经过jdbctemplate,transactionTemplate...的洗礼,想必大家看到template就知道是个什么尿性了吧 一样的,我们只需要调用jnditemplate中的核心执行方法,就可以获取它暴露给我们的操作对象进行操作了 我们只需要对contextcallback中的方法进行实现 这里spring还给我们考虑了一条后路,那就是当我们的瞎JB使用的时候,那么势必会造成jndi跟我的程序耦合太紧,但是我们其实并不关系jndi的资源到底是来自哪里,所以..…
有关事务的楔子 什么是事务??? 事务就是以可控的方式对数据资源进行访问的一组操作. 事务本身持有四个限定属性 原子性,一致性,隔离性,持久性 事务家族 Resource Manager  RM,负责存储并管理系统数据资源的状态.数据库服务器.JMS消息服务器等都是. Transaction Processing Monitor. TPM或者 TP Monitor, 分布式事务场景中协调多个RM的事务处理. Transaction Manager.TM 是TP Monitor的核心模块,直接负责…
对于多个数据源的时候,我们如何切换不同的数据源进行数据库的操作呢? 当然我们可以直接定义2个DataSource,然后在每次获取connection的时候,从不同的DataSource中获取connection,类似如下 这种情况可以是2个数据库存放的数据性质是不同的,DataSource1存放1种数据,DataSource2存放另一种数据,每个数据库承担不同的数据访问请求,这2个是完全相互独立不相干的 这种就比较简单,那就是直接定义不同的jdbctemplate,设置不同的DataSource…
面向对象的操作方式,spring统一定义在org.springframework.jdbc.object以RdbmsOperation作为顶层抽象定义 Spring对各种ORM的集成 Spring的集成主要体现在对ORM框架的封装,jdbc提供了jdbctemplate Hibernate提供了hibernatetemplate,主要是简化了资源的回收控制 对于ibatis提供了sqlMapClientTemplate…
我们这是可以正好借助之前学的factorybean类,自己吧jdbctemplate加载到spring容器中,我们可以封装多个这种对象,那么可以实现针对不同的数据库的jdbctemplate 首先我们肯定要引入对应的jar,来构建数据源对象 <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-dbcp2</artifactId> <version>…
统一的数据访问异常层次体系 基于基本的jdbc封装dao层访问接口,封装不论是访问,csv文件,关系数据库(RDBMS),ladp都可以封装成一个个DAO对象来进行访问 抛出问题 可是对于我们忽略了一个问题,那就是当DAO层发生异常的时候,我们是否应该在dao层进行处理,如果是,那么有个问题,客户端调用方法的时候,怎么知道发生了什么异常,客户端对于访问数据层发生的事情是不可预知的,所以我们需要在DAO中吧异常抛出,也就是在类上throw Exception 但是上面还有一个问题,dao是我们封装…
package cn.cutter.start.bean; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.springframework.stereotype.Component; @Component public class AterTestBean { private static final Log logger = LogFactory.ge…