Spring
文章平均质量分 92
学习、记录、分享、优化。
Q.E.D.
放弃亦是坚持,坚持亦是放弃。
展开
-
Spring - @Transactional 的原理和坑
因为 @Transactional 的工作机制是基于 AOP 实现,AOP 是使用动态代理实现的,如果通过代理直接调用 testSuccess(),通过 AOP 会前后进行增强,增强的逻辑其实就是在 testSuccess() 的前后分别加上开启、提交事务的逻辑,后面的源码会进行剖析。@Transactional 注解默认处理运行时异常,即只有抛出运行时异常时,才会触发事务回滚,否则并不会回滚,父线程抛出线程,事务回滚,因为子线程是独立存在,和父线程不在同一个事务中,所以子线程的修改并不会被回滚。原创 2022-11-24 07:30:00 · 16038 阅读 · 0 评论 -
Spring - 最常用的几个扩展点
我们一说到spring,可能第一个想到的是 IOC(控制反转) 和 AOP(面向切面编程)。没错,它们是spring的基石,得益于它们的优秀设计,使得spring能够从众多优秀框架中脱颖而出。除此之外,我们在使用spring的过程中,有没有发现它的扩展能力非常强。由于这个优势的存在,让spring拥有强大的包容能力,让很多第三方应用能够轻松投入spring的怀抱。比如:rocketmq、mybatis、redis等。spring mvc拦截器根spring拦截器相比,它里面能够获取HttpServletRe原创 2022-10-24 22:05:02 · 21356 阅读 · 0 评论 -
Spring - Validation最佳实践及其实现原理,参数校验没那么简单
1、简单使用Java API规范(JSR303)定义了Bean校验的标准validation-api,但没有提供实现。hibernate validation是对这个规范的实现,并增加了校验注解如@Email、@Length等。Spring Validation是对hibernate validation的二次封装,用于支持spring mvc参数自动校验。接下来,我们以spring-boot项目为例,介绍Spring Validation的使用。1.1、引入依赖如果spring-boot版本小转载 2022-05-12 17:41:03 · 68722 阅读 · 0 评论 -
Spring - 循环依赖
1、什么是循环依赖很简单,看下方的代码就知晓了@Servicepublic class A { @Autowired private B b;}@Servicepublic class B { @Autowired private A a;}//或者自己依赖自己@Servicepublic class A { @Autowired private A a;}上面这两种方式都是循环依赖,应该很好理解,当然也可以是三个 Bean转载 2022-05-12 17:39:20 · 67863 阅读 · 0 评论 -
Servlet - 九大对象和四个作用域
1、九大对象1.apllication(ServletContext):服务器启动后就产生了这个对象,所有客户共享这个内置的application对象2.request(HttpServletRequest/ServletRequest):封装了用户请求信息,请求可以转发给其他request(url不变)3.response(HttpServletRespons/ServletResponse):处理后的数据返回客户端,请求可以重定向(url该变)4.session(HttpSession)转载 2022-03-31 09:20:54 · 91981 阅读 · 0 评论 -
SpringCloud - 思维导图概览
1、什么是微服务1.1、架构演进架构的发展历程是从单体式架构,到分布式架构,到SOA架构,再到微服务架构。图1:架构演进单体架构:未做任何拆分的Java Web程序图2:单体架构示意图分布式架构:按照业务垂直划分,每个业务都是单体架构,通过API互相调用。图3:分布式架构示意图SOA架构:SOA(Service-Oriented Architecture)是一种面向服务的架构。其应用程序的不同组件通过网络上的通信协议向其它组件提供服务或消费服务,所以也是....转载 2021-10-10 22:29:05 · 209348 阅读 · 2 评论 -
SpringCloud - 微服务的灵魂摆渡者Nacos
前言Nacos是阿里巴巴开源的服务注册中心以及配置中心,致力于给开发者提供一款便捷、简单上手的开源框架。Nacos究竟有什么惊人的地方呢?看下图:从上图不难看出阿里巴巴的野心,一个Nacos干掉了Spring Cloud的三大组件,分别是注册中心Eureka 服务配置Config 服务总线Bus本文目录结构如下图:1、为什么Nacos这么受欢迎?Nacos官方文档的介绍中有这么一句话,如下:Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。Nacos 是转载 2021-11-01 23:29:52 · 189131 阅读 · 0 评论 -
SpringBoot - 几种注入 Bean 的方式
1、背景我们谈到Spring的时候一定会提到IOC容器、DI依赖注入,Spring通过将一个个类标注为Bean的方法注入到IOC容器中,达到了控制反转的效果。那么我们刚开始接触Bean的时候,一定是使用xml文件,一个一个的注入,就例如下面这样。 <bean id="bean" class="com.xxx.xxx.Bean" />我们的项目一般很大的话,就需要成千上百个Bean去使用,这样写起来就很繁琐。那么Spring就帮我们实现了一种通过注解来实现注入的方法。只需要在你需要注原创 2021-10-27 10:58:56 · 194408 阅读 · 3 评论 -
SpringBoot - 加载配置文件的实现方式
1、简介在实际的项目开发过程中,我们经常需要将某些变量从代码里面抽离出来,放在配置文件里面,以便更加统一、灵活的管理服务配置信息。比如,数据库、eureka、zookeeper、redis、mq、kafka 等服务组件的连接参数配置,还有我们自定义的项目参数配置变量。当然,实际上根据当前的业务需求,我们往往会自定义参数,然后注入到代码里面去,以便灵活使用!今天,我们就一起来聊一聊SpringBoot加载配置文件的几种玩法,如果有遗漏,欢迎留言!SpringBoot 项目在启用时:首先会默原创 2022-03-24 23:38:27 · 100821 阅读 · 2 评论 -
Spring - @Autowired背后实现的原理
前言使用spring开发时,进行配置主要有两种方式,一是xml的方式,二是java config的方式。spring技术自身也在不断的发展和改变,从当前springboot的火热程度来看,java config的应用是越来越广泛了,在使用java config的过程当中,我们不可避免的会有各种各样的注解打交道,其中,我们使用最多的注解应该就是@Autowired注解了。这个注解的功能就是为我们注入一个定义好的bean。那么,这个注解除了我们常用的属性注入方式之外还有哪些使用方式呢?它在代码层面又转载 2021-11-10 00:01:42 · 182135 阅读 · 0 评论 -
Spring - @Value功能详解
前言对于从事java开发工作的小伙伴来说,spring框架肯定再熟悉不过了。spring给开发者提供了非常丰富的api,满足我们日常的工作需求。如果想要创建bean实例,可以使用@Controller、@Service、@Repository、@Component等注解。如果想要依赖注入某个对象,可以使用@Autowired和@Resource注解。如果想要开启事务,可以使用@Transactional注解。如果想要动态读取配置文件中的某个系统属性,可以使用@Value注解。等等,还转载 2021-11-09 22:10:23 · 183094 阅读 · 0 评论 -
Spring - 40 个 Spring Boot 常用注解
1、Spring Web MVC 注解1.1、@RequestMapping@RequestMapping注解的主要用途是将Web请求与请求处理类中的方法进行映射。Spring MVC和Spring WebFlux都通过RquestMappingHandlerMapping和RequestMappingHndlerAdapter两个类来提供对@RequestMapping注解的支持。@RequestMapping注解对请求处理类中的请求处理方法进行标注;@RequestMapping注解拥有以下转载 2021-11-08 23:55:32 · 181729 阅读 · 1 评论 -
Spring - Spring中用到的几种经典设计模式
前言Spring中涉及的设计模式总结,在面试中也会经常问道 Spring 中设计模式的问题。本文以实现方式、实质、实现原理的结构简单介绍 Sping 中应用的 几种设计模型,具体详细的刨析会在后面的文章发布!1、简单工厂实现方式:BeanFactory。Spring中的BeanFactory就是简单工厂模式的体现,根据传入一个唯一的标识来获得Bean对象,但是否是在传入参数后创建还是传入参数前创建这个要根据具体情况来定。实质:由一个工厂类根据传入的参数,动态决定应该创建哪一个产品类.转载 2021-11-03 23:11:12 · 188236 阅读 · 2 评论 -
Spring - 捋明白 Spring 事务、隔离性、传播性
事务的重要性不言而喻,Spring 对事务也提供了非常丰富的支持,各种支持的属性应有尽有。然而很多小伙伴知道,这里有两个属性特别绕: 隔离性 传播性 1、什么是事务数据库事务是指作为单个逻辑工作单元执行的一系列操作,这些操作要么一起成功,要么一起失败,是一个不可分割的工作单元。在我们日常工作中,涉及到事务的场景非常多,一个 service 中往往需要调用不同的 dao 层方法,这些方法要么同时成功要么同时失败,我们需要在 service 层确保这一点。说到事务最典型的案例转载 2021-10-28 23:56:05 · 191810 阅读 · 2 评论