Spring框架
文章平均质量分 61
包含Spring基础应用、核心原理等
it_wxw
这个作者很懒,什么都没留下…
展开
-
Spring系统架构全览
Srping5模块结构图Spring核心模块Spring切面编程Spring数据访问与集成Spring Web组件Spring通信报文Spring集成测试Spring集成兼容Spring各模块之间的依赖关系Spring版本命名规则原创 2021-12-21 11:02:08 · 418 阅读 · 0 评论 -
Spring应用之IoC与DI——基于XML实现
什么是IoC与DIIoC(控制反转):抽象来说是一种思想,我们开发过程中所有的对象都可以交给Spring进行管理,我们直接获取即可,不需要自己动手创建,即对象管理权的反转。具体来说IoC在Spring中是一个容器,一个管理对象的容器。DI(依赖注入):Spring创建对象过程中,对对象所依赖的属性进行赋值,这个步骤就是依赖注入。基于XML配置文件的方式实现1. 基本使用1.1 添加依赖创建Maven项目并添加Spring核心依赖 <dependencies>原创 2022-01-02 14:15:42 · 475 阅读 · 0 评论 -
Spring应用之IoC与DI——基于Java配置类实现
基于Java配置类的方式实现定义配置类通过在类头部使用@Configuration注解表示这个类为Spring的配置类,相当于applicationContext.xml配置文件。package com.gupaoedu;import com.gupaoedu.pojo.User;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configurati原创 2021-12-23 20:28:53 · 391 阅读 · 0 评论 -
Spring应用——注解编程
基于注解的方式实现1.配置注解注解名称说明@Configuration把一个类作为一个IoC容器,它的某个方法头上如果注册了@Bean,就会作为这个Spring容器中的Bean。@ComponentScan在配置类上添加 @ComponentScan 注解。该注解默认会扫描该类所在的包下所有的配置类,相当于之前的 context:component-scan@Scope用于指定scope作用域的(用在类上)@Lazy表示延迟初始化@Conditiona原创 2021-12-24 13:16:12 · 328 阅读 · 0 评论 -
Spring应用之AOP
1. SpringAOP介绍AOP即面向切面编程,切面泛指系统中与主业务无关的代码,比如安全检查、日志记录、事物等等。AOP可以让主业务逻辑代码与切面代码分别开发,在运行时再进行合并。AOP减少了代码的纠缠,使业务逻辑代码更加清晰。术语说明切面切面泛指交叉业务逻辑。比如事务处理、日志处理就可以理解为切面。常用的切面有通知与顾问。实际就是对主业务逻辑的一种增强织入织入是指将切面代码插入到目标对象的过程。连接点连接点指切面可以织入的位置。切入点切入点指切面具体织原创 2022-01-02 16:41:11 · 230 阅读 · 0 评论 -
Spring应用之MVC
1. 构建SpringMVC项目1.1 通过Maven构建一个web项目1.2 添加相关的依赖 <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.11</version> <scope>test&l原创 2022-01-02 20:47:02 · 268 阅读 · 0 评论 -
Spring中的注入方式
Spring中的注入方式Spring中有几种注入方式字段注入构造注入setter方法注入字段注入字段注入是平时开发中最常使用的注入方式,因为简单方便,可读性强。但是Spring官方不建议我们使用这种注入方式,在IDEA中使用字段注入时会给出黄牌警告。如下代码所示:package com.wxw.controller;import com.wxw.service.IUserService;import org.springframework.beans.factory.annotati原创 2022-01-01 14:51:36 · 594 阅读 · 0 评论 -
Spring中Bean的生命周期
Spring中的Bean的生命周期1. 什么是Spring中Bean的生命周期Spring最大的特点就是面向Bean(BOP)编程,Spring所管理的Bean是一个POJO,即简单的JavaBean(不需要实现任何规范的Bean)。Spring提供了很多方法可以对所管理的Bean对象进行功能增强,其中就包含了对生命周期的控制。2. Bean创建前的准备阶段在Bean被Spring创建之前,首先会实例化IoC容器,找到所有被Spring管理的Bean的配置信息。同时还会实例化BeanFactoryP原创 2021-12-30 17:40:32 · 364 阅读 · 0 评论 -
Spring中的循环依赖
Spring循环依赖什么是循环依赖Spring容器中多个Bean之间互相依赖,形成一种环形调用。Spring是如何解决循环依赖Spring中使用了三级缓存来解决循环依赖的问题,但是有2个前提:1.循环依赖的Bean必须是单例的,因为非单例的Bean每次从容器中获取时,都会创建新的对象,所以非单例的Bean不会放入三级缓存中;2.循环依赖的Bean必须使用字段注入或setter注入,使用构造函数注入时会报错。三级缓存介绍名称说明singletonObjects(一级缓存)原创 2021-12-31 21:36:10 · 101 阅读 · 0 评论 -
SpringIoC原理
SpringIoC原理SpringIoC初始化的过程大概可以分为三个步骤:定位加载注册1. 定位IoC容器初始化步骤从AbstractApplicationContext.refresh()方法开始,创建BeanFactory对象,根据配置的扫描路径,定位到哪些bean需要被Spring管理。2. 加载有了Bean的定位信息,Spring会创建BeanDefinitionReader去读取这些Bean的信息,并封装成BeanDefinition对象。BeanDefinition对象保存的原创 2022-01-03 15:28:21 · 371 阅读 · 0 评论 -
SpringDI原理
SpringDI原理SpringDI依赖注入大概分为两个部分:实例化对象依赖注入1.实例化对象通过容器的getBean方法触发对Bean的实例化与依赖注入,BeanFactory会根据之前缓存的BeanDefinition配置信息,通过反射实例化对象。2.依赖注入依赖注入的入口是populateBean方法,在IoC初始化过程中,Bean的字段信息会被封装成PropertyValue数据,Spring会根据ProertyValue循环赋值。如果是自动装配,则会在postProcessPro原创 2022-01-03 15:41:43 · 457 阅读 · 0 评论 -
SpringAOP原理
SpringAOP原理SpringAOP原理主要分为三个部分:创建代理类代码织入通知回调1. 创建代理类AOP的入口在Spring依赖注入之后的初始化方法中(initializeBean),在Bean初始化完成之后,会调用BeanPostProcessor的后置处理器方法,该处理器的实现类AbstractAutoProxyCreator负责代理类的创建。该类首先会获得Spring中所有的通知Advice,并根据当前对象进行切入点表达式的匹配,如果能够匹配上则表示当前对象需要增强。在创建代理过原创 2022-01-03 16:02:46 · 331 阅读 · 0 评论 -
SpringMVC原理
SpringMVC原理SpringMVC原理大概分为两个步骤:初始化阶段调用阶段1. 初始化阶段从Servlet的init()方法入口,最终调用DispatchServlet的onRefresh()方法初始化9大组件,其中比较核心的三大组件:HandlerMapping:保存Url与Method的对应关系HandlerAdapter:适配器,动态解析客户端传入的参数,并通过反射执行Method方法ViewResolver:视图解析器,通过方法返回的内容进行解析2. 调用阶段从Di原创 2022-01-03 16:18:27 · 77 阅读 · 0 评论