Spring
文章平均质量分 88
前路无畏
自律的艰辛总甜过懊悔的苦果!
专注于java后端技术及解决方案,善于总结,分享!
自律的艰辛总甜过懊悔的苦果!
专注于java后端技术及解决方案,善于总结,分享!
自律的艰辛总甜过懊悔的苦果!
专注于java后端技术及解决方案,善于总结,分享!
展开
-
@EnableTransactionManagement的使用及分析
使用spring事务的时候有一个总开关@EnableTransactionManagement1. 事务管理器Spring Boot 使用事务非常简单使用注解 @EnableTransactionManagement 开启事务支持后在访问数据库的Service方法上添加注解 @Transactional 便可关于事务管理器,不管是JPA还是JDBC等都实现自接口 PlatformTransactionManager 。如果你添加的是 spring-boot-starter-jdbc 依赖,原创 2021-04-10 15:08:30 · 15652 阅读 · 0 评论 -
23-Spring的高级注解(Spring3.x 及以上)
先把目标说清楚:高级注解完成之后我们要达到怎么样效果呢?完全取消applicationContext.xml配置文件。完全使用java代码对JavaEE开发。1.Spring集成LogBack日志集成pom文件<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchem原创 2020-11-08 14:36:17 · 16351 阅读 · 0 评论 -
22-Spring的基础注解(Spring2.x)
先告诉大家,此阶段不能完全消灭applicationContext.xml,但是能取得部分胜利。1.对象创建相关注解要想让注解生效,我们需要告诉Spring到那个地方去扫描注解吧。要不然他在只能也无法找到需要扫描的注解。在appplicationContext.xml中配置扫描注解的包:<context:component-scan base-package="com.yuhl"/>1.1@Component定义一个类User.javapackage com.yuhl.dom原创 2020-11-06 10:33:14 · 12907 阅读 · 0 评论 -
21-Spring注解基础概念
上一篇:20-Spring与MVC框架整合思想-方法论层面https://blog.csdn.net/fsjwin/article/details/1095037861.什么是注解编程指的是在类或者方法上加入特定的注解(@XXX),完成特定功能的开发。@Componentpublic class XXX{ 业务逻辑}比如我们前面使用的@Aspect就是一个注解还有我们自定义的@Log注解2.为什么要掌握注解编程1. 注解开发方便 代码简洁 开发速度大大提高2. Spring原创 2020-11-05 11:26:32 · 13875 阅读 · 0 评论 -
19-Spring中的事务属性(Transaction Attribute)
上一篇:18-Spring事务控制@Transactional https://blog.csdn.net/fsjwin/article/details/1094973051.什么是事务属性属性:描述事务特征的一系列值性别、身高、年龄、体重等... ...事务的属性:就是能在@Transactional(这个括内些的值),一以下为5中事务属性1.隔离级别2.传播行为3.只读属性4.超时属性5.异常属性下面的例子就是很好的说明:@Transactional( isol原创 2020-11-05 08:53:20 · 14610 阅读 · 0 评论 -
18-Spring事务控制@Transactional
1.什么是事务事务:首先要明白事务是数据库的功能,我们写程序只不过是调用数据库的事务功能而已。事务的4特点: A C I D1. A 原子性 atomicity2. C 一致性 consistency3. I 隔离性 Isolation4. D 持久性 durability 2.如何控制事务不同的框架有不同的控制事务的方式:jdbc怎么控制事务:1. 开启事务:Connection.setAutoCommint(false);2. 提交事务:Connection.commint();原创 2020-11-04 20:51:36 · 13565 阅读 · 0 评论 -
17-Spring持久层框架整合
上一篇:16-Spring 基于注解的AOP编程、AOP总结https://blog.csdn.net/fsjwin/article/details/1094827681.为什么Spring要与持久层框架进行整合spring是一个优秀的框架,他的优秀支持就是能整合所有程序员想要让他整合的框架,这里所说的持久成也不例外。JavaEE开发需要持久层进行数据库的访问操作,spring当然不让。JDBC Hibernate MyBatis进行持久开发过程存在大量的代码冗余Spring基于模板设计模式对原创 2020-11-04 19:15:23 · 14399 阅读 · 0 评论 -
16-Spring 基于注解的AOP编程、AOP总结
上一篇:15-Spring AOP的底层实现原理JDKProxy&CGLIB https://blog.csdn.net/fsjwin/article/details/109481104前面我们介绍的aop编程完全可以满足项目的需要,但是有没有更为简便的方式呢?当然有了,就是aspectJ为我们提供的大餐,使用注解的aop编程下面就开启我们的大仓之旅值得注意的是不管是aop的注解编程,还是在xml中就行配置,他们的主要矛盾是一样的,矛盾的主要方面也是一样的。即目标对象增强功能切入点原创 2020-11-04 09:26:55 · 13611 阅读 · 0 评论 -
15-Spring AOP的底层实现原理JDKProxy&CGLIB
前一篇:14-Spring AOP编程https://blog.csdn.net/fsjwin/article/details/109480097前面我们讨论动静态理的时候说过,想要实现动态代理需要满足三个条件:目标对象接口 代理对象和目标对象的相同接口增强功能1.JDK proxy动态代理原理先来对jdk的proxy底层原理进行分析。通过下面一幅图,应该可以对jdkproxy的代理细节有个深入的认识:2.JDK proxy代码JDKProxy.javapackage proxy.原创 2020-11-03 23:50:08 · 12715 阅读 · 0 评论 -
14-Spring AOP编程
前一篇:13-Spring动态代理https://blog.csdn.net/fsjwin/article/details/109462904AOP编程 就是我们前面所说的动态代理开发。前面我们说过动态代理代发(AOP)开发的四个步骤目标对象增强代码、额外功能(MethodInterceptor)切入点组装切面:切入点与增强代码形成切面AOP概念本质就是Spring得动态代理开发,通过代理类为原始类增加额外功能。好处:利于原始类的维护切面 = 切入点 + 额外功能原创 2020-11-03 21:50:04 · 14019 阅读 · 0 评论 -
13-Spring动态代理
上一篇:12-静态代理设计模式-为了引出spring动态代理https://blog.csdn.net/fsjwin/article/details/109461867spring的动态代理很高端吗?其实本质上就是对静态代理的抽离,封装,试听高端的,目的就一个,更有利于程序员的使用,下面来介绍一下spring动态代理。1.Spring动态代理的概念概念:通过代理类为原始类(目标类)增加额外功能好处:利于原始类(目标类)的维护从这点看和静态代理一样一样的2.Spring动态代理相关依赖的引入&原创 2020-11-03 21:11:39 · 12831 阅读 · 0 评论 -
12-静态代理设计模式-为了引出spring动态代理
上一篇:11-Spring的后置处理器BeanPostProcesses https://blog.csdn.net/fsjwin/article/details/109458672背景:在我们开发的web过程中我们分为controller、service、dao三层,那么那层最为重要呢?- 答案是service层。那么service中有那些内容呢?-service中的内容分为两块:1. 站在设计者角度上的核心业务计算逻辑和dao的调用 我们称之为【service核心】2. 站在业务角度的事务原创 2020-11-03 09:53:40 · 13460 阅读 · 0 评论 -
11-Spring的后置处理器BeanPostProcesses
前一篇:10-Spring自定义类型转化器https://blog.csdn.net/fsjwin/article/details/109444479如果我们相对bean的创建过程进行精细化的控制可以做到吗?比如在我们注入bean的属性后,我们想对注入的属性进行修改可以吗?有的人可能会说不可能吧这可是一瞬间的事情呀。错误,spring提供相关的接口可以对bean的初始化前后初始化后对bean进行精细化的操作,这就是bean的后置处理器BeanPostProcessor。1.先给出示意图实现B原创 2020-11-02 22:21:49 · 13370 阅读 · 0 评论 -
10-Spring自定义类型转化器
前一篇:09-Spring配置文件参数化,抽取properties文件https://blog.csdn.net/fsjwin/article/details/109440615在spring中是否已经有了日期类型的转换器呢?答案是肯定的有。但是他支持的格式是2020/11/01 并不支持2020-11-01的格式,这样我们在注入的时候就会出现问题。这类我们就来解决这个问题,一点扩面,来掌握自定义类型转换器。1.使用默认的日期转换器实体类package base.domain;impor原创 2020-11-02 17:45:11 · 13461 阅读 · 0 评论 -
09-Spring配置文件参数化,抽取properties文件
在spring的xml配置文件中。有些String类型的数据,对于运维人员十分不友好。比如数据库连接、用户名、密码。有没有好的办法把它们抽离呢?有的,spring提供了相关的技术支持。即目标就是把xml中类似与这类的配置文件提取出来。步骤如下:小配置化的配置文件 db.propertiesjdbc.driver=com.mysql.jdbc.Driverjdbc.url=jdbc:mysql://127.0.0.1:3306/spring?useSSL=falsejdbc.username原创 2020-11-01 23:31:31 · 13315 阅读 · 0 评论 -
08-Spring中对象的生命周期(Bean的声明周期)
上一篇:07-Spring对象的创建次数 singleton|prototype https://blog.csdn.net/fsjwin/article/details/109427054对象均有声明生命,而spring对对象的创建生命周期有spring控制,我们有必要其探究其对对象声明周期的创建,更有利于我们更为微观的掌握spring生命周期:对象的创建、存活、消亡全过程声明周期分为三个阶段创建初始化销毁1.对象创建Product.java代码交代package base.lif原创 2020-11-01 20:36:24 · 13880 阅读 · 0 评论 -
07-Spring对象的创建次数 singleton|prototype
上一篇:06-Spring复杂对象的创建 https://blog.csdn.net/fsjwin/article/details/109411629为什么要考虑对象的创建次数呢?不是每个对象每次均需要创建新的,这里对象唷两种,一种是单利,整个程序就一个对象如SqlSessionFacrory。又如下面的对象每次均需要创建新的如Connection、Action(struts2)。有效的控制对象的控制次数可以控制内存的开销。1.控制对象的创建次数什么对象需要是单例的呢?SqlSession原创 2020-11-01 15:10:00 · 12589 阅读 · 0 评论 -
06-Spring复杂对象的创建
上一篇:05-Spring反转控制IOC 与 依赖注入DI概念https://blog.csdn.net/fsjwin/article/details/109411172什么是复杂对象?不能通过new的方式创建出来的对象就是复杂对象。下面试对简单对象和复杂对象的说明,这样的话对简单对象和复杂对象就有了具体的认识。这里非常重要。学习一定要有调性,有节奏,这样掌握起来就得心应手。对于复杂对象的创建无法使用new的方式创建了。但是此路不通,别路通,下面介绍三种创建复杂对象的方式:1.FactoryB原创 2020-11-01 11:15:09 · 13615 阅读 · 0 评论 -
05-Spring反转控制IOC 与 依赖注入DI概念
前一篇:04-Spring注入(Injection) https://blog.csdn.net/fsjwin/article/details/1094077881.控制反转(IOC Inverse of Control)-是思想反转:就是原本由代码创建的成员变量,转移到有spring工厂和配置文件中来完成。好处:解耦合、工程模式实现。2.依赖注入(Dependency Injection DI)-是具体实现方式注入:就是使用spirng工厂和配置文件,一旦发现依赖,就可以把一个类作为成员变量。原创 2020-11-01 09:36:19 · 16301 阅读 · 0 评论 -
04-Spring注入(Injection)
上一篇:03-Spring和日志框架log4j整合https://blog.csdn.net/fsjwin/article/details/1094076271.什么是注入通过spring工厂和配置文件为spring的成员变量赋值,就叫注入工厂配置文件成员变量赋值2.为什么需要注入一般的写法 @Test public void test6() { ApplicationContext ctx = new ClassPathXmlApplicationCo原创 2020-11-01 08:04:22 · 14494 阅读 · 0 评论 -
03-Spring和日志框架log4j整合
上一篇:02-Spring的核心API https://blog.csdn.net/fsjwin/article/details/109406451为什要让日志框架和spring整合。整合后可以看到spring的debug,info,error等日志了。spring1,2,3整合commos-loggingspring4,5整合log4j2、logback这里整合log4j引入log4j的pom依赖创建log4j.properties文件配置log4j.properties即可使用 &l原创 2020-10-31 20:44:07 · 12850 阅读 · 2 评论 -
02-Spring的核心API
通过上一章对工厂模式的了解,这章开始正式进入spring搞得腹地,一探究竟。凡事学习就要抓住主要矛盾,而spring的核心api就是主要矛盾1.Spring环境搭建1. JDK1.8+2. Maven3.6+3. IDEA2020+4. SpringFramework 5.1.4 5. SpringFramework 官方网站 www.spring.io1.1 pom文件引入spring相关依赖maven仓库地址:https://mvnrepository.com/artifact/org原创 2020-10-31 20:25:55 · 14017 阅读 · 1 评论 -
01-Spring的初体验:spring工厂的化过程
1.没有Spring之前的世界在么有spring之前,使用的是EJB开发web应用。他的优点就不说了。关键有一下缺点:运行环境苛刻必须在ejb容器中运行如was, webservice等,必须针对使用的服务器进行开发,需要实现服务器的某些接口才行代码移植性差如果想把服务器从was修改为webservice不可能,需要重新开发,实现webservice接口。需要花钱呢。在中国行不通。哈哈2.Spring来了Spring是一个轻量级的JavaEE解决方案,整合众多优秀的设计模式。为什么首原创 2020-10-31 18:46:57 · 12729 阅读 · 0 评论 -
Spring中同一类@Transactional修饰方法相互调用的坑
1.问题1的提出class AServiceImpl{ @AutoWide BService bService; @Transactional public void a() { bService.b(); bService.c(); int i =10/0; } }class BServiceImpl{ @Transactional(propagation = Propagation.REQUIRED,timeout原创 2020-10-21 22:40:37 · 16792 阅读 · 2 评论