
spring
九月木码
这个作者很懒,什么都没留下…
展开
-
Spring常用注解总结
传统的Spring做法是使用.xml文件来对bean进行注入或者是配置aop、事物,这么做有两个缺点:1、如果所有的内容都配置在.xml文件中,那么.xml文件将会十分庞大;如果按需求分开.xml文件,那么.xml文件又会非常多。总之这将导致配置文件的可读性与可维护性变得很低。2、在开发中在.java文件和.xml文件之间不断切换,是一件麻烦的事,同时这种思维上的不连贯也会降低开发的效率。 ...原创 2018-11-01 14:41:00 · 122 阅读 · 0 评论 -
【第九章】 Spring的事务 之 9.3 编程式事务
9.3.1 编程式事务概述 所谓编程式事务指的是通过编码方式实现事务,即类似于JDBC编程实现事务管理。 Spring框架提供一致的事务抽象,因此对于JDBC还是JTA事务都是采用相同的API进行编程。Connection conn = null; UserTransaction tx = null; try { tx = getUse...转载 2018-11-11 14:12:00 · 461 阅读 · 0 评论 -
【第四章】 资源 之 4.1 基础知识
4.1.1 概述 在日常程序开发中,处理外部资源是很繁琐的事情,我们可能需要处理URL资源、File资源、ClassPath相关资源、服务器相关资源(JBoss AS 5.x上的VFS资源)等等很多资源。因此处理这些资源需要使用不同的接口,这就增加了我们系统的复杂性;而且处理这些资源步骤都是类似的(打开资源、读取资源、关闭资源),因此如果能抽象出一个统一的接口来对这些底层资源进行统...转载 2018-11-08 10:38:24 · 102 阅读 · 0 评论 -
【第四章】 资源 之 4.2 访问Resource
4.3.1 ResourceLoader接口 ResourceLoader接口用于返回Resource对象;其实现可以看作是一个生产Resource的工厂类。public interface ResourceLoader { Resource getResource(String location); ClassLoader getCla...转载 2018-11-08 11:31:28 · 145 阅读 · 0 评论 -
【第九章】 Spring的事务 之 9.4 声明式事务
9.4.1 声明式事务概述 从上节编程式实现事务管理可以深刻体会到编程式事务的痛苦,即使通过代理配置方式也是不小的工作量。 本节将介绍声明式事务支持,使用该方式后最大的获益是简单,事务管理不再是令人痛苦的,而且此方式属于无侵入式,对业务逻辑实现无影响。 接下来先来看看声明式事务如何实现吧。9.4.2 声明式实现事务管理1、定义业务逻辑实现...转载 2018-11-11 17:11:43 · 155 阅读 · 0 评论 -
【第六章】 AOP 之 6.1 AOP基础
6.1.1 AOP是什么 考虑这样一个问题:需要对系统中的某些业务做日志记录,比如支付系统中的支付业务需要记录支付相关日志,对于支付系统可能相当复杂,比如可能有自己的支付系统,也可能引入第三方支付平台,面对这样的支付系统该如何解决呢?传统解决方案: 1)日志部分提前公共类LogUtils,定义“longPayBegin”方法用于记录支付开始日志,...转载 2018-11-08 20:08:14 · 174 阅读 · 0 评论 -
【第六章】 AOP 之 6.2 AOP的HelloWorld
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.5.RELEASE.jar c...转载 2018-11-08 20:22:49 · 139 阅读 · 0 评论 -
【第六章】 AOP 之 6.3 基于Schema的AOP
6.3 基于Schema的AOP 基于Schema的AOP从Spring2.0之后通过“aop”命名空间来定义切面、切入点及声明通知。 在Spring配置文件中,所以AOP相关定义必须放在<aop:config>标签下,该标签下可以有<aop:pointcut>、<aop:advisor>、<aop:aspect>标签,配置顺序不可...转载 2018-11-08 21:39:48 · 95 阅读 · 0 评论 -
【第六章】 AOP 之 6.9 代理机制
Spring AOP通过代理模式实现,目前支持两种代理:JDK动态代理、CGLIB代理来创建AOP代理,Spring建议优先使用JDK动态代理。JDK动态代理:使用java.lang.reflect.Proxy动态代理实现,即提取目标对象的接口,然后对接口创建AOP代理。 CGLIB代理:CGLIB代理不仅能进行接口代理,也能进行类代理,CGLIB代理需要注意以下问题: 不能通知final...转载 2018-11-08 21:47:35 · 76 阅读 · 0 评论 -
使用Spring容器
Spring有两个核心接口:BeanFactory和ApplicationContext,其中ApplicationContext是BeanFactory的子接口。他们都可代表Spring容器,Spring容器是生成Bean实例的工厂,并且管理容器中的Bean。 Bean是Spring管理的基本单位,在基于Spring的Java EE应用中,所有的组件都被当成Bean...原创 2019-01-10 19:46:24 · 286 阅读 · 0 评论 -
拦截器与过滤器的区别
实现方式不同:Filter是基于函数回调的,而Interceptor则是基于Java反射的。 使用范围不同:Filter是Servlet规范规定的,只能用于Web程序中。而拦截器既可以用于Web程序,也可以,也可以用于application程序中。 规范不同:Filter是在Servlet规范中定义的,是Servlet容器支持的。而拦截器是在Spring容器内的,是Spring框架支持的。 ...原创 2019-03-24 18:34:38 · 102 阅读 · 0 评论 -
springAop实现原理概要
Spring AOP的实现原理是基于动态织入的动态代理技术,而动态代理技术又分为Java JDK动态代理和CGLIB动态代理,前者是基于反射技术的实现,后者是基于继承的机制实现。 JDK动态代理//自定义的接口类,JDK动态代理的实现必须有对应的接口类public interface ExInterface { void execute();}//A类...原创 2019-08-16 10:20:49 · 244 阅读 · 0 评论 -
【第二章】 IoC 之 2.3 IoC的配置使用
2.3.1 XML配置的结构一般配置文件结构如下:<beans> <import resource=”resource1.xml”/> <bean id=”bean1”class=””></bean> <bean id=”bean2”class=””></bean> ...转载 2018-11-05 23:11:54 · 101 阅读 · 0 评论 -
【第二章】 IoC 之 2.2 IoC 容器基本原理
2.2.1 IoC容器的概念 IoC容器就是具有依赖注入功能的容器,IoC容器负责实例化、定位、配置应用程序中的对象及建立这些对象间的依赖。应用程序无需直接在代码中new相关的对象,应用程序由IoC容器进行组装。在Spring中BeanFactory是IoC容器的实际代表者。 Spring IoC容器如何知道哪些是它管理的对象呢?这就需要配置文件,Spring IoC...转载 2018-11-05 17:04:14 · 177 阅读 · 0 评论 -
【第二章】 IoC 之 2.1 IoC基础
2.1.1 IoC是什么 Ioc—Inversion of Control,即“控制反转”,不是什么技术,而是一种设计思想。在Java开发中,Ioc意味着将你设计好的对象交给容器控制,而不是传统的在你的对象内部直接控制。如何理解好Ioc呢?理解好Ioc的关键是要明确“谁控制谁,控制什么,为何是反转(有反转就应该有正转了),哪些方面反转了”,那我们来深入分析一下: ...转载 2018-11-05 15:33:35 · 213 阅读 · 0 评论 -
【第三章】 DI 之 3.1 DI的配置使用
3.1.1 依赖和依赖注入 传统应用程序设计中所说的依赖一般指“类之间的关系”,那先让我们复习一下类之间的关系: 泛化:表示类与类之间的继承关系、接口与接口之间的继承关系; 实现:表示类对接口的实现; 依赖:当类与类之间有使用关系时就属于依赖关系,不同于关联关系,依赖不具有“拥有关系”,而是一种“相识关系”,只在某个特定地方(比如某...转载 2018-11-06 19:51:27 · 180 阅读 · 0 评论 -
【第三章】 DI 之 3.2 循环依赖
3.2.1 什么是循环依赖 循环依赖就是循环引用,就是两个或多个Bean相互之间的持有对方,比如CircleA引用CircleB,CircleB引用CircleC,CircleC引用CircleA,则它们最终反映为一个环。此处不是循环调用,循环调用是方法之间的环调用。如图3-5所示: 图3-5 循环引用 循环调用是无法解决的,除非有终结条件,否则就是死循环...转载 2018-11-06 20:22:32 · 187 阅读 · 0 评论 -
【第七章】 对JDBC的支持 之 7.1 概述
7.1 概述7.1.1 JDBC回顾 传统应用程序开发中,进行JDBC编程是相当痛苦的,如下所示://cn.javass.spring.chapter7. TraditionalJdbcTest @Test public void test() throws Exception { Connection conn = null; Pre...转载 2018-11-09 11:14:24 · 131 阅读 · 0 评论 -
【第八章】 对ORM的支持 之 8.1 概述
8.1 概述8.1.1 ORM框架 ORM全称对象关系映射(Object/Relation Mapping),指将Java对象状态自动映射到关系数据库中的数据上,从而提供透明化的持久化支持,即把一种形式转化为另一种形式。 对象与关系数据库之间是不匹配,我们把这种不匹配称为阻抗失配,主要表现在:关系数据库首先不支持面向对象技术如继承、多态,如何使关系数据库...转载 2018-11-09 13:06:03 · 125 阅读 · 0 评论 -
Spring Jdbc Template 与 MyBatis 的比较
Spring Jdbc -- 使用最少的代码和配置完成你的项目。Spring Jdbc的接口比较丰富,其中大部分接口都由内部消化了,我们只需要关注少量接口即可。JdbcOperations 和 NamedParameterJdbcOperations对应的实现类:JdbcTemplate 和 NamedParameterJdbcTemplate Spring Jdbc 的核心接...转载 2018-11-09 13:14:36 · 5955 阅读 · 1 评论 -
JDBC、JDBCTemplate、MyBatis、Hiberante 比较与分析
JDBC (Java Data Base Connection,java数据库连接) JDBC(Java Data Base Connection,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成.JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序优...转载 2018-11-09 13:26:05 · 2662 阅读 · 0 评论 -
【第九章】 Spring的事务 之 9.1 数据库事务概述
9.1 数据库事务概述 事务首先是一系列操作组成的工作单元,该工作单元内的操作是不可分割的,即要么所有操作都做,要么所有操作都不做,这就是事务。事务必需满足ACID(原子性、一致性、隔离性和持久性)特性,缺一不可:原子性(Atomicity):即事务是不可分割的最小工作单元,事务内的操作要么全做,要么全不做; 一致性(Consistency):在事务执行前数据库的数据处...转载 2018-11-09 15:21:48 · 131 阅读 · 0 评论 -
【第九章】 Spring的事务 之 9.2 事务管理器
9.2.1 概述 Spring框架支持事务管理的核心是事务管理器抽象,对于不同的数据访问框架(如Hibernate)通过实现策略接口PlatformTransactionManager,从而能支持各种数据访问框架的事务管理,PlatformTransactionManager接口定义如下:public interface PlatformTransactionManager...转载 2018-11-09 16:30:11 · 148 阅读 · 0 评论 -
【第三章】 DI 之 3.3 更多DI的知识
3.3.1 延迟初始化Bean 延迟初始化也叫做惰性初始化,指不提前初始化Bean,而是只有在真正使用时才创建及初始化Bean。 配置方式很简单只需在<bean>标签上指定 “lazy-init” 属性值为“true”即可延迟初始化Bean。 Spring容器会在创建容器时提前初始化“singleton”作用域的Bean,“single...转载 2018-11-07 16:13:13 · 136 阅读 · 0 评论 -
【第三章】 DI 之 3.4 Bean的作用域与生命周期
3.4 Bean的作用域 什么是作用域呢?即“scope”,在面向对象程序设计中一般指对象或变量之间的可见范围。而在Spring容器中是指其创建的Bean对象相对于其他Bean对象的请求可见范围。 Spring提供“singleton”和“prototype”两种基本作用域,另外提供“request”、“session”、“global session”三种web...转载 2018-11-07 19:54:54 · 236 阅读 · 0 评论 -
【第一章】 Spring概述
1.1.1 Spring是什么 Spring是一个开源的轻量级Java SE(Java 标准版本)/Java EE(Java 企业版本)开发应用框架,其目的是用于简化企业级应用程序开发。应用程序是由一组相互协作的对象组成。而在传统应用程序开发中,一个完整的应用是由一组相互协作的对象组成。所以开发一个应用除了要开发业务逻辑之外,最多的是关注如何使这些对象协作来完成所需功能,而且...转载 2018-11-05 11:29:15 · 188 阅读 · 0 评论 -
spring bean 中注入 HttpServletRequest 成员变量的思考
主题在使用 spring 框架开发的时候,我们经常会碰到这种情况:@Controllerpublic class SomeController { @RequestMapping("/test1") public String test1(HttpServletRequest request) { System.out.println(request....原创 2019-08-29 21:43:11 · 2200 阅读 · 0 评论