自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

总结沉淀

总结日常点滴积累

  • 博客(30)
  • 资源 (3)
  • 收藏
  • 关注

原创 hibernate5(15)注解映射[7]集合关联

集合注解映射集合关系映射可以看成是一对多关系映射的一种简化,在一个电商系统里,出售的产品可能会有多张展示图片,如果我们使用一对多来建立关联映射时,需要创建一个实体类Images,里面可能有属性:图片在服务器的访问路径url和图片所属产品productId。但如果我们使用集合关系映射,则无需新建一个实体类,只需在Product中定义一个集合成员属性即可。Set集合在产品中,我们的图片路径一般是不会相同

2016-04-13 08:42:36 6134 2

原创 hibernate5(14)注解映射[6]多对多中间表关联

在我们的角色管理系统中,一个用户可以有多种角色,一种角色可以赋予多个用户,显然用户和角色就是典型的多对多关系。又或者博客网站上,用户与文章点赞记录也是一个多对多关系,即一个用户可以点赞多篇文章,一篇文章可以给多个用户点赞等,这时候,我们往往需要附加一些信息,比如授权时间、点赞时间等。在上面两个实例中,都可对应于hibernate多对多映射关系的两种方式,在多对多映射中,我们往往使用中间表来建立关联关

2016-04-11 08:54:40 9683

原创 git分支原理命令图文解析

本地分支解析git 通过可变指针来实现对提交数据的历史版本的控制,每当我们提交新的更新,当前分支(设为master)则指向最后一个提交更新A,而最后一个提交对象则存在一个指针指向前一次的提交更新Q。如果我们创建一个新的分支,child,它和master共同指向A,这时,如果我们向child分支提交更新B,我们会发现child指向B,而master依然指向A。无论我们在child分支进行了任何开发,只

2016-04-11 08:29:43 6555 1

原创 hibernate5(13)注解映射[5]一对一共享主键关联

一对一共享主键下面我们直接通过实例来讲解共享主键配置: 主键主控方:Articlepackage com.zeng2.model;@Table(name = "t_article2")@Entitypublic class Article { @Id @GeneratedValue(strategy = GenerationType.AUTO) private Inte

2016-04-10 09:09:02 5568

原创 hibernate5(12)注解映射[4]一对一外键关联

在实际博客网站中,文章内容的数据量非常多,它会影响我们检索文章其它数据的时间,如查询发布时间、标题、类别的等。这个时候,我们可以尝试将文章内容存在另一张表中,然后建立起文章——文章内容的一对一映射一对一关联有两种方式,一种是外键关联,另一种是复合主键关联。外键关联下面我们先看一个一对一单向关联的实例/*************关联关系维护方************/

2016-04-09 09:52:36 7074 1

原创 springMVC4(16)拦截器解析与登陆拦截模拟

在SpringMVC中,我们会经常使用到拦截器,虽然SpringAOP也能帮我们实现强大的拦截器功能,但在Web资源供给上,却没有SpringMVC来得方便快捷。 使用SpringMVC拦截器的核心应用场景是根据我们的实际需求,个性化定制拦截器,再对特定url进行拦截处理。 而自定义拦截器,首先需要我们实现HandlerInterceptor拦截器接口,下面是它的定义:

2016-04-08 20:36:25 14731

原创 hibernate5(11)注解映射[3]一对多多对一双向关联

在上两篇文章里,我们详细地分别讲解了一对多和多对一的单向关联配置的具体属性含义,在这一篇文章里,我们完成两者的的整合建立双向关联。 在实际的博客网站中,我们可能需要根据文章读取作者(用户)信息,但肯定也要让用户能获取自己的文章信息,针对这种需求,我们可以建立文章(多)对用户(一)的双向关联映射。 下面先看实例映射配置文件:/********************一方配置User********

2016-04-08 08:51:45 6334

原创 hibernate5(9)注解映射[1]多对一单向关联

在实际的项目开发中,我们常常需要建立我们实体类间的复杂关系,比如在一个博客网站中,用户会写文章,则文章与用户的关系就是多对一的映射关系。 现在先看一个配置实例:我们的文章实体类package com.zeng.model;import javax.persistence.CascadeType;import javax.persistence.Entity;import javax.persi

2016-04-07 19:52:23 4869 4

原创 hibernate5(10)注解映射[2]一对多单向关联

一对多单向关联映射在实际的博客网站中,用户肯定需要获取自己所写的文章,这时可以建立用户(一)对文章(多)的单向关联映射。 先来看我们的一方配置实例package com.zeng.model;import java.util.Set;import javax.persistence.CascadeType;import javax.persistence.Entity;import javax

2016-04-07 09:26:33 8079 1

原创 springMVC4(15)RestFul多视图混合输出

混合使用多种视图技术。在前面文章里,我们对jsp、json、xml个中视图都进行了较为详细的实例解析,但涉及到的都是单视图使用配置。在实际开发中,我们可能需要混合是使用多种视图技术。尤其是针对REST编程风格,我们可以通过一个URL、多种视图来切合REST风格的同一资源、多种表述。 现在加入我们要输出JSP、JSON、XML多种视图技术,如果使用我之前文章《springMVC4(4)json与对象

2016-04-07 00:19:26 6716 1

原创 springMVC4(14)各类视图输出实例分析

1. 模板视图FreeMarkerViewResolver 、 VolocityViewResolver 这两个视图解析器都是 UrlBasedViewResolver 的子类。 FreeMarkerViewResolver 会把 Controller 处理方法返回的逻辑视图解析为 FreeMarkerView ,而 VolocityViewResolver 会把返回的逻辑视图解析为 Volocit

2016-04-07 00:14:34 3345

原创 hibernate5(8)操纵对象入门[3]操控对象封装方法

为什么要说是“封装方法”呢?因为它帮我们封装好了底层的增删改查操作,直接调用相应方法即可灵活地操作我们数据库数据。它们由Session接口提供,下面我们通过实例一一分析这些方法。1.save方法Session 的 save() 方法使一个临时对象转变为持久化对象 Session 的 save() 方法完成以下操作: 1. 把 News 对象加入到 Session 缓存中,使它进入持久化状态 2

2016-04-06 09:21:56 2066

原创 springMVC4(13)视图解析器分类详解

在 《springMVC4(7)模型视图方法源码综合分析》 中,我们介绍了ModelAndView的用法,它会在控制层方法调用完毕后作为返回值返回,里面封装好了我们的业务逻辑数据和视图对象或视图名 。下一步,视图对象往往会对模型进一步渲染,再由视图解析器进一步解析并向前端发出响应。在下面,我们详细介绍视图和视图解析器的各种分类。 在View接口中,定义了一个核心方法是: void rend

2016-04-06 09:17:51 5349

原创 hibernate5(7)操纵对象入门[2]四大对象状态分析

状态类型在hibernate中,java对象的声明周期对应有4种状态: 状态 说明 瞬时(Transient) 由new操作符创建,且尚未与Hibernate Session 关联的对象被认定为瞬时(Transient)的。瞬时(Transient)对象不会(在清理Session时)被持久化到数据库中,也不会被赋予持久化标识(identifier)。使用Hibernate Sessio

2016-04-05 12:23:45 1443

原创 hibernate5(6)操纵对象入门[1]Session缓存

java对象在JVM中的存活条件在java中,我们使用User user = new User();来创建一个java对象时,JVM会为其分配一块内存空间,此时,这个对象被变量“user”引用,那么它就会一直存在于内存中,而如果我们我们的“引用者user”升级了,User user = new VipUser()。那么原来new User()不再被任何变量引用,它就会结束自己的生命周期,然后会被JV

2016-04-05 09:26:38 2227

原创 springMVC4(12)复杂对象和集合类型入参绑定

1. 复杂对象参数绑定对于普通的对象参数绑定,我们只需要对象成员变量名与请求参数名一一对应即可完成绑定。 而求对于组合对象,我们可以使用级联的方式来绑定方法参数。见下面实例: 我们先定义两个POJO类:User,Article其中Atricle是User的成员属性:public class Article { private Integer id; private String

2016-04-05 09:24:21 16677 2

原创 springMVC4(11)使用注解完成数据格式化

需求实例引入在实际开发中,我们会常常遇到需要对日期格式、数值格式进行转换的需求。在spring中,我们可以轻松通过注解的方式完成对数据的格式化处理,比如现在有个User POJO类: package com.mvc.model;import java.util.Date;public class Person { private String name; @DateTimeForm

2016-04-04 21:59:18 7631 4

原创 springMVC4(10)强大类型转换器实例解析

在《springMVC4(9)属性编辑器剖析入参类型转换原理 》一文中,我们通过分析Sping内置的属性编辑器来理解springMVC是如何完成请求参数到入参的类型的转换的。而在新版本中,SpringMVC使用了新的架构来完成类型转换的工作,而且它的工作更加强大,支持格式化参数输入输出,它的另一个实例可见我的另一篇文章《springMVC4(4)json与对象互转实例解析请求响应数据转换器》。在文

2016-04-04 15:28:55 8945

转载 Spring4新特性——集成Bean Validation 1.1(JSR-349)到SpringMVC

Bean Validation 1.1当前实现是Hibernate validator 5,且spring4才支持。接下来我们从以下几个方法讲解Bean Validation 1.1,当然不一定是新特性: 集成Bean Validation 1.1到SpringMVC 分组验证、分组顺序及级联验证 消息中使用EL表达式 方法参数/返回值验证 自定义验证规则 类级别验证器 脚本验证器 cro

2016-04-04 00:58:11 2362 2

原创 springMVC4(9)属性编辑器剖析入参类型转换原理

我们通过Http请求提交的参数都以字符串的形式呈现,但最终在springMVC的方法入参中,我们却能得到各种类型的数据,包括Number、Boolean、复杂对象类型、集合类型、Map类型等,这些都是springMVC内置的数据类型转换器帮我们完成的。springMVC的将请求数据绑定到方法入参的流程如下所示:Created with Raphaël 2.1.0数据绑定流程图解ServletRequ

2016-04-03 12:16:07 4041 1

原创 springMVC4(8)模型数据绑定全面分析

使用@ModelAttribute、Model、Map、@SessionAttributes能便捷地将我们的业务数据封装到模型里并交由视图解析调用。下面开始一一分析在方法入参上使用@ModelAttribute使用@ModelAttribute可以直接将我们的方法入参添加到模型中。我们先看一个实例:1. springMVC核心文件配置:<!-- 扫描com.mvc.controller包下所有的类,

2016-04-03 10:02:23 5057

原创 springMVC4(7)模型视图方法源码综合分析

在完整web开发中,springMVC主要充当了控制层的角色。它接受视图层的请求,获取视图层请求数据,再对数据进行业务逻辑处理,然后封装成视图层需要的模型数据,再将数据导向到jsp等视图界面。 在前面,我们通过对@RequestMapping和方法入参绑定的分析,完成了视图层->控制层的数据交接,然后业务逻辑处理主要由Service层进行。那么接下来很关键的就是,如何将视图数据导向到特定的视图中。

2016-04-02 16:33:51 4299

原创 springMVC4(6)Unitils断言与整合测试

反射断言反射对象断言在实际场景中,我们比较两个对象是否相等,可能会去选择重写equals方法去比较对象里的每一个属性,或者是直接将对象的属性一个个取出来比较,但这都比较麻烦,Unitils为我们提供了反射断言可直接完成这一任务,如下例所示:@Testpublic void test1(){ User user1 = new User(1,"a","b"); User user2 =

2016-04-02 12:26:40 2274

原创 springMVC4(5)RestTemplate控制层单元测试

在前面我们进行web测试,总要在游览器进行,数据组装、请求方法更给等都极为麻烦。 RestTemplate是Spring提供的一个web层测试模板类,我们可以通过RestTemplate在客户端方便的进行web层功能测试。它支持REST风格的URL,而且具有AnnotationMethodHandlerAdapter的数据转换器HttpMessageConverters的装配功能。RestTemp

2016-04-02 09:24:40 4587 5

原创 趣谈spring事件:业务解耦与异步调用

分析需求引入事件机制使用spring的事件机制有助于对我们的项目进一步的解耦。假如现在我们面临一个需求: 我需要在用户注册成功的时候,根据用户提交的邮箱、手机号信息,向用户发送邮箱认证和手机号短信通知。传统的做法之一是在我们的UserService层注入邮件发送和短信发送的相关类,然后在完成用户注册同时,调用对应类方法完成邮件发送和短信发送 但这样做的话,会把我们邮件、短信发送的业务与我们的U...

2016-04-02 01:29:38 1729

原创 springMVC4(4)json与对象互转实例解析请求响应数据转换器

格式化数据输入输出Spring3.0的重要接口:HttpMessageConveter为我们提供了强大的数据转换功能,将我们的请求数据转换为一个java对象,或将java对象转化为特定格式输出等。比如我们常见的从前端注册表单获取json数据并转化为User对象,或前端获取用户信息,后端输出User对象转换为json格式传输给前端等。spring 为我们提供了众多的HttpMessageConvete

2016-04-01 21:11:59 14665

原创 springMVC4(3)方法入参灵活绑定

在原生Servlet中,我们通过在doGet和doPost方法绑定web资源访问接口:HttpServletRequest和HttpServletResponse到入参来进一步通过request.getParameter()等方法获取我们的web资源。在SpringMVC中,我们一样可以将HttpServletRequest和HttpServletResponse绑定到入参中使用,但除此之外,Spr

2016-04-01 15:57:14 4119

原创 spring引介增强定时器实例:无侵入式动态增强类功能

引介增强实例需求在前面我们已经提到了前置、后置、环绕、最终、异常等增强形式,它们的增强对象都是针对方法级别的,而引介增强,则是对类级别的增强,我们可以通过引介增强为目标类添加新的属性和方法,更为诱人的是,这些新属性或方法是可以根据我们业务逻辑需求而动态变化的。怎么来理解这一点?我们先展示一个用引介增强解决的现实需求问题,现在先来看看我们的一个需求: 我们要设计一个定时任务,在每天特定流量高峰时...

2016-04-01 14:28:30 573

原创 springMVC4(2)请求映射全面分析

在springMVC的控制器中,我们常使用@RequestMapping来完成我们的请求映射,我们可以在类定义上和方法定义上使用注解,其配置的路径将为类中定义的所有方法的父路径,如上篇实例中的/user(类)/hello(方法)。 一般的,我们类定义上的路径注解起到命名空间的作用,防止不同方法的路径映射产生冲突,比如我在UserController和ArticleController下都定义了如下

2016-04-01 12:34:39 3033

原创 springMVC请求映射全面分析

在springMVC的控制器中,我们常使用@RequestMapping来完成我们的请求映射,我们可以在类定义上和方法定义上使用注解,其配置的路径将为类中定义的所有方法的父路径,如上篇实例中的/user(类)/hello(方法)。 一般的,我们类定义上的路径注解起到命名空间的作用,防止不同方法的路径映射产生冲突,比如我在UserController和ArticleController下都定义了如...

2016-04-01 01:09:01 604

AspectJ的JAR包

SpringAop中用到的AspectJ的Jar包,里面包括aspectjweaver.jar和aspectjrt-1.5.0.jar两个jar包

2016-03-21

mybatis反向生成model

借助数据库配置,通过此工具可方向代理生成对应的pojo类、mapper.xml文件和mapper.java接口类

2016-03-20

mybatis3+spring+springMVC4整合jar包

mybatis3+spring+springMVC4整合jar包,导入即可完美使用

2016-03-20

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除