- 浏览: 12196 次
- 性别:
- 来自: 北京
最新评论
-
ljz0721cx:
在做加载DetachedCriteria获得session的时 ...
Spring 注解@Transactional
文章列表
要做流程管理必须有流程的开始和结束:
有开始就有事件:
1.启动流程的事件:a.空启动事件。b.定时启动事件。c.异常启动事件
相关的代码<startEvent id="startevent" name="Start"></startEvent>
创建了简单的启动事件扩展一下
activiti:formKey 可以用来指定空事件的启动的关联表单文件如
<startEvent id="startevent" activiti:formKey="Start.form"></sta ...
一对多(One-to-many)
在属性级使用 @OneToMany注解可定义一对多关联.一对多关联可以是双向关联.
双向
在EJB3规范中多对一这端几乎总是双向关联中的主体(owner)端, 而一对多这端的关联注解为@OneToMany( mappedBy=... )
@Entity
public class Troop {
@OneToMany(mappedBy="troop")
public Set<Soldier> getSoldiers() {
...
}
@Entity
public class Soldie ...
HTML5的WebSocket API:它可用于客户端、服务器端。
WebSocket API是下一代客户端-服务器的异步通信方法。该通信取代了单个的TCP套接字,使用ws或wss协议,可用于任意的客户端和服务器程序。WebSocket目前由W3C进行标准化。WebSocket已经受到Firefox 4、Chrome 4、Opera 10.70以及Safari 5等浏览器的支持。
WebSocket API最伟大之处在于服务器和客户端可以在给定的时间范围内的任意时刻,相互推送信息。WebSocket并不限于以Ajax(或XHR)方式通信,因为Ajax技术需要客户端发起请求,而WebSocket服 ...
事物传播行为介绍:
@Transactional(propagation=Propagation.REQUIRED)
如果有事务, 那么加入事务, 没有的话新建一个(默认情况下)
@Transactional(propagation=Propagation.NOT_SUPPORTED)
容器不为这个方法开启事务
@Transactional(propagation=Propagation.REQUIRES_NEW)
不管是否存在事务,都创建一个新的事务,原来的挂起,新的执行完毕,继续执行老的事务
@Transactional(propagation=Propagation.MANDATO ...
Java标准的对象PropertyEditor的核心功能是将一个String类型转化为一个java对象,以便根据界面输入的或者配置文件中的配置字符串构造出的一个jvm的内部的java对象。
但数java原声的PropertyEditor存在以下的不足:
1.只能用于字符串和java对象的转换,不适用于任意两个java类型之间的转换。
2.对源对象及目标对象所在的上下文信息(如注解,所在的宿主类的结构等)不敏感,在类型转化是不能利用这些上下文信息实施高级转换逻辑。
Spring3.0以后添加了一个通用的类型转换模块,类型转换模块位于org.springframework.core.convert包 ...
Session接口是Hibernate向应用程序提供的操纵数据库的最主要的接口,它提供了基本的保存、更新、删除和查询方法。Session具有一个缓存,位于缓存中的对象处于持久化状态,它和数据库中的相关记录对应,Session能够在某些时间点 ...
http://www.w3cschool.cc/try/bootstrap/layoutit/
websocket通信
http://hbiao68.iteye.com/blog/1973906
http://www.th7.cn/Program/java/201407/251633.shtml
JAVA JDK的获取和安装
对于新手来讲,又是bin包安装,又是rpm包安装,还有什么tar.gz包安装,光看着就有些晕了,还怎从下手啊。不用怕,虽然有那么多种类的安装但是它们之间还是有迹可寻的。下面我们就来逐一的学习一下。
JDK的安装与配置:
1、RPM包安装
rpm安装相比bin和tar.gz来说,要省事一点,但是安装完之后也是要配置环境变量的。
# rpm -ivh jdk-7u2-linux-i586.rpm
配置环境变量
# vi /etc/profile
# source /etc/profile
输入如下命令,能正常显示版本信息,说明安装成功。
# java –version ...
首先你可能使用@Cache对缓存处理,该注解有三个属性
@Target({TYPE, METHOD, FIELD})
@Retention(RUNTIME)
public @interface Cache {
/** concurrency strategy chosen */
CacheConcurrencyStrategy usage();
/** cache region name */
String region() default "";
/**
* whether or not lazy-properties are included ...
在Java Web项目中使用Hibernate经常会遇到LazyInitializationException 。这是因为controller和model层(java代码)将通过JPA的一些启用了延迟加载功能 的领域(如用getRefrence() 方法或者在关联关系中采用fetch=FetchType.LAZY )返回给view层(jsp代码)的时候,由于加载领域对象的JPA Session已经关闭,导致这些延迟加载的数据访问异常。
这时就可以使用OpenEntityManagerInViewFilter来将一个JPAsession与一次完整的请求过程对应的线程相绑定。请看一段伪代码:
Ser ...
事物的相关
事务的四个属性:原子性(atomicity)、一致性(consistency)、隔离性(isolation)和持久性(durability)。
1.原子性(Atomic)
最重要的原则,也是最容易理解的原则。被事务管理的所有方法,要么一起被提交,要么一起回滚。
举例:在股票交易时,除了记录交易的过程,还要更新交易完成之后的账户状态。
2.一致性(Consistency)
事务在系统完整性中实施一致性,如果事务成功地完成,那么系统中所有变化将正确地应用,系统处于新有效状态。如果在事务中出现错误,那么系统中的所有变化将自动地回滚,系统返回到原始状态。
3.隔离性(Is ...
Spring Data JPA入门
- 博客分类:
- 持久层
Spring Data JPA的核心概念:
1:Repository:最顶层的接口,是一个空的接口,目的是为了统一所有Repository的类型,且能让组件扫描的时候自动识别。
2:CrudRepository :是Repository的子接口,提供CRUD的功能
3:PagingAndSortingRepository:是CrudRepository的子接口,添加分页和排序的功能
4:JpaRepository:是PagingAndSortingRepository的子接口,增加了一些实用的功能,比如:批量操作等。
5:JpaSpecificationExecutor:用来做负责查询的接口
6 ...
Spring MVC防止数据重复提交
- 博客分类:
- 安全过滤
来讲一下如何在Spring MVC里面解决此问题(其它框架也一样,逻辑一样,思想一样,和具体框架没什么关系)。要解决重复提交,有很多办法,比如说在提交完成后redirect一下,也可以用本文提到的使用token的方法(我不使用redirect是因为那样解决不了ajax提交数据或者移动应用提交数据,另一个原因是现在比较通行的方法是使用token,像python里的django框架也是使用token来解决)。
使用token的逻辑是,给所有的url加一个拦截器,在拦截器里面用java的UUID生成一个随机的UUID并把这个UUID放到session里面,然后在浏览器做数据提交的时候将此UUID提交到 ...
/**
* Shiro-1.2.2内置的FilterChain
* @see =============================================================================================================================
* @see 1)Shiro验证URL时,URL匹配成功便不再继续匹配查找(所以要注意配置文件中的URL顺序,尤其在使用通配符时)
* @see 故filterChainDefinitions的配置顺序为自上而下,以最上面的为准
* @see 2)当运行一个Web应用 ...