
spring
原来是小别扇
这个作者很懒,什么都没留下…
展开
-
Spring5(26) —— 学完Spring我们应该掌握并能够运用的知识点
1.spring使用步骤 Spring5(3) —— 第一个Spring程序. 2.spring的IOC容器实例化bean的方式 Spring5(4) —— IOC创建对象的方式. 3.spring依赖注入之set注入/对象复杂属性赋值 Spring5(7) —— 依赖注入之Set注入/对象复杂属性赋值. 4.spring的IOC容器中的bean自动装配之byName和byType Spring5(10) —— Bean的自动装配. 5.spring的IOC容器中的bean自动装配之注解方式原创 2020-09-19 21:30:29 · 1420 阅读 · 0 评论 -
Spring5(25) —— 回顾和总结
spring就是一个轻量级的、控制反转(IOC)的、面向切面编程(AOP)的免费的开源框架 轻量级:直接导入jar包就能用 控制反转(IOC) 首先IOC是一种思想,不是一种技术,它能指导我们如何设计出松耦合、更优良的程序 理解好Ioc的关键是要明确 “谁控制谁?控制什么?为什么要反转?反转了什么?” 【谁控制谁?】IOC容器控制了对象的创建 【控制什么?】IOC控制了对象对 依赖对象 的获取 【为什么要反转?】一个类的内部使用了10个其他类, 【反转了什么?】依赖对象的获取被反转了 .原创 2020-09-19 17:36:58 · 135 阅读 · 0 评论 -
Spring5(24) —— Spring声明式事务
1.Spring中的事务 spring中的事务分为两类 声明式事务:就是使用AOP实现事务【推荐使用,因为不会修改源代码】 编程式事务:需要在原代码中实现事务的管理,需要修改原来的代码 2.使用 开启事务 <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <constru原创 2020-09-18 16:04:24 · 249 阅读 · 0 评论 -
Spring5(23) —— 回顾事务
目录1.回顾事务2.代码实现1.项目搭建2.代码实现 1.回顾事务 事务特性:要么都成功,要么都失败 事务在项目开发中十分重要,涉及到数据一致性问题,不能马虎 它用于确保数据一致性 事务的ACID原则 原子性:事务不可分割 一致性:事务执行不管成不成功,所有人的数据要一致;比如转账,那么参与转账双方的钱的总和应该保持不变 隔离性:操作同一数据的不同事务之间相互独立,互不干扰 持久性:事务成功之后,其结果必须影响数据库中的数据;即使事务失败,也要求使用某种机制恢复数据 2.代码实现 1.项目搭建原创 2020-09-18 15:13:24 · 130 阅读 · 0 评论 -
Spring5(22) —— 整合MyBatis方式2
目录1.使用步骤2.对比两种方式 1.使用步骤 创建一个mapper接口的实现类,继承SqlSessionDaoSupport且同时实现mapper接口package com.thhh.mapper; import com.thhh.pojo.User; import org.mybatis.spring.support.SqlSessionDaoSupport; import java.util.List; public class UserMapperImpl2 extends SqlSe原创 2020-09-18 12:52:29 · 188 阅读 · 0 评论 -
Spring5(21) —— 整合MyBatis方式1
1.什么是MyBatis-Spring MyBatis-Spring 会帮助你将 MyBatis 代码无缝地整合到 Spring 中。它将允许 MyBatis 参与到 Spring 的事务管理之中,创建映射器 mapper 和 SqlSession 并注入到 bean 中,以及将 Mybatis 的异常转换为 Spring 的 DataAccessException。最终,可以做到应用代码不依赖于 MyBatis,Spring 或 MyBatis-Spring原创 2020-09-18 11:34:36 · 203 阅读 · 0 评论 -
Spring5(20) —— 回顾MyBatis
1.整合MyBatis 导入jar包 junit mybatis mysql数据库 spring相关 AOP织入 mybatis-spring【新知识点】 <?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:原创 2020-09-17 22:58:28 · 175 阅读 · 0 评论 -
Spring5(19) —— AOP实现方式3
目录1.代码实现2.环绕通知3.Spring实现代理模式的方式4.小结 方式1:使用Spring的API接口,就是我们使用BeforeLog和AfterLog实现的那两个接口,就是Spring的API接口【通过实现spring的API】 方式2:自定义实现AOP【通过定义一个切面类实现】 方式3:使用注解实现 1.代码实现 相同的需求 定义一个切面类package com.thhh.aspect; import org.aspectj.lang.a原创 2020-09-17 20:24:25 · 189 阅读 · 0 评论 -
Spring5(18) —— AOP实现方式2
方式1:使用Spring的API接口,就是我们使用BeforeLog和AfterLog实现的那两个接口,就是Spring的API接口【通过实现spring的API】 方式2:自定义实现AOP【通过定义一个切面类实现】 1.代码实现 相同的需求,使用方法2实现 定义一个切面类 配置spring容器<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.spring.原创 2020-09-17 19:22:40 · 169 阅读 · 0 评论 -
Spring5(17) —— AOP实现方式1
记住:AOP的底层就是动态代理 1.什么是AOP AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期间动态代理实现程序功能的统一维护的一种技术。AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率 2.AOP.原创 2020-09-17 18:46:12 · 224 阅读 · 0 评论 -
Spring5(16) —— 动态代理模式
动态代理和静态代理中涉及的角色一样 抽象业务 真实业务 代理角色 真实角色 动态代理的代理类是动态生成的,不是我们手动new出来的 动态代理分为两大类 基于接口的动态代理:JDK的动态代理 基于类的动态代理:cglib Java字节码实现:javasist ...原创 2020-09-17 16:17:33 · 231 阅读 · 0 评论 -
Spring5(15) —— 静态代理模式
目录1.为什么要学习代理模式?2.静态代理3.举例4.代码实现5.代理模式的好处与缺点6.加深理解 1.为什么要学习代理模式? 因为这就是spring AOP的底层 代理模式的分类: 静态代理 动态代理 2.静态代理 角色分析 抽象业务:用来指定要实现什么功能 真实业务:去具体实现抽象业务 代理角色:代理真实业务,真实业务一般就去实现核心功能,而代理角色存在的意义就是在核心业务实现的前后添加一些前戏和原创 2020-09-16 17:02:42 · 209 阅读 · 0 评论 -
Spring5(14) —— 小结spring
回顾1-13的博客到底讲了些什么 首先简单介绍了spring的历史和到哪里获取spring的资源 IOC理论推导 简单总结:添加一个set方法 复杂升华:思想转变 总的来说就是通过在service添加一个set方法,客户端想使用哪一个dao接口实现类就通过set方法传入即可,将整个功能怎么实现(底层调用哪个实现类实现)的决定权从程序员的手上转移到了用户/客户端的手上,这就是IOC(控制反转)思想原型;虽然只是添加了一个set方法,但是这是思想上的一大转变 怎么使用spring 所有的类都需要装配到原创 2020-09-16 14:40:41 · 131 阅读 · 0 评论 -
Spring5(13) —— 使用Java的方式配置spring
目录1.使用JavaConfig实现配置2.使用步骤3.解析1. Bean的手动装配2. Bean的自动装配4.@Import(子配置文件.class) 1.使用JavaConfig实现配置 即可以步使用spring配置文件,全权交给Java来实现配置,即JavaConfig的作用就是使用Java程序来彻底代替XML文件 JavaConfig是spring的一个子项目,在spring4之后它变成了核心功能 2.使用步骤 创建一个config类 在原创 2020-09-16 14:18:59 · 357 阅读 · 0 评论 -
Spring5(12) —— Spring注解开发
目录使用准备环境搭建1.bean / @Component2.属性 / @Value("属性值")3.衍生的注解4.自动装配5.作用域 / @Scope("bean的作用域")6.小结 使用准备 在spring4之后,要使用注解开发,必须保证导入aop的包 使用注解开发的时候还要引入context约束,以及增加注解支持 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org原创 2020-09-16 10:55:28 · 208 阅读 · 0 评论 -
Spring5(11) —— 使用注解实现自动装配
1.使用前提 导入约束: xmlns:context=“http://www.springframework.org/schema/context” 配置注解的支持: context:annotation-config/【容易忘记】 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.原创 2020-09-16 09:48:04 · 768 阅读 · 0 评论 -
Spring5(10) —— Bean的自动装配
目录1.测试/项目搭建2.自动装配1.ByName自动装配2.ByType自动装配3.小结 自动装配是spring满足bean依赖的一种方式 自动装配:即spring会在上下文中寻找,并自动给bean装配属性 在spring中有3种装配的方式 在XML中显式/手动的装配bean 在Java中显式/手动的装配bean 隐式的自动装配bean【重要】 1.测试/项目搭建 【环境搭建】一个人有两个宠物????和???? 【分析】OOP思想:3个类——person、cat、dog 创建新项目 Spr原创 2020-09-15 23:30:31 · 186 阅读 · 0 评论 -
Spring5(9) —— Bean的作用域
1.bean的作用域 我们现在只需要掌握singleton和prototype,后面4个显然是在web开发的时候才会用到的东西,现在可以先不看 2.singleton/单例模式 (默认) 即单例模式是spring的配置文件/容器中bean的默认作用域,即我们在spring中注册的类只会实例化一个对象返回给我们调用 单例模式就是在整个作用期间,一个类只创建一个实原创 2020-09-15 22:34:53 · 254 阅读 · 0 评论 -
Spring5(8) —— c和p命名空间注入
目录1.p命名空间2.c命名空间3.注意点 1.p命名空间 p命名空间对应我们spring依赖注入的方式2 —— set注入 上图中的文字有误,应该是p命名空间 从上面的例子我们就可以看出,要使用p命名空间首先需要导入p命名空间的约束,才能正常使用 p(property)命名空间的作用:简化参数赋值的..原创 2020-09-15 20:32:35 · 419 阅读 · 0 评论 -
Spring5(7) —— 依赖注入之Set注入/对象复杂属性赋值
1.完成student对象中所有属性的依赖注入 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schem.原创 2020-09-15 19:58:06 · 220 阅读 · 0 评论 -
Spring5(6) —— DI依赖注入
依赖注入:本质就是set注入!即依赖注入就是一个赋值操作,属性没有对应的set方法是不能实现这个属性的依赖注入的 依赖:bean对象的创建依赖于spring容器 注入:bean对象中的所有属性,由spring容器来注入/赋值 如果我们去吧name属性的set方法删除 spring中依赖注入的3种方式 1.使用构造器注入 就是前面我们在spring配置文件中实现的按照构造器实例化bean对象 2.使用set方式注入【重点】 3.其他/拓展方式注.原创 2020-09-15 19:28:36 · 155 阅读 · 0 评论 -
Spring5(5) —— Spring配置说明
目录1.alias标签2.bean标签3.import标签 上面的5个标签中除去根标签beans,其他4个里除了description我们不用掌握之外,其他3个都要掌握,注意,这些标签都是在根标签beans里面使用的 既然根标签beans里存放的是bean节点,即对象,那么剩下的几个标签理所应当的就是为bean服务的了 1.alias标签 为一个注册的对象取别名,注意:原创 2020-09-15 18:09:15 · 333 阅读 · 0 评论 -
Spring5(4) —— IOC创建对象的方式
目录1.调用类的无参构造创建对象2.调用类的有参构造创建对象3.验证在获取容器的时候它会将全部注册的类都实例化的结论5.验证注册一次就只会产生一个对象的结论 1.调用类的无参构造创建对象 使用类中的无参构造创建对象,默认就是使用这种方法 从上面的例子我们可以得出3个结论 只要我们创建了一个POJO类,就应该马上去spring配置文件中注册这个类 注册在spring配置文件中的类会在容器被获取的时刻将注册在其中的类全部实例化,而不是我们指定回去某一个对象的时候再去为我们实例化 容器实例化注册在其原创 2020-09-15 16:56:38 · 172 阅读 · 0 评论 -
Spring5(3) —— 第一个Spring程序
目录1.创建POJO2.编写配置文件3.测试4.使用Spring改造上一个例子1.配置文件2.测试5.小结6.解析配置文件中的一些节点的意义 1.创建POJO package com.thhh.pojo; public class Hello { private String str; public Hello() { } public Hello(String str) { this.str = str; } public Stri原创 2020-09-15 15:39:15 · 167 阅读 · 0 评论 -
Spring5(2) —— IOC理论推导
IOC是一种思想 目录1.问题引出2.IOC定义 1.问题引出 原来我们要实现一个业务功能供用户调用的步骤 UserDao接口设计 —— 对于数据库的操作的接口设计package com.thhh.dao; public interface UserDao { public void getUser(); } UserImpl实现类 —— 对于数据库的操作的接口实现package com.thhh.dao; public class UserDaoImpl implements Use原创 2020-09-15 14:39:53 · 207 阅读 · 0 评论 -
Spring5(1) —— Spring简介
0.什么是SPRING Spring : 春天 —>给软件行业带来了春天 2002年,Rod Jahnson首次推出了Spring框架雏形interface21框架(SPRING框架的前身) 2004年3月24日,Spring框架以interface21框架为基础,经过重新设计,发布了1.0正式版 很难想象Rod Johnson的学历 , 他是悉尼大学的博士,然而他的专业不是计算机,而是音乐学 Spring理念 : 使现有技术更加实用 . 本身就是一个大杂烩 , 整合现有的框架技术 1.链接 S原创 2020-09-15 08:40:21 · 207 阅读 · 0 评论