- 浏览: 57173 次
最新评论
文章列表
6.1.1 AOP是什么
考虑这样一个问题:需要对系统中的某些业务做日志记录,比如支付系统中的支付业务需要记录支付相关日志,对于支付系统可能相当复杂,比如可能有自己的支付系统,也可能引入第三方支付平台,面对这样的支付系统该如何解决呢?
传统解决方案:
1)日志部分提前公共类LogUtils,定义“longPayBegin”方法用于记录支付开始日志,“logPayEnd”用于记录支付结果:
2)支付部分,定义IPayService接口并定义支付方法“pay”,并定义了两个实现:“PointPayServ ...
9.4 声明式事务
9.4.1 声明式事务概述
从上节编程式实现事务管理可以深刻体会到编程式事务的痛苦,即使通过代理配置方式也是不小的工作量。
本节将介绍声明式事务支持,使用该方式后最大的获益是简单,事务管理不再是令人痛苦的,而且此方式属于无侵入式,对业务逻辑实现无影响。
接下来先来看看声明式事务如何实现吧。
9.4.2 声明式实现事务管理
1、定义业务逻辑实现,此处使用ConfigUserServiceImpl和ConfigAddressServiceImpl:
2、定义配置文件(chapter9/service/ applica ...
9.3 编程式事务
9.3.1 编程式事务概述
所谓编程式事务指的是通过编码方式实现事务,即类似于JDBC编程实现事务管理。
Spring框架提供一致的事务抽象,因此对于JDBC还是JTA事务都是采用相同的API进行编程。
java代码:
Java代码
Connection conn = null;
UserTransaction tx = null;
try {
tx = getUserTransaction(); //1.获取事务
tx ...
9.2.1 概述
Spring框架支持事务管理的核心是事务管理器抽象,对于不同的数据访问框架(如Hibernate)通过实现策略接口 PlatformTransactionManager,从而能支持各种数据访问框架的事务管理,PlatformTransactionManager 接口定义如下:
java代码:
Java代码
public interface PlatformTransactionManager {
TransactionStatus getTransaction(TransactionDefinition ...
9.1 数据库事务概述
事务首先是一系列操作组成的工作单元,该工作单元内的操作是不可分割的,即要么所有操作都做,要么所有操作都不做,这就是事务。
事务必需满足ACID(原子性、一致性、隔离性和持久性)特性,缺一不可:
原子性(Atomicity):即事务是不可分割的最小工作单元,事务内的操作要么全做,要么全不做;
一致性(Consistency):在事务执行前数据库的数据处于正确的状态,而事务执行完成后数据库的数据还是处于正确的状态,即数据完整性约束没有被破坏;如银行转帐,A转帐给B,必须保证A的钱一定转给B,一定不会出现A的钱转了但B没收到,否则数据库的数据就处于不一致 ...
解决:Access restriction: The type JPEGImageEncoder is not accessible due to restriction
在Eclipse中处理图片,需要引入两个包:import com.sun.image.codec.jpeg.JPEGCodec;import com.sun.image.codec.jpeg.JPEGImageEncoder;报错:Access restriction: The type JPEGImageEncoder is not accessible due to restriction on require ...
越来越多的网站,开始采用"单页面结构"(Single-page application)。
整个网站只有一张网页,采用Ajax技术,根据用户的输入,加载不同的内容。
这种做法的好处是用户体验好、节省流量,缺点是AJAX内容无法被 ...
Oracle 一个中文汉字 占用几个字节,要根据Oracle中字符集编码决定 查看oracle server端字符集
select userenv('language') from dual;
如果显示SIMPLIFIED CHINESE_CHINA.ZHS16GBK,一个汉字占用两个字节;
如果显示SIMPLIFIED CHINESE_CHINA.AL32UTF8,一个汉字占用三个字节.
可以用以下语句查询一个汉字占用的字节长度
select lengthb('你') from dual;//返回2,表示2个字节
select length('你') ...
/^\d{4}(\-|\/|\.)\d{1,2}\1\d{1,2}$/.test("2011-01-09");//日期
/^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-])+/.test('geili_cn@163.com.cn');//邮箱
spring 默认scope 是单例模式这样只会创建一个Action对象每次访问都是同一个Action对象,数据不安全struts2 是要求 每次次访问 都对应不同的Action scope="prototype" 可以保证 当有请求的时候 都创建一个Action对象
鄙人做了一个实验,用以说明他们的区别:首先在applicationContext.xml文件中: <?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://ww ...
wordpress附件保存目录改为年月日
修改wp-includes/functions.php文件1579行为:
$d=substr( $time, 8, 2 );
$subdir = "/$y/$m/$d";
wordpress上传文件重命名为时间戳
修改wp-admin/includes/file.php文件329行为:
$new_file = $uploads['path']. "/".date("YmdHis").floor(microtime()*1000).".".$ext; ...
hessian对重载方法的调用的spring配置方法
增加
<property name="overloadEnabled" value="true" />
最后spring配置bean结果如下
<bean id="acctTranPriRemoteService" class="org.springframework.remoting.caucho.HessianProxyFactoryBean">
<property name="serviceU ...
出现org.apache.jasper.JasperException: Unable to compile class for JSP:An error occurred at line: 28 in the generated java fileThe method getJspApplicationContext(ServletContext) is undefined for the type JspFactory
按如下步骤解决即可:
1.删除tomcat的work目录里全部内容
2.删除tomcat里的项目lib目录的jsp-api-xx.jar,servlet-ap ...
建虚拟目录打开Apache->conf->httpd.conf在最下面粘贴
写道
NameVirtualHost 127.0.0.1<VirtualHost 127.0.0.1> ServerName www.demo.cn DocumentRoot "C:\xampp\htdocs\MyWeb\WebContent\demo" <Directory "C:\xampp\htdocs\MyWeb\WebContent\demo"> Options Indexes AllowOverride None Or ...
众所周知,Apache的工程根目录是在htdocs里面,也就是说我们如果要发布工程,就必须放在htdocs里面;所以我们需要项目路径重定位,比如 说我的工程是放在D:/Test中,我们只需修改http.conf里里面的内容,即可将D:/Test工程发布到apache中,代码修改如下:找到<IfModule alias_module></IfModule>,修改如下:<IfModule alias_module> # # Redirect: Allows you to tell clients about documents that used to ...