- 浏览: 39794 次
- 性别:
- 来自: 杭州
最新评论
-
Tiro_Li:
-DarchetypeVersion=1.1改成-Darche ...
使用命令行快速创建Maven多模块项目 -
nicegege:
mvn archetype:generate -DgroupI ...
使用命令行快速创建Maven多模块项目
文章列表
Maven内置隐式变量
- 博客分类:
- maven
引自:http://blog.csdn.net/xh16319/article/details/22981051
Maven提供了三个隐式的变量可以用来访问环境变量,POM信息,和Maven Settings。
env
env变量,暴露了你操作系统或者shell的环境变量。便 如在Maven POM中一个对${env.PATH}的引用 ...
应用场景:B项目需要访问A项目的某些接口
一、A项目:
1.在pom.xml中添加hsf
<dependency>
<groupId>com.taobao.hsf</groupId>
<artifactId>hsf.app.spring</artifactId>
<version>2.1.0.8</version>
</dependency>
2.创建一个子项目api,只写需要向外提供的接口以及需要的bean:
package com.ti ...
一、 Struts 2框架整合Spring步骤
1、 复制文件。复制struts2-spring-plugin-x-x-x.jar和spring.jar到WEB-INF/lib目录下。其中的x对应了Spring的版本号。还需要复制commons-logging.jar文件到WEB-INF/lib目录下。
2、 配置struts.objectFactory属性值。在struts.properties中有一行#struts.objectFactory = spring,去掉#即可
或者在XML文件中进行常量配置:
<struts>
<co ...
一、作用
Spring为我们解决Hibernate的Session的关闭与开启问题。
Hibernate 允许对关联对象、属性进行延迟加载,但是必须保证延迟加载的操作限于同一个 Hibernate Session 范围之内进行。如果 Service 层返回一个启用了延迟加载功能的领域对象给 Web 层,当 Web 层访问到那些需要延迟加载的数据时,由于加载领域对象的 Hibernate Session 已经关闭,这些导致延迟加载数据的访问异常
org.hibernate.LazyInitializationException: could not initialize proxy ...
转自:http://aumy2008.blogbus.com/logs/13732626.html
Hibernate映射类型分为两种:内置映射类型和客户化映射类型。内置映射类型负责把一些常见的Java类型映射到相应的SQL类型;此外,Hibernate还允许用户实现UserType或CompositeUserType接口,来灵活地定制客户化映射类型。客户化类型能够把用户定义的Java类型映射到数据库表的相应字段。
一、Hibernate的内置映射类型
1、Java基本类型的Hibernate映射类型
Hibernate映射类型
Hibernate支持两种锁机制: 即通常所说的“悲观锁(Pessimistic Locking)”和 “乐观锁(OptimisticLocking)”。 悲观锁的实现,往往依靠数据库提供的锁机制(也只有数据库层提供的锁机制才能真正保证数据访问的排他性,否则,即使在本系统中实现了加锁机制,也无法保证外部系统不会修改数据)。 Hibernate的加锁模式有: Ø LockMode.NONE : 无锁机制。 Ø LockMode.WRITE :Hibernate在Insert和Update记录的时候会自动获取。 Ø LockMode.READ : Hibernate在读取记录的时候会自动获取。 ...
递归(Recursion),就是方法调用自身。
对于递归来说,一定有一个出口,让递归结束,只有这样才能保证不出现死循环。
递归计数器:
private static int time;
public static void recursion()
{
time++;
recursion();
time--;
Session缓存:
当Session的save()方法持久化一个Customer对象时,Customer对象被加入到Session的缓存中,以后即使应用程序中的引用变量不再引用Customer对象,只要Session的缓存还没有被清空,Customer对象仍然处于生命周期中。
Session会在下面的时间点清理缓存: (1).当应用程序调用org.hibernate.Transaction的commit()方法的时候,commit()方法先清理缓存,然后再向数据库提交事务。
(2).当应用程序显式调用Session的flush()方法的时候。
tx = session.be ...
struts2 ognl表达式
- 博客分类:
- struts2
推荐阅读:
http://developer.51cto.com/art/201203/322509.htm
OGNL:(Object Graphic Navigation Language)对象图导航语言。
OgnlContext:ognl上下文对象,实现Map接口。把对象放到OgnlContext中,就可以通过ognl表达式很容易的操纵对象。
ROOT:OgnlContext有一个唯一的根对象,访问根对象下的成员变量可以省略#root。
一个简单的示例:
OgnlContext context = new OgnlContext();
context ...
action的整个执行流程使用的就是动态代理模式。关于动态代理模式的原理可以看这篇文章:
http://tiro-li.iteye.com/blog/1901678
Action:真实角色,这是动态改变的;
ActionSupport:抽象角色,Action实现的接口;
ActionProxy:动态代理角色。相当于Proxy动态生成的$Proxy0类,有以下三点信息需要我们明确。
(1).它在Dispatcher的executeAction方法中由ActionProxyFactory类创建;
(2).通过持有ConfigurationManager的引用获取到Action中 ...
动态代理的角色及其原理,见下文:
http://tiro-li.iteye.com/blog/1901678
动态代理的工厂类:DynamicProxyFactory.java
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;
public class DynamicProxyFactory implements InvocationHandler
{
//被代理的对象
private Object pr ...
动态代理角色:一个真实角色:一个抽象角色:真实角色实现的接口,代理角色也必须实现这个接口;一个由Proxy类在运行时动态生成的代理角色$Proxy0;一个实现InvocationHandler接口的类,可能看成是二级代理。它们的关系及原理:1 ...
静态代理模式的角色:
抽象角色:声明真实角色和代理角色的接口;
真实角色: 最终要引用的对象
代理角色:持有一个真实角色的引用
一个房东(真实角色),一个中介(代理角色),都能实现卖房子这个动作(接口中的抽象方法)。 ...
servlet下载文件的原理:
把服务器上的文件以application/octet-stream的响应类型输出到JSP页面。
下载页面download.jsp
<body>
<a href="FileDownloadServlet?filename=jd2chm.exe">二进制文件</a><br>
<a href="FileDownl ...
需要的库:
http://commons.apache.org/fileupload/
http://commons.apache.org/io/
下载后解压zip 包,将commons-fileupload-1.3.x.jar和commons-io-2.x.jar 复制到t项目的WEB-INF/lib下。
文件上传的过程:
1).以multipart/form-data编码的POST请求向Servlet提交;
2).Servlet通 ...