![](https://img-blog.csdnimg.cn/20200607150518169.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Spring
文章平均质量分 90
深入理解Spring各模块
大白给小白讲故事
大白给小白讲技术那点事,目前专注于Java领域(朋友,你好像有点东西)
展开
-
Spring 6.0 正式发布,一文了解新特性
Spring Framework 6.0 首个 RC 版本正式发布,可以开始使用了。一文带你了解新特性原创 2022-12-09 20:00:36 · 1658 阅读 · 0 评论 -
Spring 之 事件机制详解
概念Spring事件机制分为事件发布器(EventPublisher)、事件监听器(EventListener)和事件多播器(ApplicationEventMulticaster)。Spring事件机制对应常用设计模式之观察者模式,主要就是用来解耦。Spring 的 ApplicationContext 提供了支持事件和代码中监听器的功能。我们可以创建 bean 用来监听在 ApplicationContext 中发布的事件。ApplicationEvent 类和在ApplicationContext原创 2020-06-12 13:47:39 · 1345 阅读 · 0 评论 -
Spring 之 高频面试题
1、什么是Spring框架,Spring框架主要包含哪些模块Spring是一个轻量级的Java 开发框架。它是为了解决企业应用开发的复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为 J2EE 应用程序开发提供集成的框架。Spring 帮助 开发者解决了开发中基础性的问题,使得开发人员可以专注于应用程序的开发。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度原创 2020-06-07 15:00:48 · 658 阅读 · 0 评论 -
Spring 之 MVC 详解
概念什么是MVC? MVC是模型(Model)、视图(View)、控制器(Controller)的简写,是一种软件设计规范。就是将业务逻辑、数据、显示分离的方法来组织代码。MVC主要作用是降低了视图与业务逻辑间的双向偶合。MVC不是一种设计模式,MVC是一种架构模式。当然不同的MVC存在差异。Model(模型):数据模型,提供要展示的数据,因此包含数据和行为,可以认为是领域模型或JavaBean组件(包含数据和行为),不过现在一般都分离开来:Value Object(数据Dao) 和 服务层(行为原创 2020-06-06 16:44:24 · 635 阅读 · 0 评论 -
Spring 之 @Autowired 详解
概念@Autowired是一种注解,可以对成员变量、方法和构造函数进行标注,来完成自动装配的工作,@Autowired标注可以放在成员变量上,也可以放在成员变量的set方法上,也可以放在任意方法上表示,自动执行当前方法,如果方法有参数,会在IOC容器中自动寻找同类型参数为其传值。这里必须明确:@Autowired是根据类型进行自动装配的,如果需要按名称进行装配,则需要配合@Qualifier使用;核心我们先来看下实现的核心类 AutowiredAnnotationBeanPostProcessor原创 2020-05-30 21:39:40 · 1380 阅读 · 0 评论 -
Spring 之 循环依赖详解
概念如果 class A 中依赖了 class B并且class B 中也依赖了class A,形成一个闭环就会产生循环依赖的问题。解决构造器注入方式的循环依赖,无法解决;Setter注入方式的循环依赖,解决方式:Spring先用构造器实例化Bean对象,将实例化结束的对象放到一个Map中,并且Spring提供获取这个未设置属性的实例化对象的引用方法;在进行属性注入的时候,依次获取到对应的Bean实例对象进行注入;原理在 AbstractBeanFactory 的 doGetBean 方原创 2020-05-30 19:53:13 · 1101 阅读 · 0 评论 -
Spring 之 DI 详解
概念DI(Dependency Injection)依赖注入:依赖注入是指在程序运行期间,由外部容器动态地将依赖对象注入到组件中如:一般,通过构造函数注入、Setter注入、注解注入。Setter注入与注解注入类似,区别在于:Setter 注入是通过 Set 方法对属性进行赋值,而注解注入是通过反射为属性赋值。时机当 Spring IOC 容器完成了 Bean 定义资源的定位、载入、解析和注册以后,IOC 容器中已经管理类 BeanDefinition 的相关数据,但是此时 IOC 容器还没有对所管原创 2020-05-30 17:06:58 · 2556 阅读 · 0 评论 -
Spring 之 IOC 详解(基于注解方式)
概念IOC(Inversion of Control)控制反转:所谓控制反转,就是应用本身不负责依赖对象的创建和维护,依赖对象的创建及维护是由外部容器负责的。这样控制权就有应用转移到了外部容器,控制权的转移就是控制反转。初始化过程Spring IOC容器的初始化简单的可以分为三个过程:第一个过程是Resource资源定位。这个Resouce指的是BeanDefinition的资源定位。这个过程就是容器找数据的过程,就像水桶装水需要先找到水一样。第二个过程是BeanDefinition的载入过程。原创 2020-05-30 15:24:08 · 811 阅读 · 0 评论 -
Spring 之 AOP 详解
AOP 概念AOP(Aspect Oriented Programming)面向切面编程是 Spring 框架最核心的组件之一,它通过对程序结构的另一种考虑,补充了 OOP(Object-Oriented Programming)面向对象编程。在 OOP 中模块化的关键单元是类,而在 AOP 中,模块化单元是切面。也就是说 AOP 关注的不再是类,而是一系列类里面需要共同能力的行为。在 AOP 中模块化单元是切面(Aspect),它将那些影响多个类的共同行为封装到可重用的模块中,然后你就可以决定在什么时原创 2020-05-28 19:08:53 · 384 阅读 · 0 评论 -
Spring 之 @Transaction 详解
介绍@Transaction 是 Spring 提供用来控制事务回滚/提交的一个注解,让我们从编程式注解转换到声明式注解。在这里就不做过多的撰述,今天主要来看下 @Transaction 里面的属性使用。作用域@Transaction 可以写在类、接口、方法上当标注在类上的时候:表示给该类所有的 public 方法添加上 @Transaction 注解 当标注在接口上的时候:Spring 建议不要在接口或者接口方法上使用该注解,因为这只有在使用基于接口的代理时它才会生效。像 CGLib 动原创 2020-05-12 22:23:53 · 28824 阅读 · 3 评论 -
SpringBoot实现Filter的两种方式
前言Filter 是 SpringBoot 里面使用来做验证授权和跨域配置的第一选择,但是我们应该如何实现一个 Filter 对所有URL进行过滤?使用注解方式实现:import lombok.extern.slf4j.Slf4j;import org.apache.commons.lang3.StringUtils;import javax.servlet.Filter;i...原创 2019-09-30 15:43:45 · 1338 阅读 · 0 评论 -
spring retry 重试机制
当我们调用一个接口可能由于网络等原因造成第一次失败,再去尝试就成功了,这就是重试机制,spring支持重试机制,并且在Spring Cloud中可以与Hystaix结合使用,可以避免访问到已经不正常的实例。 但是切记非幂等情况下慎用重试加入依赖org.springframework.retryspring-retry在主类上加入 @EnableRetry 注解 12...原创 2019-08-12 10:31:56 · 201 阅读 · 0 评论 -
SpringBoot生产环境快速禁用Swagger2
方法一使用注解@Profile({"dev","test"})表示在开发或测试环境开启,而在生产关闭。@Profile使用的值是根据spring.profiles.active指定的环境参数,可以参考上一篇博客SpringBoot入门篇之多环境配置文件。简单介绍下@Profile注解@Profile注解的作用在不同的场景下,给出不同的类实例。比如在生产环境中给出的 DataSour...转载 2019-05-08 20:34:32 · 3244 阅读 · 0 评论 -
springboot+webSocket的多服务器下的点对点推送实现
webSocket的概念在这里就不多阐述了,网上有很多大家可以自行搜索。本篇博客主要是实现webSocket在多服务器下的点对点推送实现直接进入代码实现import com.cjh.websocket.socket.vo.User;import com.cjh.websocket.util.WebsocketMapUtil;import lombok.extern.slf...原创 2019-03-01 20:07:11 · 1797 阅读 · 0 评论