
Spring
luckykapok918
这个作者很懒,什么都没留下…
展开
-
spring boot / cloud 使用@Retryable来进行重处理
使用场景 在实际工作中,重处理是一个非常常见的场景,比如:调用第三方接口或者使用mq时发送消息失败,调用远程服务失败,争抢锁失败,等等,这些错误可能是因为网络波动造成的,等待过后重处理就能成功.通常来说,会用try/catch,while循环之类的语法来进行重处理,但是这样的做法缺乏统一性,并且不是很方便,要多写很多代码.然而spring-retry却可以通过注解,在不入侵原有业务逻辑代码...原创 2019-10-31 18:04:38 · 1329 阅读 · 0 评论 -
【第七章】 对JDBC的支持 之 7.5 集成Spring JDBC及最佳实践 ——跟我学spring3
7.5 集成Spring JDBC及最佳实践 大多数情况下Spring JDBC都是与IOC容器一起使用。通过配置方式使用Spring JDBC。 而且大部分时间都是使用JdbcTemplate类(或SimpleJdbcTemplate和NamedParameterJdbcTemplate)进行开发,即可能80%时间使用JdbcTemplate类,而只有20转载 2016-01-11 15:38:29 · 316 阅读 · 0 评论 -
【第七章】 对JDBC的支持 之 7.4 Spring提供的其它帮助 ——跟我学spring3【私塾在线原创】
7.4 Spring提供的其它帮助7.4.1 SimpleJdbc方式 Spring JDBC抽象框架提供SimpleJdbcInsert和SimpleJdbcCall类,这两个类通过利用JDBC驱动提供的数据库元数据来简化JDBC操作。 1、SimpleJdbcInsert: 用于插入数据,根据数据库元数据进行插入数据,本类用于简化插入操作,提供三转载 2016-01-11 15:12:22 · 337 阅读 · 0 评论 -
【第七章】 对JDBC的支持 之 7.3 关系数据库操作对象化 ——跟我学spring3
7.3.1 概述 所谓关系数据库对象化其实就是用面向对象方式表示关系数据库操作,从而可以复用。Spring JDBC框架将数据库操作封装为一个RdbmsOperation,该对象是线程安全的、可复用的对象,是所有数据库对象的父类。而SqlOperation继承了RdbmsOperation,代表了数据库SQL操作,如select、update、call等,如图7-4所转载 2016-01-11 14:59:20 · 396 阅读 · 0 评论 -
【第七章】 对JDBC的支持 之 7.2 JDBC模板类 ——跟我学spring3
7.2 JDBC模板类7.2.1 概述 Spring JDBC抽象框架core包提供了JDBC模板类,其中JdbcTemplate是core包的核心类,所以其他模板类都是基于它封装完成的,JDBC模板类是第一种工作模式。 JdbcTemplate类通过模板设计模式帮助我们消除了冗长的代码,只做需要做的事情(即可变部分),并且帮我们做哪些转载 2016-01-11 10:56:02 · 254 阅读 · 0 评论 -
【第七章】 对JDBC的支持 之 7.1 概述 ——跟我学spring3
7.1 概述7.1.1 JDBC回顾 传统应用程序开发中,进行JDBC编程是相当痛苦的,如下所示: java代码:Java代码 //cn.javass.spring.chapter7. TraditionalJdbcTest @Test public void test() throws Exception转载 2016-01-08 11:59:26 · 372 阅读 · 0 评论 -
【第六章】 AOP 之 6.9 代理机制 ——跟我学spring3
Spring AOP通过代理模式实现,目前支持两种代理:JDK动态代理、CGLIB代理来创建AOP代理,Spring建议优先使用JDK动态代理。JDK动态代理:使用java.lang.reflect.Proxy动态代理实现,即提取目标对象的接口,然后对接口创建AOP代理。CGLIB代理:CGLIB代理不仅能进行接口代理,也能进行类代理,CGLIB代理需要注意以下问题:转载 2016-01-08 11:51:16 · 322 阅读 · 0 评论 -
【第六章】 AOP 之 6.8 切面实例化模型 ——跟我学spring3
所谓切面实例化模型指何时实例化切面。 Spring AOP支持AspectJ的singleton、perthis、pertarget实例化模型(目前不支持percflow、percflowbelow 和pertypewithin)。singleton:即切面只会有一个实例;perthis:每个切入点表达式匹配的连接点对应的AOP对象都会创建一个新切面实例;pertarg转载 2016-01-08 11:46:35 · 357 阅读 · 0 评论 -
【第六章】 AOP 之 6.7 通知顺序 ——跟我学spring3
如果我们有多个通知想要在同一连接点执行,那执行顺序如何确定呢?Spring AOP使用AspectJ的优先级规则来确定通知执行顺序。总共有两种情况:同一切面中通知执行顺序、不同切面中的通知执行顺序。 首先让我们看下 1) 同一切面中通知执行顺序:如图6-6所示。 图6-6 同一切面中的通知执行顺序而如果在同一切面中定义两个相同类型通知(如转载 2016-01-08 11:33:21 · 430 阅读 · 0 评论 -
【第六章】 AOP 之 6.6 通知参数 ——跟我学spring3
前边章节已经介绍了声明通知,但如果想获取被被通知方法参数并传递给通知方法,该如何实现呢?接下来我们将介绍两种获取通知参数的方式。使用JoinPoint获取:Spring AOP提供使用org.aspectj.lang.JoinPoint类型获取连接点数据,任何通知方法的第一个参数都可以是JoinPoint(环绕通知是ProceedingJoinPoint,JoinPoint子类),当然第一转载 2016-01-08 11:26:21 · 298 阅读 · 0 评论 -
【第六章】 AOP 之 6.5 AspectJ切入点语法详解 ——跟我学spring3
6.5 Spring AOP支持的AspectJ切入点指示符 切入点指示符用来指示切入点表达式目的,在Spring AOP中目前只有执行方法这一个连接点,Spring AOP支持的AspectJ切入点指示符如下: execution:用于匹配方法执行的连接点; within:用于匹配指定类型内的方法执行;转载 2016-01-07 15:51:26 · 359 阅读 · 0 评论 -
【第六章】 AOP 之 6.4 基于@AspectJ的AOP ——跟我学spring3
Spring除了支持Schema方式配置AOP,还支持注解方式:使用@AspectJ风格的切面声明。6.4.1 启用对@AspectJ的支持 Spring默认不支持@AspectJ风格的切面声明,为了支持需要使用如下配置: java代码:Java代码 这样Spring就能发现@AspectJ风转载 2016-01-07 15:37:01 · 327 阅读 · 0 评论 -
【第六章】 AOP 之 6.3 基于Schema的AOP ——跟我学spring3
6.3 基于Schema的AOP 基于Schema的AOP从Spring2.0之后通过“aop”命名空间来定义切面、切入点及声明通知。 在Spring配置文件中,所以AOP相关定义必须放在标签下,该标签下可以有、、标签,配置顺序不可变。:用来定义切入点,该切入点可以重用;:用来定义只有一个通知和一个切入点的切面;:用来定义切面,该切面可以包含多个切入点和通知,转载 2016-01-07 15:31:47 · 295 阅读 · 0 评论 -
【第六章】 AOP 之 6.2 AOP的HelloWorld ——跟我学spring3
6.2.1 准备环境 首先准备开发需要的jar包,请到spring-framework-3.0.5.RELEASE-dependencies.zip和spring-framework-3.0.5.RELEASE-with-docs中查找如下jar包: org.springframework.aop-3.0.转载 2016-01-06 23:01:06 · 321 阅读 · 0 评论 -
【第八章】 对ORM的支持 之 8.1 概述 ——跟我学spring3
8.1 概述8.1.1 ORM框架 ORM全称对象关系映射(Object/Relation Mapping),指将Java对象状态自动映射到关系数据库中的数据上,从而提供透明化的持久化支持,即把一种形式转化为另一种形式。 对象与关系数据库之间是不匹配,我们把这种不匹配称为阻抗失配,主要表现在:关系数据库首先不支持面向对象技术如继承、多态,转载 2016-01-12 09:58:34 · 323 阅读 · 0 评论 -
【第八章】 对ORM的支持 之 8.2 集成Hibernate3 ——跟我学spring3
8.2 集成Hibernate3 Hibernate是全自动的ORM框架,能自动为对象生成相应SQL并透明的持久化对象到数据库。Spring2.5+版本支持Hibernate 3.1+版本,不支持低版本,Spring3.0.5版本提供对Hibernate 3.6.0 Final版本支持。8.2.1 如何集成 Spring通过使用如下Bea转载 2016-01-12 10:26:36 · 377 阅读 · 0 评论 -
spring学习之@ModelAttribute运用详解
@ModelAttribute使用详解1.@ModelAttribute注释方法 例子(1),(2),(3)类似,被@ModelAttribute注释的方法会在此controller每个方法执行前被执行,因此对于一个controller映射多个URL的用法来说,要谨慎使用。 (1)@ModelAttribute注释void返回值的方法转载 2017-09-06 18:19:02 · 315 阅读 · 0 评论 -
Spring中涉及到线程类的事务控制实例
在实际的开发过程中需要用到异步相应请求,因此在处理过程中需要启动单独的处理线程类,又因为在此线程类的处理方法中涉及到对多个表的插入、修改操作,于是又要求实现事务的效果:即如果其中一个sql处理失败,则线程类方法中涉及的多个sql处理都回滚。 刚开始处理的时候在最外面的处理类中加注事务配置,但是发现最外面处理类中的事务配置不能控制线程类中的方法的事务;接着尝试对线程类的方法进行事务配原创 2016-06-29 22:52:24 · 1212 阅读 · 0 评论 -
【第十一章】 SSH集成开发积分商城 之 11.2 实现通用层 ——跟我学spring3
11.2 实现通用层11.2.1 功能概述通过抽象通用的功能,从而复用,减少重复工作:对于一些通用的常量使用一个专门的常量类进行定义;对于视图分页,也应该抽象出来,如JSP做出JSP标签;通用的数据层代码,如通用的CRUD,减少重复劳动,节约时间;通用的业务逻辑层代码,如通用的CRUD,减少重复劳动,节约时间;通用的表现层代码,同样用于减少重复,并提供更好的代码结构规范转载 2016-01-15 14:25:11 · 649 阅读 · 0 评论 -
【第十一章】 SSH集成开发积分商城 之 11.1 概述 ——跟我学spring3
11.1 概述11.1.1 功能概述 本节将通过介绍一个积分商城系统来演示如何使用SSH集成进行开发。 积分商城一般是购物网站的子模块,提供一些礼品或商品用于奖励老用户或使用积分来折换成现金,如图11-1所示。 图11-1 购物网站与积分商城 积分商城功能点:后台管理 交易管理模转载 2016-01-15 10:50:13 · 484 阅读 · 0 评论 -
【第十章】集成其它Web框架 之 10.4 集成JSF ——跟我学spring3
10.4 集成JSF10.4.1 概述 JSF(JavaServer Faces)框架是Java EE标准之一,是一个基于组件及事件驱动的Web框架,JSF只是一个标准(规范),目前有很多厂家实现,如Oracle的默认标准实现Mojarra、Apache的MyFaces、Jboss的RichFaces 等。 本示例将使用Oracle标准转载 2016-01-14 17:57:44 · 344 阅读 · 0 评论 -
【第十章】集成其它Web框架 之 10.3 集成Struts2.x ——跟我学spring3
10.3 集成Struts2.x10.3.1 概述Struts2前身是WebWork,核心并没有改变,其实就是把WebWork改名为struts2,与Struts1一点关系没有。 Struts2中通过ObjectFactory接口实现创建及获取Action实例,类似于Spring的IoC容器,所以Action实例可以由ObjectFactory实现来管理,因此集转载 2016-01-14 17:28:33 · 430 阅读 · 0 评论 -
【第十章】集成其它Web框架 之 10.2 集成Struts1.x ——跟我学spring3
10.2 集成Struts1.x10.2.1 概述 Struts1.x是最早实现MVC(模型-视图-控制器)模式的Web框架之一,其使用非常广泛,虽然目前已经有Struts2.x等其他Web框架,但仍有很多公司使用Struts1.x框架。 集成Struts1.x也非常简单,除了通用配置外,有两种方式可以将Struts1.x集成到Spring中:转载 2016-01-14 17:13:38 · 379 阅读 · 0 评论 -
【第十章】集成其它Web框架 之 10.1 概述 ——跟我学spring3
10.1 概述10.1.1 Spring和Web框架 Spring框架不仅提供了一套自己的Web框架实现,还支持集成第三方Web框架(如Struts1x、Struts2x)。 Spring实现的SpringMVC Web框架将在第十八章详细介绍。 由于现在有很大部分公司在使用第三方Web框架,对于并不熟悉S转载 2016-01-14 17:00:55 · 327 阅读 · 0 评论 -
【第九章】 Spring的事务 之 9.4 声明式事务 ——跟我学spring3
9.4 声明式事务9.4.1 声明式事务概述 从上节编程式实现事务管理可以深刻体会到编程式事务的痛苦,即使通过代理配置方式也是不小的工作量。 本节将介绍声明式事务支持,使用该方式后最大的获益是简单,事务管理不再是令人痛苦的,而且此方式属于无侵入式,对业务逻辑实现无影响。 接下来先来看看声明式事务如何实现吧。9.4.2转载 2016-01-13 15:00:05 · 324 阅读 · 0 评论 -
【第九章】 Spring的事务 之 9.3 编程式事务 ——跟我学spring3
9.3 编程式事务9.3.1 编程式事务概述 所谓编程式事务指的是通过编码方式实现事务,即类似于JDBC编程实现事务管理。 Spring框架提供一致的事务抽象,因此对于JDBC还是JTA事务都是采用相同的API进行编程。 java代码:Java代码 Connection conn = null;转载 2016-01-13 11:42:48 · 374 阅读 · 0 评论 -
【第九章】 Spring的事务 之 9.2 事务管理器 ——跟我学spring3
9.2.1 概述 Spring框架支持事务管理的核心是事务管理器抽象,对于不同的数据访问框架(如Hibernate)通过实现策略接口PlatformTransactionManager,从而能支持各种数据访问框架的事务管理,PlatformTransactionManager接口定义如下: java代码:Java代码 public转载 2016-01-13 10:51:57 · 321 阅读 · 0 评论 -
【第九章】 Spring的事务 之 9.1 数据库事务概述 ——跟我学spring3
9.1 数据库事务概述事务首先是一系列操作组成的工作单元,该工作单元内的操作是不可分割的,即要么所有操作都做,要么所有操作都不做,这就是事务。 事务必需满足ACID(原子性、一致性、隔离性和持久性)特性,缺一不可:原子性(Atomicity):即事务是不可分割的最小工作单元,事务内的操作要么全做,要么全不做;一致性(Consistency):在事务执行前数据库的数转载 2016-01-12 14:02:28 · 310 阅读 · 0 评论 -
【第八章】 对ORM的支持 之 8.4 集成JPA ——跟我学spring3
8.4 集成JPA JPA全称为Java持久性API(Java Persistence API),JPA是Java EE 5标准之一,是一个ORM规范,由厂商来实现该规范,目前有Hibernate、OpenJPA、TopLink、EclipseJPA等实现。 下图是JPA和Hibernate、TopLi转载 2016-01-12 11:30:30 · 324 阅读 · 0 评论 -
【第八章】 对ORM的支持 之 8.3 集成iBATIS ——跟我学spring3
8.3 集成iBATIS iBATIS是一个半自动化的ORM框架,需要通过配置方式指定映射SQL语句,而不是由框架本身生成(如Hibernate自动生成对应SQL来持久化对象),即Hibernate属于全自动ORM框架。Spring提供对iBATIS 2.X的集成,提供一致的异常体系、一致的DAO访问支持、Spring管理事务支持。 Spring转载 2016-01-12 10:40:41 · 488 阅读 · 0 评论 -
【第六章】 AOP 之 6.1 AOP基础 ——跟我学spring3
6.1.1 AOP是什么 考虑这样一个问题:需要对系统中的某些业务做日志记录,比如支付系统中的支付业务需要记录支付相关日志,对于支付系统可能相当复杂,比如可能有自己的支付系统,也可能引入第三方支付平台,面对这样的支付系统该如何解决呢?传统解决方案: 1)日志部分提前公共类LogUtils,定义“longPayBegin”方法用于记录转载 2016-01-06 22:53:34 · 294 阅读 · 0 评论 -
【第五章】Spring表达式语言 之 5.4在Bean定义中使用EL—跟我学spring3
5.4.1 xml风格的配置 SpEL支持在Bean定义时注入,默认使用“#{SpEL表达式}”表示,其中“#root”根对象默认可以认为是ApplicationContext,只有ApplicationContext实现默认支持SpEL,获取根对象属性其实是获取容器中的Bean。 首先看下配置方式(chapter5/el1.xml)吧:转载 2016-01-06 22:35:21 · 531 阅读 · 0 评论 -
【第十二章】零配置 之 12.1 概述 ——跟我学spring3
12.1 概述12.1.1 什么是零配置 在SSH集成一章中大家注意到项目结构和包结构是不是很有规律,类库放到WEB-INF/lib文件夹下,jsp文件放到WEB-INF/jsp文件夹下,web.xml需要放到WEB-INF文件夹下等等,为什么要这么放呢?不这样放可以吗? 所谓零配置,并不是说一点配置都没有了,而是配置很少而已。通过约定转载 2016-01-18 11:14:56 · 394 阅读 · 0 评论 -
第十一章】 SSH集成开发积分商城 之 11.3 实现积分商城层 ——跟我学spring3
11.3 实现积分商城层11.3.1 概述 积分商城是基于通用层之上进行开发,这样我们能减少很多重复的劳动,加快项目开发进度。11.3.2 实现数据模型层1、商品表,定义了如商品名称、简介、原需积分、现需积分等,其中是否发布表示只有发布(true)了的商品才会在前台删除,是否已删除表示不会物理删除,商品不应该物理删除,而是逻辑删除,版本属性用于防止并转载 2016-01-15 17:26:13 · 526 阅读 · 0 评论 -
【第二章】 IoC 之 2.1 IoC基础 ——跟我学Spring3
2.1.1 IoC是什么Ioc—Inversion of Control,即“控制反转”,不是什么技术,而是一种设计思想。在Java开发中,Ioc意味着将你设计好的对象交给容器控制,而不是传统的在你的对象内部直接控制。如何理解好Ioc呢?理解好Ioc的关键是要明确“谁控制谁,控制什么,为何是反转(有反转就应该有正转了),哪些方面反转了”,那我们来深入分析一下: ●谁控制谁转载 2015-12-28 23:08:43 · 421 阅读 · 0 评论 -
【第二章】 IoC 之 2.2 IoC 容器基本原理 ——跟我学Spring3
2.2.1 IoC容器的概念IoC容器就是具有依赖注入功能的容器,IoC容器负责实例化、定位、配置应用程序中的对象及建立这些对象间的依赖。应用程序无需直接在代码中new相关的对象,应用程序由IoC容器进行组装。在Spring中BeanFactory是IoC容器的实际代表者。Spring IoC容器如何知道哪些是它管理的对象呢?这就需要配置文件,Spring IoC容器通过读取配置转载 2015-12-28 22:52:14 · 386 阅读 · 0 评论 -
【第一章】 Spring概述 ——跟我学Spring3
1.1 Spring1.1.1 Spring是什么Spring是一个开源的轻量级Java SE(Java 标准版本)/Java EE(Java 企业版本)开发应用框架,其目的是用于简化企业级应用程序开发。应用程序是由一组相互协作的对象组成。而在传统应用程序开发中,一个完整的应用是由一组相互协作的对象组成。所以开发一个应用除了要开发业务逻辑之外,最多的是关注如何使这些对象协作来完成转载 2015-12-28 22:11:52 · 356 阅读 · 0 评论 -
Spring3.0与Quartz的整合实现定时任务调度
1.Maven项目,pom文件配置 quartz-1.8.5.jar commons-logging.jar spring-core-3.0.5.RELEASE.jar spring-beans-3.0.5.RELEASE.jar spring-context-3.0.5.RELEASE.jar spring-context-support-3.0.5.RELEASE.ja原创 2015-06-24 21:03:26 · 635 阅读 · 0 评论 -
Spring字符集过滤器CharacterEncodingFilter
Spring中的字符集过滤器可以很方便的为我们解决项目中出现的中文乱码问题,而且使用方法也很简单,只需要在web.xml文件中配置一下该过滤器,设置两个重要的参数(encoding和forceEncoding)即可:[html] view plaincopy filter> filter-name>sprin转载 2014-11-14 21:06:37 · 760 阅读 · 0 评论 -
@RequestMapping 常见访问地址
1)最基本的,方法级别上应用,例如: Java代码 @RequestMapping(value="/departments") public String simplePattern(){ System.out.println("simplePattern method was called"); return "someR原创 2014-05-07 11:43:36 · 801 阅读 · 0 评论