
Spring 学习笔记
文章平均质量分 54
Spring 学习
南淮北安
好好学习
展开
-
一篇文章帮你学会 Spring(珍藏版)
文章目录一、学习记录二、扩展记录一、学习记录二、扩展记录原创 2020-10-27 16:22:56 · 675 阅读 · 2 评论 -
(珍藏版)Spring 源码解析:配置文件的加载
文章目录一、简单案例引入二、文件读取一、简单案例引入首先我们创建一个普通的 Maven 项目,引入 spring-beans 依赖:<dependency> <groupId>org.springframework</groupId> <artifactId>spring-beans</artifactId> <version>5.2.6.RELEASE</version></depen转载 2020-06-15 11:00:22 · 593 阅读 · 0 评论 -
(Spring)完全注解实现事务控制
文章目录一、和spring连接数据库相关的配置类二、事务相关的配置三、引入的配置类四、测试类一、和spring连接数据库相关的配置类/** * 和spring连接数据库相关的配置类 */public class JdbcConfig { //引入properties的相关参数 @Value("${jdbc.driver}") private String driver; @Value("${jdbc.url}") private String url;原创 2020-05-20 23:40:54 · 494 阅读 · 1 评论 -
(Spring)基于注解的事务配置方式
文章目录一、pom.xml 配置二、创建 spring 的配置文件导入约束并配置扫描的包一、pom.xml 配置pom.xml与此相同二、创建 spring 的配置文件导入约束并配置扫描的包(1)配置事务管理器并注入数据源<!-- 配置事务管理器 --><bean id="transactionManager"class="org.springframework.jdbc.datasource.DataSourceTransactionManager"><pro原创 2020-05-20 21:32:10 · 756 阅读 · 0 评论 -
(Spring)基于 XML 的声明式事务控制(配置方式)
文章目录一、相关配置二、配置步骤三、bean.xml一、相关配置 <!--spring的开发包--> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>5.0.2.REL原创 2020-05-20 20:28:10 · 574 阅读 · 0 评论 -
Spring中事务控制的API介绍
(1)PlatformTransactionManager:此接口是 spring 的事务管理器,它里面提供了我们常用的操作事务的方法在开发中都是使用它的实现类:真正管理事务的对象:org.springframework.jdbc.datasource.DataSourceTransactionManager 使用 Spring JDBC 或 iBatis 进行持久化数据时使用org.springframework.orm.hibernate5.HibernateTransactionManage原创 2020-05-20 16:45:51 · 631 阅读 · 0 评论 -
一篇文章带你搞定 Spring 使用 JdbcTemplate
文章目录一、在dao 中注入JdbcTemplate二、让 dao 继承JdbcDaoSupport三、两者的区别一、在dao 中注入JdbcTemplatepublic class AccountDaoImpl implements AccountDao { private JdbcTemplate jdbcTemplate; public void setJdbcTemplate(JdbcTemplate jdbcTemplate) { this.jdbcTempl原创 2020-05-19 23:14:08 · 355 阅读 · 0 评论 -
一篇文章带你学会 Spring 中的 JdbcTemplate 增删改查操作
文章目录一、JdbcTemplate 概述二、配置数据源三、bean.xml配置文件四、JdbcTemplate简单示例一、JdbcTemplate 概述它是 spring 框架中提供的一个对象,是对原始 Jdbc API 对象的简单封装。spring 框架为我们提供了很多的操作模板类。操作关系型数据的:JdbcTemplate,HibernateTemplate操作 nosql 数据库的:RedisTemplate操作消息队列的:JmsTemplate我们今天的主角在 spring-jdbc原创 2020-05-19 21:57:07 · 1309 阅读 · 0 评论 -
一篇文章帮你学会 Spring 基于注解的AOP配置
文章目录一、注解使用二、环绕通知一、注解使用@EnableAspectJAutoProxy 相当于在bean.xml 中配置开启注解 AOP 的支持<!-- 配置spring开启注解AOP的支持 --><aop:aspectj-autoproxy></aop:aspectj-autoproxy>切入点的设置表明了对哪些方法进行增强/** * 用于记录日志的工具类,它里面提供了公共的代码 */@Configuration@ComponentScan("原创 2020-05-19 18:13:23 · 900 阅读 · 0 评论 -
一篇文章带你搞定 Spring 中基于XML实现环绕通知
文章目录一、环绕通知配置二、对应的环绕通知一、环绕通知配置<!--环绕通知配置--> <aop:around method="aroundPringLog" pointcut-ref="pt"></aop:around>二、对应的环绕通知Spring框架为我们提供了一个接口:ProceedingJoinPoint。该接口有一个方法proceed(),此方法就相当于明确调用切入点方法。该接口可以作为环绕通知的方法参数,在程序执行时,spring框架会为我们提原创 2020-05-19 16:03:33 · 656 阅读 · 0 评论 -
一篇文章帮你搞定 Spring 基于XML的AOP配置
文章目录一、需求二、基于XML的AOP配置步骤三、切入点表达式说明一、需求模拟一个账户实现类,要求,在业务层实现类之前,需要执行打印日志,即相当于公共的代码/** * 账户的业务层实现类 */public class AccountServiceImpl implements AccountService { @Override public void saveAccount() { System.out.println("执行了保存"); }原创 2020-05-19 15:32:19 · 401 阅读 · 0 评论 -
一篇文章帮你搞定 Spring 中 AOP的相关概念
文章目录一、什么是AOP二、AOP的作用及优势三、AOP相关术语四、学习 spring 中的 AOP 要明确的事五、关于代理的选择一、什么是AOPAOP: 全称是 Aspect Oriented Programming 即: 面向切面编程。简单的说它就是把我们程序重复的代码抽取出来,在需要执行的时候,使用动态代理的技术,在不修改源码的基础上,对我们的已有方法进行增强。二、AOP的作用及优势作用:在程序运行期间,不修改源码对已有方法进行增强。优势:减少重复代码,提高开发效率,维护方便三、AOP原创 2020-05-19 10:09:50 · 425 阅读 · 0 评论 -
通过代理添加事务控制
对案例添加事务控制之后,业务层对象,变得非常复杂,不方便管理和查看,这里通过创建Service的代理对象的工厂,来管理事务文章目录一、BeanFactory二、测试类一、BeanFactory/** * 用于创建Service的代理对象的工厂 */@Componentpublic class BeanFactory { @Autowired private AccountService accountService; @Autowired private Tra原创 2020-05-18 23:14:26 · 599 阅读 · 0 评论 -
一篇文章带你搞定什么是动态代理
文章目录一、动态代理的特点二、基于接口的动态代理三、基于子类的动态代理一、动态代理的特点字节码随用随创建,随用随加载。它与静态代理的区别也在于此,因为静态代理是字节码一上来就创建好,并完成加载装饰者模式就是静态代理的一种体现。(1) 基于接口的动态代理:提供者: JDK 官方的 Proxy 类。要求:被代理类最少实现一个接口。(2)基于子类的动态代理提供者:第三方的 CGLib,如果报 asmxxxx 异常,需要导入 asm.jar。要求:被代理类不能用 final 修饰的类(最终类)。原创 2020-05-18 18:26:12 · 551 阅读 · 0 评论 -
(Spring)对案例添加事务控制
文章目录一、案例中存在的问题二、连接工具类:ConnectionUtils三、控制事务的工具类:TransactionManager四、添加事务控制的业务层实现类五、持久层事务代码的配置一、案例中存在的问题在前面账户的案例中增加一个转账的操作: @Override public void transfer(String sourceName, String targetName, Float money) { //2.1根据名称查询转出账户 Account so原创 2020-05-18 07:50:01 · 501 阅读 · 0 评论 -
Spring 整合 Junit
文章目录一、存在的问题二、配置步骤三、测试类四、为什么不把测试类配到 xml 中一、存在的问题测试类中每个测试方法都需要包含这两行代码,不写就无法获取容器,造成空指针异常解决思路:针对上述问题,我们需要的是程序能自动帮我们创建容器。一旦程序能自动为我们创建 spring 容器,我们就无须手动创建了,问题也就解决了。我们都知道, junit 单元测试的原理(在 web 阶段课程中讲过),但显然, junit 是无法实现的,因为它自己都无法知晓我们是否使用了 spring 框架,更不用说帮我们创建原创 2020-05-17 19:03:34 · 838 阅读 · 0 评论 -
一篇文章带你学习 Spring 的纯注解配置(Configuration/ComponentScan/Bean/Import/PropertySource)
文章目录一、待改造的问题二、引入的注解配置1. @Configuration2. @ComponentScan3. @Bean4. @Import5. @PropertySource三、配置类SpringConfiguration四、配置类 JdbcConfig五、测试类六、注意一、待改造的问题基于注解的Spring IOC中的 bean 对象的特点和基于XML配置的spring的IOC是一模一样的。可以看出正是这里的关键配置需要告诉Spring框架要扫描的包此外还有数据源和JdbcTemplat原创 2020-05-17 17:41:07 · 994 阅读 · 0 评论 -
(Spring)基于注解实现账户的CRUD操作案例
文章目录一、bean.xml二、AccountDaoImpl.java三、AccountServiceImpl.java四、测试类一、bean.xml<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmln原创 2020-05-16 23:49:41 · 460 阅读 · 0 评论 -
使用spring的IOC实现账户的CRUD
需求:实现账户的CRUD操作技术要求:(1)使用 spring 的 IoC 实现对象的管理(2)使用 QueryRunner 作为持久层解决方案(3)使用 c3p0 数据源一、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-原创 2020-05-16 16:31:08 · 482 阅读 · 0 评论 -
(Spring)bean.xml 和 pom.xm 的配置
(1)xml 配置格式<?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/schema/beans原创 2020-05-20 23:49:40 · 1790 阅读 · 0 评论 -
学习 Spring 基于注解的IOC配置一篇文章就够了
注解配置和 xml 配置要实现的功能都是一样的,都是要降低程序间的耦合,只是配置的形式不一样关于实际的开发中到底使用xml还是注解,每家公司有着不同的使用习惯。所以这两种配置方式我们都需要掌握。适用注解时的bean.xml配置:<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.原创 2020-05-15 22:17:27 · 489 阅读 · 0 评论 -
Spring 的 @resource 注解不可用的解决办法
不知道怎么回事,学习Spring时,其他注解都好使,就@resource这个注解出现了问题,通过搜索发现,可能是注解被 jdk 占用了解决办法需要在pom.xml中加入相关的依赖即可使用 <!--该依赖主要是针对 @Resource 使用--> <dependency> <groupId>javax.annotation</groupId> <artifactId>javax.an原创 2020-05-15 20:29:59 · 4285 阅读 · 8 评论 -
Spring 的依赖注入
文章目录一、依赖注入的概念二、构造函数注入三、set 方法注入(更常用的方式)四、注入集合属性一、依赖注入的概念依赖注入: Dependency Injection,它是 spring 框架核心 IOC 的具体实现,具体点就是依赖关系的维护称之为依赖注入我们的程序在编写时, 通过控制反转, 把对象的创建交给了 spring,但是代码中不可能出现没有依赖的情况。IOC 解耦只是降低他们的依赖关系,但不会消除。 例如:我们的业务层仍会调用持久层的方法。那这种业务层和持久层的依赖关系, 在使用 spri原创 2020-05-14 20:40:36 · 6673 阅读 · 1 评论 -
(Spring)IOC中bean标签和管理对象的细节
文章目录一、实例化Bean的三种方式二、bean标签三、bean 的作用范围和生命周期一、实例化Bean的三种方式第一种方式:使用默认无参构造函数在spring的配置文件中使用bean标签,配以id和class属性之后,且没有其他属性和标签时。采用的就是默认构造函数创建bean对象,此时如果类中没有默认构造函数,则对象无法创建。在默认情况下:它会根据默认无参构造函数来创建类对象。如果 bean 中没有默认无参构造函数,将会创建失败。 <bean id="accountService" cla原创 2020-05-14 12:53:12 · 471 阅读 · 0 评论 -
使用 spring 的 IOC 解决程序耦合
文章目录一、准备Spring 的开发包二、基于XML的配置三、Spring基于XML的IOC细节四、BeanFactory和ApplicationContext 的区别一、准备Spring 的开发包官网:https://spring.io/下载地址:https://repo.spring.io/libs-release-local/org/springframework/spring/解压(Spring目录结构)这里选用的是 spring-framework-5.0.2.RELEASE注:sp原创 2020-05-14 10:10:30 · 480 阅读 · 0 评论 -
一篇文章带你详细理解 Spring 中的控制反转-Inversion Of Control
Bean:计算机英语中,表示可重用组件的意思JavaBean:用 Java 语言编写的可重用组件,Javabean > 实体类可重用:一次创建,可被多次使用文章目录一、创建工程BeanFactory二、分析工厂模式的问题并改造三、改写 BeanFactory四、控制反转-Inversion Of Control一、创建工程BeanFactory已经知道采用工厂方式进行解耦,也就是通过BeanFactory.java创建我们需要的对象,这里我们需要创建service对象和dao对象,这样当使原创 2020-05-12 20:25:53 · 1225 阅读 · 5 评论 -
一篇文章带你搞定程序的耦合和解耦
文章目录一、什么是程序的耦合二、代码中的非必要依赖示例一、什么是程序的耦合耦合性(Coupling),也叫耦合度,是对模块间关联程度的度量。耦合的强弱取决于模块间接口的复杂性、调用模块的方式以及通过界面传送数据的多少。模块间的耦合度是指模块之间的依赖关系,包括控制关系、调用关系、数据传递关系。模块间联系越多,其耦合性越强,同时表明其独立性越差( 降低耦合性,可以提高其独立性)。 耦合性存在于各个领域,而非软件设计中独有的,但是我们只讨论软件工程中的耦合。在软件工程中, 耦合指的就是就是对象之间的依赖原创 2020-05-12 15:12:14 · 5670 阅读 · 0 评论 -
Spring 概述
文章目录一、Spring 是什么二、Spring 的发展历程三、Spring 的优势四、Spring 的体系结构一、Spring 是什么Spring 是分层的 Java SE/EE 应用 full-stack 轻量级开源框架,以 IoC(Inverse Of Control:反转控制)和 AOP(Aspect Oriented Programming:面向切面编程)为内核,提供了展现层 SpringMVC 和持久层 Spring JDBC 以及业务层事务管理等众多的企业级应用技术,还能整合开源世界众多著原创 2020-05-10 20:21:25 · 391 阅读 · 0 评论