JavaEE
文章平均质量分 89
dm_vincent
这个作者很懒,什么都没留下…
展开
-
[JavaEE - JPA] 1. 事务的基础概念
现在任何应用都需要数据持久化。否则就不算是一个完整的应用。那么对于一个数据持久化而言,最重要的无外乎两方面:事务管理(Transaction Management)对象关系映射(Object Relational Mapping)本文作为JPA(Java Persistence API)这一系列文章的首篇,就来先谈谈事物管理相关的一些概念和基础。事务(Transaction, TX)事务管理,原创 2016-09-17 23:34:16 · 4336 阅读 · 1 评论 -
[JavaEE - JPA] 性能优化: 4种触发懒加载的方式
在一个JPA应用中,可以通过懒加载来提高应用的性能。这一点毋庸置疑,但是懒加载不等于不加载,在某个时刻还是需要加载这些数据的,那么如何触发这个加载的行为才能够事半功倍呢?这里我想说一点题外话,面试的时候我也会考察被面试者对于JPA/Hibernate的看法,得到的答复通常都包含了对JPA/Hibernate的一些”鄙夷”,比如JPA/Hibernate性能太菜了,现在主流的持久层框架是MyBatis原创 2016-11-27 23:16:11 · 18144 阅读 · 0 评论 -
[JavaEE - JPA] 性能优化: 如何定位性能问题
要想解决性能问题,首先得要有办法定位问题。而JPA的性能问题,可以说99%都是因为JPA Provider(一般使用的都是Hibernate,或者EclipseLink)生成的SQL效率低下或者生成并执行了你意料之外的SQL。针对这个问题,其实不需要多么复杂的调试工具,一般而言JPA Provider就会提供一些基础的性能分析工具,以Hibernate为例(EclipseLink等其它JPA Pro原创 2016-12-03 19:26:07 · 11107 阅读 · 5 评论 -
[JavaEE - JPA] 7. ORM的核心注解 - 关系类型
本文继续介绍JPA ORM的核心注解中和关系映射相关的部分。关系映射的处理绝对是一个JPA应用最为重要的部分之一。关系映射处理的好,不仅仅是建模上的成功,而且在程序性能上也会更胜一筹。关系映射处理的不好很容易造成程序性能底下,各种Bug频繁出现,而且这些Bug通常还会比较隐蔽,总是在关键时刻掉链子。我想这也是为什么很多开发人员说JPA入门容易,精通难得原因之一。因为关系确实不是那么好处理的,不仅需要原创 2016-10-20 21:40:11 · 3306 阅读 · 1 评论 -
[JavaEE - JPA] 6. ORM的核心注解 - 基础类型以及嵌套类型
本文继续介绍JPA ORM的核心注解中和基础类型映射相关的部分。基础类型映射所谓的基础类型映射,实际上就是Java中定义的数据类型应该如何被JDBC转换成数据库所支持的数据类型。而这些基础类型,主要包括了以下9种:简单类型:byte,int,short,long,boolean,char,float以及double简单类型对应的包装类型:Byte,Integer,Short,Long,Boole原创 2016-10-17 22:26:29 · 3334 阅读 · 0 评论 -
[JavaEE - JPA] 5. ORM的核心注解 - 访问方式,表映射以及主键生成
从本篇文章开始,会系统性地介绍JPA中用来实现对象关系映射(Object Relational Mapping)的核心注解,以及基础类型,关系类型,嵌套类型以及集合类型的映射方式。注解种类在探讨实现JPA中各种映射的方式之前,可以先看看JPA中的注解类型。 由于ORM这一机制涉及到了两个方面:对象(内存模型)以关系数据(关系型数据库)。而显然我们在配置ORM的各种规则时,只能在Java程序中完成。原创 2016-09-28 23:40:38 · 3750 阅读 · 0 评论 -
[JavaEE - JPA] 4. EntityManager相关核心概念
前三篇文章花了一些笔墨介绍了事务的概念以及在EJB和Spring Framework中分别是如何完成事务管理的。之所谓花了比较大的代价来介绍事务主要也是因为不管在什么类型的持久化应用中,都包含下面两个关键点:事务管理对象关系映射(ORM)而JPA主要定义的就是和对象关系映射(ORM)相关的内容。从本篇文章开始,会系统性地介绍JPA的方方面面。核心概念及其关联关系首先,当然原创 2016-09-27 00:01:31 · 4965 阅读 · 0 评论 -
[JavaEE - JPA] 3. Spring Framework中的事务管理
前文讨论了事务划分(Transaction Demarcation)在EJB中是如何实现的,本文继续介绍在Spring Framework中是如何完成事务划分的。我们已经知道了当采用Container事务类型的时候,事务划分主要有以下两种方案(参考这里):使用JTA接口在应用中编码完成显式划分在容器的帮助下完成自动划分在使用JavaEE的EJB规范时,这两种方案分别被实现为BMT原创 2016-09-23 23:05:23 · 6104 阅读 · 0 评论 -
[JavaEE - JPA] 2. EJB中的事务管理
在上一篇文章中介绍了事务的基本概念,包括事务的ACID性质,以及事务的类型并且稍微提到了事务划分。对于任何一个需要持久化数据的应用而言,事务划分(Transaction Demarcation)的规划都是非常重要的一环。如果规划的不好,轻则影响性能,重则会导致在某些情况下数据发生不一致,从而严重影响业务逻辑的顺利进行。本文继续介绍事务划分在当前JavaEE技术体系下基于EJB的实现方案。虽然EJB算原创 2016-09-19 00:35:16 · 4855 阅读 · 0 评论 -
[AOP] 7. 一些自定义的Aspect - Circuit Breaker
Circuit Breaker(断路器)模式关于断路器模式是在微服务架构/远程调用环境下经常被使用到的一个模式。它的作用一言以蔽之就是提高系统的可用性,在出现的问题通过服务降级的手段来保证系统的整体可用,而不至于因为部分问题导致整个系统不可用。用下面这张图可以很好的说明它能够解决的问题: 图片引用自参考资料1。其中从client和supplier可以分别理解成调用者和远程方法。在没有Circuit原创 2017-07-30 13:40:12 · 1368 阅读 · 0 评论