框架
文章平均质量分 82
百里挑一
这个作者很懒,什么都没留下…
展开
-
Spring 核心框架体系结构
很多人都在用spring开发java项目,但是配置maven依赖的时候并不能明确要配置哪些spring的jar,经常是胡乱添加一堆,编译或运行报错就继续配置jar依赖,导致spring依赖混乱,甚至下一次创建相同类型的工程时也不知道要配置哪些spring的依赖,只有拷贝,其实,当初我就是这么干的! spring的jar包只有20个左右,每个都有相应的功能,一个jar还可能依赖了若干其他j原创 2016-12-29 09:40:02 · 408 阅读 · 1 评论 -
JavaEE – JPA(5):ORM的核心注解 – 访问方式,表映射以及主键生成
注解种类在探讨实现JPA中各种映射的方式之前,可以先看看JPA中的注解类型。由于ORM这一机制涉及到了两个方面:对象(内存模型)以关系数据(关系型数据库)。而显然我们在配置ORM的各种规则时,只能在Java程序中完成。数据库是不知道有JPA这种机制存在的,数据库只是单纯的执行输入的各种SQL语句而已。因此,我们可以将JPA中的注解笼统地分为两种类型:逻辑关系原创 2016-12-20 10:11:19 · 428 阅读 · 0 评论 -
JavaEE – JPA(6):ORM的核心注解 – 基础类型以及嵌套类型
基础类型映射所谓的基础类型映射,实际上就是Java中定义的数据类型应该如何被JDBC转换成数据库所支持的数据类型。而这些基础类型,主要包括了以下9种:简单类型:byte,int,short,long,boolean,char,float以及double简单类型对应的包装类型:Byte,Integer,Short,Long,Boolean,Character,Fl原创 2016-12-20 10:13:56 · 421 阅读 · 0 评论 -
JavaEE – JPA(7):ORM的核心注解 – 关系类型
关系映射的处理绝对是一个JPA应用最为重要的部分之一。关系映射处理的好,不仅仅是建模上的成功,而且在程序性能上也会更胜一筹。关系映射处理的不好很容易造成程序性能底下,各种Bug频繁出现,而且这些Bug通常还会比较隐蔽,总是在关键时刻掉链子。我想这也是为什么很多开发人员说JPA入门容易,精通难得原因之一。因为关系确实不是那么好处理的,不仅需要对业务有相当深刻的见解,更需要对JPA提供的各种关系映射类原创 2016-12-20 10:16:52 · 335 阅读 · 0 评论 -
MyBatis 完全使用指南
MyBatis作为一个轻量的SQL映射框架,确实很简单,但是知识点挺多,实际使用中还是会有时想不起来某个标签该怎么写,所以整理了这篇文章,以备查询。由于MyBatis如此简单,使得这一篇文章基本把实际使用中常碰到的事情都涵盖了,包括:MyBatis中的一些概念MyBatis包含的内容SQL映射动态SQL一、 MyBatis中的一些概念原创 2016-11-28 12:44:25 · 606 阅读 · 1 评论 -
强大的Spring缓存技术(上)
缓存是实际工作中非常常用的一种提高性能的方法, 我们会在许多场景下来使用缓存。本文通过一个简单的例子进行展开,通过对比我们原来的自定义缓存和 spring 的基于注释的 cache 配置方法,展现了 spring cache 的强大之处,然后介绍了其基本的原理,扩展点和使用场景的限制。通过阅读本文,你应该可以短时间内掌握 spring 带来的强大缓存技术,在很少的配置下即可给既有代码提供缓原创 2016-12-21 09:37:56 · 22378 阅读 · 8 评论 -
强大的Spring缓存技术(中)
如何清空缓存好,到目前为止,我们的 spring cache 缓存程序已经运行成功了,但是还不完美,因为还缺少一个重要的缓存管理逻辑:清空缓存.当账号数据发生变更,那么必须要清空某个缓存,另外还需要定期的清空所有缓存,以保证缓存数据的可靠性。为了加入清空缓存的逻辑,我们只要对 AccountService2.java 进行修改,从业务逻辑的角度上看,它有两个需要清空缓存的地原创 2016-12-21 09:43:27 · 2281 阅读 · 0 评论 -
强大的Spring缓存技术(下)
基本原理一句话介绍就是Spring AOP的动态代理技术。 如果读者对Spring AOP不熟悉的话,可以去看看官方文档扩展性直到现在,我们已经学会了如何使用开箱即用的 spring cache,这基本能够满足一般应用对缓存的需求。但现实总是很复杂,当你的用户量上去或者性能跟不上,总需要进行扩展,这个时候你或许对其提供的内存缓存不满意了,因为其不支持高可用性,也不具原创 2016-12-21 09:46:48 · 6870 阅读 · 1 评论 -
MyBatis(6):MyBatis 集成 Spring 事务管理(下)
本文主要介绍:多数据的事物处理。文章内容主要包含两方面:1、单表多数据的事物处理2、多库/多表多数据的事物处理这两种都是企业级开发中常见的需求,有一定的类似,在处理的方法与技巧上又各有不同,在进入文章前,先做一些准备工作,因为后面会用到多表的插入事物管理,前面的文章建立了一个Student相关表及类,这里再建立一个Teacher相关的表及类。第一步是建立一张Teacher表原创 2016-12-29 09:38:35 · 331 阅读 · 0 评论 -
MyBatis(5):MyBatis 集成 Spring 事务管理(上)
单独使用MyBatis对事物进行管理前面MyBatis的文章有写过相关内容,这里继续写一个最简单的Demo,算是复习一下之前MyBatis的内容吧,先是建表,建立一个简单的Student表:create table student( student_id int auto_increment, student_name varchar原创 2016-12-29 09:36:26 · 346 阅读 · 0 评论 -
MyBatis(4):动态SQL
什么是动态SQLMyBatis的一个强大特性之一通常是它的动态SQL能力。如果你有使用JDBC或其他相似框架的经验,你就明白条件串联SQL字符串在一起是多么地痛苦,确保不能忘了空格或者在列表的最后的省略逗号,动态SQL可以彻底处理这种痛苦。通常使用动态SQL不可能是独立的一部分,MyBatis当然使用一种强大的动态SQL语言来改进这种情形,这种语言可以被用在任意映射的SQL语句中。原创 2016-12-23 10:38:41 · 303 阅读 · 0 评论 -
Web项目中使用Spring 3.x + Quartz 2.x实现作业调度详解
Quartz是一个基于Java的作业调度管理的轻量级框架,目前在很多企业应用中被使用,它的作用类似于java.util中的Timer和TimeTask、数据库中的job等,但Quartz的功能更强大、更灵活。从Quartz2开始,你可以使用POJO作为一个任务(Job),这种开发方式进一步降低了代码的耦合度,如果跟spring进行整合,使用起来将更加方便简单。整合开发需要使用的jar如下所原创 2016-12-02 16:10:57 · 601 阅读 · 0 评论 -
高性能的关键:Spring MVC的异步模式
什么是异步模式要知道什么是异步模式,就先要知道什么是同步模式,先看最典型的同步模式:(图1)浏览器发起请求,Web服务器开一个线程处理,处理完把处理结果返回浏览器。好像没什么好说的了,绝大多数Web服务器都如此般处理。现在想想如果处理的过程中需要调用后端的一个业务逻辑服务器,会是怎样呢?(图2)调就调吧,上图所示,请求处理线程会在Call了之原创 2016-11-23 13:02:45 · 879 阅读 · 0 评论 -
JavaEE – JPA(1):事务的基础概念
现在任何应用都需要数据持久化。否则就不算是一个完整的应用。那么对于一个数据持久化而言,最重要的无外乎两方面:事务管理(Transaction Management)对象关系映射(Object Relational Mapping)本文作为JPA(Java Persistence API)这一系列文章的首篇,就来先谈谈事物管理相关的一些概念和基础。事务(Transac原创 2016-12-16 17:14:53 · 360 阅读 · 0 评论 -
JavaEE – JPA(2):EJB中的事务管理
对于任何一个需要持久化数据的应用而言,事务划分(Transaction Demarcation)的规划都是非常重要的一环。如果规划的不好,轻则影响性能,重则会导致在某些情况下数据发生不一致,从而严重影响业务逻辑的顺利进行。本文继续介绍事务划分在当前JavaEE技术体系下基于EJB的实现方案。虽然EJB算是JavaEE的亲儿子,但是它的境遇却不怎么好,主要是被EJB 2.x给坑过的开发人员都原创 2016-12-16 17:17:46 · 416 阅读 · 0 评论 -
JavaEE – JPA(3):Spring Framework中的事务管理
前文讨论了事务划分(Transaction Demarcation)在EJB中是如何实现的,本文继续介绍在spring Framework中是如何完成事务划分的。我们已经知道了当采用Container事务类型的时候,事务划分主要有以下两种方案(参考这里):使用JTA接口在应用中编码完成显式划分在容器的帮助下完成自动划分在使用JavaEE的EJB规范时原创 2016-12-16 17:20:50 · 537 阅读 · 0 评论 -
JavaEE – JPA(4):EntityManager相关核心概念
前三篇文章花了一些笔墨介绍了事务的概念以及在EJB和spring Framework中分别是如何完成事务管理的。之所谓花了比较大的代价来介绍事务主要也是因为不管在什么类型的持久化应用中,都包含下面两个关键点:事务管理对象关系映射(ORM)而JPA主要定义的就是和对象关系映射(ORM)相关的内容。从本篇文章开始,会系统性地介绍JPA的方方面面。核心概念原创 2016-12-16 17:23:00 · 482 阅读 · 0 评论 -
MyBatis(2):config.xml文件
前言前一篇文章,讲了MyBatis入门,讲到了MyBatis有两个基本的配置文件,一个用来配置环境信息,一个用来写SQL语句。前者我把它命名为config.xml,config.xml的内容是:<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/my原创 2016-12-22 09:58:12 · 348 阅读 · 0 评论 -
MyBatis(3):SQL映射
前言前面学习了config.xml,下面就要进入MyBatis的核心SQL映射了,第一篇文章的时候,student.xml里面是这么写的:<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd">原创 2016-12-22 10:01:54 · 688 阅读 · 0 评论 -
MyBatis(1):MyBatis入门
MyBatis是什么MyBatis是什么,MyBatis的jar包中有它的官方文档,文档是这么描述MyBatis的:MyBatis is a first class persistence framework with support for custom SQL, stored procedures and advanced mappings. MyBatis eliminate原创 2016-12-21 09:50:12 · 439 阅读 · 0 评论