![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Spring
huangyuanzhi.top
这个作者很懒,什么都没留下…
展开
-
Spring的事务管理
Spring 的事务管理事务原本是数据库中的概念,在 Dao 层。但一般情况下,需要将事务提升到业务层,即 Service 层。这样做是为了能够使用事务的特性来管理具体的业务。在 Spring 中通常可以通过以下三种方式来实现对事务的管理:使用 Spring 的事务代理工厂管理事务使用 Spring 的事务注解管理事务使用 AspectJ 的 AOP 配置管理事务Spring 事务管理APISpring 的事务管理,主要用到两个事务相关的接口。1. 事务管理器接口事务管理器是 Platf原创 2020-12-02 17:29:41 · 216 阅读 · 0 评论 -
Spring与JDBC模板
Spring 所使用的操作数据库的技术: JDBC 模板的使用和 Spring 对于事务的管理。JDBC 模板的使用,是 IoC 的应用,将 JDBC 模板对象注入给了 Dao 层的实现类。Spring 的事务管理, 是 AOP 的应用,将事务作为切面织入到了 Service 层的业务方法中。为了避免直接使用 JDBC 而带来的复杂且冗长的代码, Spring 提供了一个强有力的模板类——JdbcTemplate 来简化 JDBC 操作。并且,数据源 DataSource 对象与模板 JdbcT原创 2020-11-17 18:24:30 · 101 阅读 · 0 评论 -
Spring与AOP之AspectJ基于XML的实现
AspectJ 除了提供了基于注解的 AOP 的实现外,还提供了以 XML 方式的实现。切面就是一个 POJO 类,而用于增强的方法就是普通的方法。通过配置文件,将切面中的功能增强织入到了目标类的目标方法中。实现步骤(1) 定义业务接口与实现类//主业务接口public interface ISomeService { //主业务方法 void doFirst(); //主业务方法 String doSecond(); //主业务方法 void doThird();}//目标类原创 2020-11-04 18:45:48 · 207 阅读 · 1 评论 -
Spring与AOP之AspectJ对DAO的实现
对于 AOP 这种编程思想,很多框架都进行了实现。 Spring 就是其中之一, 可以完成面向切面编程。 然而, AspectJ 也实现了 AOP 的功能,且其实现方式更为简捷,使用更为方便,而且还支持注解式开发(在 Spring 中使用 AOP 开发时,一般使用 AspectJ 的实现方式)。AspectJ 简介AspectJ 是一个面向切面的框架,它扩展了 Java 语言。 AspectJ 定义了 AOP 语法,它有一个专门的编译器用来生成遵守 Java 字节编码规范的 Class 文件。——百度原创 2020-11-02 21:31:57 · 386 阅读 · 0 评论 -
Spring与AOP之自动代理生成器
ProxyFactoryBean 代理工具类存在着如下缺点:(1)一个代理对象只能代理一个 Bean,即如果有两个 Bean 同时都要织入同一个切面,这时,不仅要配置这两个 Bean,即两个目标对象,同时还要配置两个代理对象。(2)在客户类中获取 Bean 时,使用的是代理类的 id,而非我们定义的目标对象 Bean 的 id。我们真正想要执行的应该是目标对象。从形式上看,不符合正常的逻辑。Spring 提供了自动代理生成器,用于解决 ProxyFactoryBean 的问题。常用的自动代理生成器有两原创 2020-10-29 19:46:35 · 170 阅读 · 0 评论 -
Spring与AOP的顾问(Advisor)详解
顾问(Advisor)是 Spring 提供的另一种切面。其可以完成更为复杂的切面织入功能。PointcutAdvisor 是顾问的一种, 可以指定具体的切入点。 顾问将通知进行了包装,会根据不同的通知类型,在不同的时间点,将切面织入到不同的切入点。PointcutAdvisor 接口有两个较为常用的实现类:NameMatchMethodPointcutAdvisor 名称匹配方法切入点顾问RegexpMethodPointcutAdvisor 正则表达式匹配方法切入点顾问名称匹配方法切入点顾问原创 2020-10-24 17:26:29 · 833 阅读 · 0 评论 -
Spring与AOP的通知(Advice)详解
通知(Advice),切面的一种实现,可以完成简单织入功能(织入功能就是在这里完成的)。 常用通知有:前置通知、后置通知、环绕通知、异常处理通知。通知详解通知(Advice)是 Spring 提供的一种切面(Aspect)。但其功能过于简单:只能将切面织入到目标类的所有目标方法中, 无法完成将切面织入到指定目标方法中。前置通知定义前置通知,需要实现 MethodBeforeAdvice 接口。该接口中有一个方法 before(),会在目标方法执行之前执行。 前置通知的特点:在目标方法执行之前先执原创 2020-10-24 17:18:31 · 623 阅读 · 0 评论 -
Spring之AOP编程术语
AOP 简介AOP(Aspect Orient Programming),面向切面编程,是面向对象编程 OOP 的一种补充。面向对象编程是从静态角度考虑程序的结构,而面向切面编程是从动态角度考虑程序运行过程。AOP 底层采用两种动态代理模式实现: JDK 的动态代理与 CGLIB 的动态代理。AOP 编程术语1. 切面切面(Aspect)泛指交叉业务逻辑。上例中的事务处理、日志处理就可以理解为切面。常用的切面有通知与顾问。实际就是对主业务逻辑的一种增强。2. 织入织入(Weaving)是指将切原创 2020-10-17 18:59:45 · 120 阅读 · 0 评论 -
Spring与IoC之基于注解的DI
对于 DI 使用注解,将不再需要在 Spring 配置文件中声明 Bean 实例(底层使用AOP)。定义 Bean@Component需要在类上使用注解@Component,该注解的 value 属性用于指定该 bean 的 id 值。(1) 实体类// @Scope("prototype") // 默认也是singleton@Component("myStudent")public class Student { @Value("张三") private String name; @原创 2020-10-16 22:00:17 · 82 阅读 · 0 评论 -
Spring与IoC之基于XML的DI
注入分类Bean 实例在调用无参构造器创建了空值对象后,就要对 Bean 对象的属性进行初始化。初始化是由容器自动完成的, 称为注入。根据注入方式的不同, 常用的有两类: 设值注入、构造注入(接口注入几乎不用)。设值注入设值注入是指,通过 setter 方法传入被调用者的实例(底层通过调用 setter 方法将值注入)。这种注入方式简单、直观,因而在 Spring 的依赖注入中大量使用。(1) 定义实体类public class School { private String name;}原创 2020-10-15 20:28:07 · 97 阅读 · 0 评论 -
Spring与IoC之Bean的装配
Spring 与 IoC控制反转(IoC, Inversion of Control),是一个概念,是一种思想。指将传统上由程序代码直接操控的对象调用权交给容器,通过容器来实现对象的装配和管理。控制反转就是对对象控制权的转移,从程序代码本身反转到了外部容器。当前比较流行的 IoC 实现方式有两种:依赖注入和依赖查找。依赖查找: Dependency Lookup, DL,容器提供回调接口和上下文环境给组件,程序代码则需要提供具体的查找方式。比较典型的是依赖于 JNDI 系统的查找。依赖注入: Dep原创 2020-10-14 21:52:13 · 269 阅读 · 0 评论 -
快速了解Spring的体系结构与特点
Spring 是一个容器,用于降低代码间的耦合度,根据不同的代码(主业务逻辑、系统级服务)采用 IoC 和 AOP 两种进行的业务逻辑。根据功能的不同,可以将一个系统中的代码分为主业务逻辑与系统级业务逻辑两类。主业务逻辑与系统级业务逻辑的特点:主业务代码间逻辑联系紧密,有具体的专业业务应用场景,复用性相对较低;系统级业务相对功能独立,没有具体的专业业务应用场景,主要是为主业务提供系统级服务,如日志、安全、事务等,复用性强。降低耦合度的方式分为了两类: IoC 与 AOP。 IoC 使得主业务在相互调原创 2020-10-13 19:47:27 · 172 阅读 · 0 评论