1. 简单工厂模式 147BeanFactory的getBean()方法,通过唯一标识来获取Bean对象。是典型的简单工厂模式(静态工厂模式);2. 工厂方法模式 147FactoryBean是典型的工厂方法模式。在配置文件中通过factory-method属性来指定工厂方法,该方法是一个实例方法。3. 单例模式
1. 实现步骤 1381.1 第一步:准备数据库表 ○ 使用t_act表(账户表)1.2 第二步:IDEA中创建一个模块,并引入依赖 ○ spring-context ○ spring-jdbc ○ mysql驱动&nb
1. Spring对JUnit4的支持 136准备工作:pom.xml<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/X
1. 配置步骤: 135● 第一步:配置事务管理器● 第二步:配置通知● 第三步:配置切面记得添加aspectj的依赖:<!--aspectj依赖--> <dependency> <groupId>org.springframework</groupId> <artifact
1. 事务超时 130代码如下@Transactional(timeout = 10)以上代码表示设置事务的超时时间为10秒。表示超过10秒如果该事务中所有的DML语句还没有执行完毕的话,最终结果会选择回滚。默认值-1,表示没有时间限制。这里有个坑,事务的超时时间指的是哪段时间?在当前事务当中,最后一条DML语句执行之前的时间。如果最后一条DML语句后面很有很多业务
代码写在course28中1. 事务属性包括哪些 1231.1 事务中的重点属性: 123● 事务传播行为● 事务隔离级别● 事务超时● 只读事务● 设置出现哪些异常回滚事务● 设置出现哪些异常不回滚事务2. 事务传播行为 1232.1 什么是事
1. 事务概述 1181.1 什么是事务 ○ 在一个业务流程当中,通常需要多条DML(insert delete update)语句共同联合才能完成,这多条DML语句必须同时成功,或者同时失败,这样才能保证数据的安全。 ○ 多条DML要么同时成功,要么同时失败,这叫做事务。
pom.xml<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="ht
1. 实现步骤 1151.1 第一步:编写目标类package com.powernode.spring6.service; /** * 基于xml配置方式的AOP 115 **/ public class UserService {//目标对象 public void logout(){ //目标方法 System.out
1. Spring对AOP的实现包括以下3种方式: 1061.1 三种方式 106● 第一种方式:Spring框架结合AspectJ框架实现的AOP,基于注解方式。● 第二种方式:Spring框架结合AspectJ框架实现的AOP,基于XML方式。● 第三种方式:Spring框架自己实现的AOP,基于XML配置方式。
1. 先导 103IoC使软件组件松耦合。AOP让你能够捕捉系统中经常使用的功能,把它转化成组件。AOP(Aspect Oriented Programming):面向切面编程,面向方面编程。(AOP是一种编程技术)AOP是对OOP的补充延伸。AOP底层使用的就是动态代理来实现的。Spring的AOP使用的动态代理是:JDK动态代理 +
1. 引入依赖 102CGLIB既可以代理接口,又可以代理类。底层采用继承的方式实现。所以被代理的目标类不能使用final修饰。使用CGLIB,需要引入它的依赖:<dependency> <groupId>cglib</groupId> <artifactId>cglib</artifactId>
1. 动态代理 95在程序运行阶段,在内存中动态生成代理类,被称为动态代理,目的是为了减少代理类的数量。解决代码复用的问题。1.1 在内存当中动态生成类的技术常见的包括:95● JDK动态代理技术:只能代理接口。● CGLIB动态代理技术:CGLIB(Code Generation Library)是一个开源项目。是
1. 对代理模式的理解 921.1 生活场景1:牛村的牛二看上了隔壁村小花,牛二不好意思直接找小花,于是牛二找来了媒婆王妈妈。这里面就有一个非常典型的代理模式。牛二不能和小花直接对接,只能找一个中间人。其中王妈妈是代理类,牛二是目标类。王妈妈代替牛二和小花先见个面。(现实生活中的婚介所)【在程序中,对象A和对象B无法直接交互时。】1.2 生活场景
1. 基本介绍 81 JdbcTemplate是Spring提供的一个JDBC模板类,是对JDBC的封装,简化JDBC代码。当然,你也可以不用,可以让Spring集成其它的ORM框架,例如:MyBatis、Hibernate等。接下来我们简单来学习一下,使用JdbcTemplate完成增删改查。2. 环境准备2.1 新建数据库sprin
1. 声明Bean的注解 72负责声明Bean的注解,常见的包括四个:● @Component● @Controller● @Service● @Repository1.1 源码如下:1.1.1 @Component注解package com.powernode.annotation; import ja
1. 回顾注解注解的存在主要是为了简化XML的配置。Spring6倡导全注解开发。我们来回顾一下:● 第一:注解怎么定义,注解中的属性怎么定义?● 第二:注解怎么使用?● 第三:通过反射机制怎么读取注解?注解怎么定义,注解中的属性怎么定义?package com.powernode.annotation; import java.lang.annotati
引入我们的myspring框架<!-- 用myspring框架需要引入框架--> <dependency> <groupId>org.myspringframework</groupId> <artifactId>course15</artifactId&
Spring IoC容器的实现原理:工厂模式 + 解析XML + 反射机制。我们给自己的框架起名为:myspring(我的春天)1. 第一步:创建模块myspring 62采用Maven方式新建Module:myspring打包方式采用jar,并且引入dom4j和jaxen的依赖,因为要使用它解析XML文件,还有junit依赖。
1. 分析方法四要素 59 * 第一要素:调用哪个对象 * 第二要素:调用哪个方法 &nb
1. 什么是Bean的循环依赖 54A对象中有B属性。B对象中有A属性。这就是循环依赖。我依赖你,你也依赖我。比如:丈夫类Husband,妻子类Wife。Husband中有Wife的引用。Wife中有Husband的引用。package com.powernode.spring6.bean; /** * 什么是Bean的循环依赖 54 * 丈夫类 54
1. 什么是Bean的生命周期 49Spring其实就是一个管理Bean对象的工厂。它负责对象的创建,对象的销毁等。所谓的生命周期就是:对象从创建开始到最终销毁的整个过程。什么时候创建Bean对象?创建Bean对象的前后会调用什么方法?Bean对象什么时候销毁?Bean对象的销毁前后调用什么方法?2. 为什么要知道Bean的生命周期
1. Spring为Bean提供了多种实例化方式 43通常包括4种方式。(也就是说在Spring中为Bean对象的创建准备了多种方案,目的是:更加灵活)● 第一种:通过构造方法实例化● 第二种:通过简单工厂模式实例化● 第三种:通过factory-bean实例化● 第四种:通过FactoryBean接口实例化2. 通过构造方法实
1. 工厂方法模式概述 42抽象工厂模式相对于工厂方法模式来说,就是工厂方法模式是针对一个产品系列的,而抽象工厂模式是针对多个产品系列的,即工厂方法模式是一个产品系列一个工厂类,而抽象工厂模式是多个产品系列一个工厂类。抽象工厂模式特点:抽象工厂模式是所有形态的工厂模式中最为抽象和最具一般性的一种形态。抽象工厂模式是指当有多个抽象角色时,使用的一种工厂模式。抽象工厂模
1. 设计模式: 40设计模式是一种可以被重复利用的解决方案。● GoF(Gang of Four),中文名——四人组。● 《Design Patterns: Elements of Reusable Object-Oriented Software》(即
1. singleton 371.1 默认情况下,Spring的IoC容器创建的Bean对象是单例的嘛37来测试一下:package com.powernode.spring6.bean; //Bean的作用域 37 public class SpringBean { }Bean的作用域 37--> <bean id="sb" c
1. p命名空间注入 31目的:简化配置。使用p命名空间注入的前提条件包括两个:● 第一:在XML头部信息中添加p命名空间的配置信息:xmlns:p="http://www.springframework.org/schema/p"● 第二:p命名空间注入是基于setter方法的,所以需要对应的属性提供setter方法。package com.p
set注入专题1接上 代码写在course5中1. set注入专题之级联属性赋值 25要点:● 在spring配置文件中,如上,注意顺序。● 在spring配置文件中,clazz属性必须提供getter方法com.powernode.spring6.beanClazzpackage com.powernode.spring6
1. IoC 控制反转 16● 控制反转是一种思想。● 控制反转是为了降低程序耦合度,提高程序扩展力,达到OCP原则,达到DIP原则。● 控制反转,反转的是什么? ○ 将对象的创建权利交出去,交给第三方容器负责。 ○ 将对象和对象之间关系的维护权交出去,交给第三方
1. 创建步骤 121.1 第一步:添加spring context的依赖,pom.xml配置如下 12<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xml
Copyright © 2005-2024 51CTO.COM 版权所有 京ICP证060544号