![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Spring
文章平均质量分 76
韩_师兄
talk is cheap, show me the code
展开
-
关于TransactionSynchronizationManager的使用
在遇到一些场景, 如上一步保存的数据, 在接下来的异步处理的业务中有使用,但是因为保存数据过程中,可能出现异常,导致数据回滚,那么后续的业务操作也需要放弃. 对于上述业务场景, 可以使用TransactionSynchronizationManager解决问题原创 2023-06-29 22:57:34 · 942 阅读 · 0 评论 -
Spring中新功能之WebFlux操作
Flux 和 Mono 都是数据流的发布者,使用 Flux 和 Mono 都可以发出三种数据信号: 元素值,错误信号,完成信号,错误信号和完成信号都代表终止信号,终止信号用于告诉订阅者数据流结束了,错误信号终止数据流同时把错误信息传递给订阅者.Reactor 有两个核心类,Mono 和 Flux,这两个类实现接口 Publisher,提供丰富操作符。1 SpringWebflux 基于 Reactor,默认使用容器是 Netty,Netty 是高性能的 NIO 框架,异步非阻塞的框架.原创 2022-10-15 22:29:03 · 720 阅读 · 0 评论 -
Spring中新功能之WebFlux介绍
1 Spring的Webflux 说明2 响应式编程1 概述2 案例响应式编程是一种面向数据流和变化传播的编程范式。这意味着可以在编程语言中很方便 地表达静态或动态的数据流,而相关的计算模型会自动将变化的值通过数据流进行传播。电子表格程序就是响应式编程的一个例子。单元格可以包含字面值或类似"=B1+C1"的公式,而包含公式的单元格的值会依据其他单元格的值的变化而变化。原创 2022-10-14 23:18:14 · 347 阅读 · 0 评论 -
关于日常业务中常见公共字段的处理方法
搭建一个普通的Spring Boot项目, 能正常启动.User类// 姓名 private String name;// 创建人 private String crtUser;// 创建时间 private Date crtTime;// 更新人 private String updUser;// 更新时间 private Date updTime;}Create。原创 2022-10-13 21:07:04 · 228 阅读 · 0 评论 -
关于@configurationproperties注解的使用
ConfigurationProperties是spring Boot提供读取配置文件的一个注解.源码/*** }value和prefix属性,通过指定的前缀,绑定配置文件中的配置,该注解可以放在类上,也可以放在方法上。ignoreUnknownFields属性,表示 未知的属性, 可以查找出在yml中声明了,但是没有用的注解,默认是true,即有多余配置会忽略不管;设置为false时, 如存在无用配置,即启动会报错提示.原创 2022-10-12 21:15:31 · 845 阅读 · 0 评论 -
Spring5框架新功能
1 Spring5 已经移除 Log4jConfigListener,官方建议使用 Log4j22 Spring5 框架整合 Log4j2@Nullable 注解可以使用在方法上面,属性上面,参数上面,表示方法返回可以为空,属性值可以 为空,参数值可以为空方法上表示方法返回值可以为空方法参数表示方法参数可以为空类属性该属性值可以为空。原创 2022-10-11 20:44:59 · 127 阅读 · 0 评论 -
Spring之事务管理
事务是数据库操作最基本单元,逻辑上一组操作,要么都成功,如果有一个失败所有操作都失败。原创 2022-10-10 21:14:03 · 482 阅读 · 0 评论 -
Spring之jdbcTemplate使用
Spring 框架对 JDBC 进行封装,使用 JdbcTemplate 方便实现对数据库操作.原创 2022-10-09 19:42:04 · 351 阅读 · 0 评论 -
Spring源码之AOP操作案例
Spring 框架一般都是基于 AspectJ 实现 AOP 操作, AspectJ不是Spring的组成部分,独立AOP框架, 把两者一起使用,进行AOP操作。execution([权限修饰符] [返回类型] [类全路径] [方法名称] ([参数列表]) )在增强类上面添加注解 @Order(数字类型值),数字类型值越小优先级越高.在增强类的里面,在作为通知方法上面添加通知类型注解,使用切入点表达式配置。对 com.cf.dao.BookDao 类里面的 add 进行增强。1 基于xml配置文件实现。原创 2022-10-08 20:12:07 · 125 阅读 · 0 评论 -
Spring源码之AOP说明
面向切面编程, 利用 AOP 可以对业务逻辑的各个部分进行隔离,从而使得 业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。原创 2022-10-07 08:26:15 · 237 阅读 · 0 评论 -
Spring源码的Bean管理之注解方式
1 注解是代码特殊标记,格式:@注解名称(属性名称=属性值, 属性名称=属性值…)2 使用注解,注解作用在类上面,方法上面,属性上面3 使用注解目的:简化 xml 配置。原创 2022-10-06 08:27:13 · 246 阅读 · 0 评论 -
Spring源码Bean的xml操作自动装配
根据指定装配规则(属性名称或者属性类型),Spring 自动将匹配的属性值进行注入。原创 2022-10-05 08:14:51 · 125 阅读 · 0 评论 -
Spring源码Bean作用域和生命周期
Spring 有两种类型 bean,一种普通 bean,另外一种工厂 bean(FactoryBean).在 spring 配置文件 bean 标签里面有属性(scope)用于设置单实例还是多实例。2 为 bean 的属性设置值和对其他 bean 引用(调用 set 方法)7 当容器关闭时候,调用 bean 的销毁的方法(需要进行配置销毁的方法)1 在 Spring 里面,设置创建 bean 实例是单实例还是多实例.4 调用 bean 的初始化的方法(需要进行配置初始化的方法)从对象创建到对象销毁的过程。原创 2022-10-04 17:09:57 · 125 阅读 · 0 评论 -
Spring5源码之Bean操作
2 实体类间表示一对多关系,员工表示所属部门,使用对象类型属性表示.在 spring 配置文件中引入名称空间 util。使用 util 标签完成 list 集合注入提取。2 在service调用dao里面的方法。1 创建两个类service和dao类。3 在spring配置文件里面进行配置。1 一对多关系: 如部门和员工。2 注入List集合类型属性。3 注入Map集合类型属性。4 集合里面设置对象类型值。5 集合注入部分提取出来。1 注入数组类型属性。原创 2022-10-03 17:59:03 · 533 阅读 · 0 评论 -
Spring5源码之IOC的Bean管理之xml
Spring创建对象Spring注入属性基于xml配置文件方式实现基于注解方式实现。原创 2022-10-02 08:53:35 · 462 阅读 · 0 评论 -
Spring5源码学习之IOC容器
IOC, 控制反转,把创建和独享之间的调用过程,交给Spring进行管理.目的: 为了耦合度降低。原创 2022-10-01 16:44:32 · 114 阅读 · 0 评论 -
Spring5源码之入门
起源Spring是一个开源框架,它由[Rod Johnson](https://baike.baidu.com/item/Rod Johnson?fromModule=lemma_inlink)创建。它是为了解决企业应用开发的复杂性而创建的。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益组成核心容器应用上下文模块AOP模块。原创 2022-09-30 07:37:13 · 1807 阅读 · 0 评论 -
关于@LoadBalanced注解的使用
关于@LoadBalanced注解的使用1 关于@LoadBalanced注解简介2 总结上一篇说到, 关于RestTemplate ,如何让其具备负载均衡的能力, 答案是, 在其注册到容器时添加@LoadBalanced注解即可, 关于@LoadBalanced注解又是怎么实现该功能的呢?1 关于@LoadBalanced注解简介@LoadBalanced注解的代码, 很简单,其中@Qualifier注解, 该注解的作用是通过名称进行精确注入.@Target({ ElementType.FIE原创 2021-12-05 09:29:13 · 5527 阅读 · 0 评论 -
关于Spring的RestTemplate的使用
关于Spring的RestTemplate的使用1 RestTemplate的简介2 RestTemplate的使用consumer-a服务provider-a服务测试功能使用过程中遇到的问题现在微服务项目中, 各个服务之间的互相请求调用, 越来越频繁, 所以出现了很多Http请求工具, 而Spring提供的 RestTemplate,则是比较友好的封装集成了一些常见的Http请求工具,可以根据不同的使用场景,灵活的切换1 RestTemplate的简介RestTemplate是Spring3.0原创 2021-11-30 20:27:23 · 1240 阅读 · 1 评论 -
模拟Spring中Bean的加载
模拟Spring中Bean的加载1 模拟Spring的加载环境1 添加自定义的相关注解Component注解ComponentScan注解Scope注解BeanDefinition类ApplicationContext类2 添加相关的测试类ConfigDemo类UserService类OrgService类UserServiceImpl类OrgServiceImpl类SpringTest类执行结果最近看了一些关于Spring的书籍,结合网上的相关案列,模拟一下Spring的Bean加载的过程1 模拟原创 2021-11-21 18:38:28 · 509 阅读 · 0 评论 -
SpringCache的使用
SpringCache的使用1 SpringCache的简介2 SpringCache的使用1 注解说明2 案例3 SpringCache整合Redis在目前的项目中, 缓存的使用越来越多,适用的场景也越来越广.对于缓存,Spring提供的Spring Cache框架,能够非常方便地使用缓存.1 SpringCache的简介缓存,就是将数据从数据库等数据来源获取数据,将数据缓存在内存或其他设备如Redis中,为了二次查询能够快速高效的响应结果.Spring Cache是3.1开始提供, 通过注解原创 2021-11-12 22:34:32 · 3630 阅读 · 0 评论 -
关于Spring-Retry的使用
关于Spring-Retry的使用1 Spring-Retry的使用1 Spring-Retry的简介2 Spring中的应用1 导入maven坐标2 添加被调用类3 添加测试类3 SpringBoot中的应用1 导入maven坐标2 添加一个管理类3 启动类上添加注解@EnableRetry4 添加测试类1 Spring-Retry的使用1 Spring-Retry的简介在日常的一些场景中, 很多需要进行重试的操作.而spring-retry是spring提供的一个基于spring的重试框架,非常简原创 2021-11-10 22:26:59 · 1360 阅读 · 0 评论 -
Spring中@DependsOn注解的使用
Spring中@DependsOn注解的使用1 @DependsOn的简介2 @DependsOn的使用案例1案例2Spring中@DependsOn,主要是使用在类和方法上, 作用是当前对象要依赖另外一些对象,被依赖的对象会先注册到Spring的IOC容器中.1 @DependsOn的简介/** * Beans on which the current bean depends. Any beans specified are guaranteed to be * created by th原创 2021-11-05 20:28:32 · 879 阅读 · 0 评论 -
关于Spring中ResponseBodyAdvice的使用
关于Spring中ResponseBodyAdvice的使用1 ResponseBodyAdvice的简介2 ResponseBodyAdvice的使用1 准备一个SpringBoot项目环境2 添加一个响应拦截类3 添加一个返回包装类4 添加控制类5 接口测试ResponseBodyAdvice可以在注解@ResponseBody将返回值处理成相应格式之前操作返回值。实现这个接口即可完成相应操作。可用于对response 数据的一些统一封装或者加密等操作1 ResponseBodyAdvice的简原创 2021-10-27 22:23:31 · 2696 阅读 · 0 评论 -
Spring中@Lazy注解的使用
Spring中@Lazy注解的使用1 @Lazy的简介2 @Lazy的使用1 准备一个Springboot环境2 准备两个实体类对象3 添加启动类4 测试查看控制台5 去掉Person上的 @Lazy注解,重启项目3 @Lazy的作用1 延迟加载bean对象(如上案列)2 解决循环依赖问题1 添加两个配置类2 重启项目, 项目报错,代码中存在循环依赖3 重启项目,查看日志4 错误总结1 在项目启动过程中, 遇到异常错误Spring在应用程序上下文启动时去创建所有的单例bean对象, 而@Lazy注解可以原创 2021-10-26 21:01:45 · 16969 阅读 · 1 评论 -
Spring的ApplicationContextAware的使用
Spring的ApplicationContextAware的使用1 问题引入2 ApplicationContextAware的简介3 使用场景Spring中ApplicationContextAware主要用来获取Spring上下文已经实例化的Bean对象1 问题引入项目使用Spring管理各个实例对象Bean, 如果为了使用已被实例化的Bean对象,如果使用再次加载配置文件的方法,可能会出现一个问题,如一些线程配置任务, 会启动两份,产生了冗余.ApplicationContext app原创 2021-10-11 22:48:09 · 6186 阅读 · 0 评论 -
Spring的ApplicationListener和ApplicationContext的使用
Spring的ApplicationListener和ApplicationContext的使用1 引入ApplicationContext2 关于ApplicationListener的说明1 ApplicationListener简介2 ApplicationListener案列1 准备一个SpringBoot 环境2 创建一个自定义的监听器3 启动项目,查看日志3 关于**ApplicationContext**的说明1ApplicationContext的简介2ApplicationContext的原创 2021-10-10 17:46:34 · 625 阅读 · 0 评论 -
关于Spring中@Value注解使用
关于Spring中@Value注解使用1 @Value注解1 注解说明2 注解使用方式1 常量注入2 读取配置文件3 读取bean的属性2 @Value使用案列1 准备环境1创建一个bean对象2 创建一个控制类3 创建application.yml配置文件4 测试效果3 总结因博主最近遇到一个问题,在查询时,不能确定一个查询的条件是否不变化,所以采用可配置的方式完成,记录一下可配置value的使用方法1 @Value注解1 注解说明@Value注解时Spring框架中的一个常用功能,其作用是通原创 2021-08-21 09:27:05 · 2422 阅读 · 0 评论 -
关于Spring中拦截器的使用
关于Spring中拦截器的妙用1 拦截器的概述1 拦截器说明及应用场景2 Spring中的拦截器 HandlerInterceptor3 流程说明2 简单使用案例1 准备环境1 准备文件1 application.yml2 实体类3 Controller控制器4 拦截器15 拦截器26 配置类3 效果验证1 浏览器地址栏发送请求2 页面结果3 日志结果3 使用场景及解决方案关于防重复提交或接口恶意多次请求方法1 前台处理方法2 通过一个唯一字符串方法3 后台通过注解+拦截器1 准备环境,和上述一样2 自定义原创 2021-08-14 22:54:16 · 1220 阅读 · 0 评论 -
Spring的类型转换
Spring的类型转换1 类型转换说明2 WebMvcConfigurer配置类3 Converter4 自定义转换案例1自定义实现Converter接口2 自定义实现WebMvcConfigurer接口3 实体类4 测试类1 类型转换说明前台传参到后台,后台会对参数进行转换,封装成实体类中类型的参数.(常见: 时间字符串2021年4月12日21:56:50转换为Date类型时间)时间类型转换:https://blog.csdn.net/ABestRookie/article/details/1076原创 2021-04-13 22:26:18 · 354 阅读 · 1 评论 -
双数据源配置一之Spring-Mybatis
双数据源配置一之Spring-Mybatis参考: https://www.cnblogs.com/liujiduo/p/5004691.html因最近接触多数据源配置,在查询大量资料后,总结一些资料,供大家参考.1 简单方式指定数据源关于Spring多数据源的配置和使用,Spring框架预留接口,可以方便数据源的切换.首先查看Spring获取数据源的源代码:可以看到AbstractRoutingDataSource获取数据源之前会先调用determineCurrentLookupKey方原创 2020-11-26 21:47:00 · 459 阅读 · 3 评论 -
IDEA整合SSM框架 applicationcontext in module file is included in 5 contexts
IDEA中SSM项目出现applicationcontext in module file is included in 5 contexts参考资料:https://blog.csdn.net/qq_41548307/article/details/87924153问题引入:在IDEA中SSM项目导入的过程中出现如下图反馈信息,查询资料后得知,可能是编译器自动导入配置文件的时候发生了某些错误.解决方法:依次打开 Project Settings -> Modules -> S原创 2020-11-18 22:23:10 · 668 阅读 · 1 评论 -
关于Spring配置文件中扫描多个包相关问题
关于Spring配置文件中扫描多个包相关问题Spring的配置文件中需要扫描多个包: 包与包的全路径名之间用逗号隔开.ps:<context:component-scan base-package=“com.cf.book.service, com.cf.user.controller” />原创 2020-11-01 21:22:00 · 876 阅读 · 0 评论 -
SpringBoot中静态页面&静态资源放置
SpringBoot中静态页面&静态资源放置Spring Boot默认提供静态资源放置在classpath下:src/main/resources/static (默认放置js.css文件 可静态访问)/templates (默认放置页面的文件 不能静态访问,通过controller跳转访问)/ (不能静态访问,放置一些配置文件等)/public (可静态访问)/resources (可静态访问)/META-INF/resources (不能静态访问,META-I原创 2020-10-06 10:42:52 · 879 阅读 · 0 评论 -
@Autowire/@Qualifilter/@Resource的简单应用
1 @Autowire和@ResourceBean中没有指定name,默认为类名小写//没有指定name,默认为user@Beanpublic void User(){}1.1 在接口只有一个实现类时,两个注解的效果一样区别:1 @Autowired:Spring注解 | @Resource:JDK注解2 @Autowired 通过类型,自动装配(byType,按照定义的Bean中的Class类型) | @Resource 先通过参数名(byName 默认按照Bean中的id…),而原创 2020-10-06 10:13:42 · 522 阅读 · 0 评论 -
SpringBoot+ Thymeleaf入门学习
1. Thymeleaf概述thymeleaf是一个XML/XHTML/HTML5模板引擎,可用于Web与非Web环境中的应用开发。(其他模板引擎,如Velocity、FreeMarker等)特点:开箱即用,Thymeleaf允许您处理六种模板,每种模板称为模板模式:XML有效的XMLXHTML有效的XHTMLHTML5旧版HTML52. Springboot整合thymeleaf2.1 步骤:1. 创建一个sprinboot项目2. 添加thymeleaf的起步依赖3.添加原创 2020-08-26 00:35:19 · 803 阅读 · 1 评论 -
SpringBoot进阶篇之自动配置解析-自定义类配置-启动流程-项目部署
1. SpringBoot自动配置解析1.1 需求:在 Spring 的 IOC 容器中有一个 User 的 Bean,现要求:导入Jedis坐标后,加载该Bean,没导入,则不加载.首先创建一个User类@Componentpublic class User{}在入口类中@SpringBootApplicationpublic class SpringbootConditionApplication { public static void main(String[] args原创 2020-08-25 00:07:45 · 877 阅读 · 2 评论 -
关于Springboot基础
1.springboot概述springboot是属于spring生态圈中的一个快速使用spring的技术框架.特点:约定大于配置,开箱即用。2.入门案例1.手动创建maven工程,在pom.xml中导入依赖<!--父工程启动器--> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starte原创 2020-08-22 23:11:31 · 571 阅读 · 1 评论 -
Spring框架中异常处理情况分析
1.编写一个类,实现HandlerExceptionResolver接口@Componentpublic class ExceptionResolver implements HandlerExceptionResolver { @Override public ModelAndView resolveException(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Obj原创 2020-08-19 16:41:14 · 323 阅读 · 1 评论