随笔分类 -  >>>>>>已整理的分类 / Spring & Spring MVC

摘要:Spring的BeanDefinition是什么BeanDefinition是什么? 在Spring框架中,BeanDefinition是描述和定义Spring容器中的Bean的元数据对象。它包含了定义Bean的相关信息,例如Bean的类名、作用域、生命周期等。 BeanDefinition对象通常由Spring容器在启动过程中根据配置信息或注解 阅读全文
posted @ 2023-12-17 10:35 残城碎梦 阅读(86) 评论(0) 推荐(0) 编辑
摘要:spring xml配置文件之context:annotation-config我们一般在含有Spring的项目中,可能会看到配置项中包含这个配置节点context:annotation-config。 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/sche 阅读全文
posted @ 2023-12-15 08:46 残城碎梦 阅读(178) 评论(0) 推荐(0) 编辑
摘要:Spring Bean的创建和初始化流程AbstractApplicatContext【refresh】 点击到该方法中,直接看到方法最后的 beanFactory.preInstantiateSingletons() 方法: DefaultListableBeanFactory【preInstantiateSingletons】 在 p 阅读全文
posted @ 2023-12-10 21:03 残城碎梦 阅读(295) 评论(0) 推荐(0) 编辑
摘要:Spring的FactoryBean接口的作用FactoryBean是Spring提供的一个接口,通过实现这个接口可以定制实例化bean。 FactoryBean 接口对于 Spring 框架来说占有重要的地位,Spring 自身就提供了 70 多个FactoryBean 的实现。它们隐藏了实例化一些复杂 bean 的细节,给上层应用带来了便利 阅读全文
posted @ 2023-12-10 11:52 残城碎梦 阅读(112) 评论(0) 推荐(0) 编辑
摘要:Spring的事件发布机制观察者模式的事件思想 观察者模式作为对象间 一对多 依赖关系的实现。在观察者模式中,被观察者相当于事件中的时间发布者,而观察者相当于事件中的监听者。因此可以说:观察者模式就是事件驱动机制的一种体现。 事件驱动一个常见的形式就是 发布-订阅 模式,在跨进程的通信间,我们常常使用 消息队列 来实现消息的 阅读全文
posted @ 2023-12-10 10:50 残城碎梦 阅读(340) 评论(0) 推荐(0) 编辑
摘要:ApplicationContextInitializer在Spring容器执行refresh之前执行ApplicationContextInitializer用于在刷新Spring容器之前的回调接口。 ApplicationContextInitializer是Spring框架原有的概念, 这个类的主要目的就是在 ConfigurableApplicationContext类型(或者子类型)的Ap 阅读全文
posted @ 2023-12-10 08:31 残城碎梦 阅读(86) 评论(0) 推荐(0) 编辑
摘要:Spring Web应用的启动流程分析在Servlet API中有一个ServletContextListener接口,它能够监听ServletContext对象的生命周期,实际上就是监听Web应用的生命周期。 当Servlet容器启动或终止Web应用时,会触发ServletContextEvent事件,该事件由ServletConte 阅读全文
posted @ 2023-12-09 19:47 残城碎梦 阅读(441) 评论(0) 推荐(0) 编辑
摘要:后置处理器ConfigurationClassPostProcessor如何解析注解ConfigurationClassPostProcessor 简单概述 Spring 中类的解析是非常重要的,因为工程中有很多类,并且被一些注解修饰,比如:@Component、@Bean、@Import、@PropertySource、@ImportSource、@Scope 等。 你在类或者方 阅读全文
posted @ 2023-12-08 15:36 残城碎梦 阅读(130) 评论(0) 推荐(0) 编辑
摘要:Spring的BeanFactoryPostProcessor接口详解BeanFactoryPostProcessor作用 BeanFactoryPostProcessor是Spring框架中的一个重要接口,用于在BeanFactory加载Bean定义之后、实例化Bean之前对BeanFactory进行自定义修改和扩展。它允许开发人员在Spring容器加载配置文件并创 阅读全文
posted @ 2023-12-07 13:41 残城碎梦 阅读(1102) 评论(0) 推荐(0) 编辑
摘要:Spring实践之自定义命名空间并解析自定义一个命名空间 1、新建一个空项目,在 resources/META-INF 目录下新建一个 spring.handlers 文件,内容如下: http\://open.harvey.com/schema/dog=com.harvey.open.annotation.spring.DogName 阅读全文
posted @ 2023-12-03 21:38 残城碎梦 阅读(68) 评论(0) 推荐(0) 编辑
摘要:Spring是如何解析自定义标签的(类SPI)Spring SPI Spring借鉴了Java SPI思想来解析各种标签,我们称之为Spring SPI。 Spring SPI沿用了Java SPI的设计思想,但在实现上和Java SPI及Dubbo SPI也存在差异,Spring通过spring.handlers和spring.factori 阅读全文
posted @ 2023-12-03 11:00 残城碎梦 阅读(145) 评论(0) 推荐(0) 编辑
摘要:AbstractApplicationContext的核心方法refresh()分析AbstractApplicationContext的refresh()是 Spring 最核心的方法,没有之一,上帝就是用这个方法创造了 Spring 的世界。这是一个同步方法,用synchronized关键字来实现的。该方法包含以下12个方法(步骤)。 prepareRefresh() obta 阅读全文
posted @ 2023-12-02 15:31 残城碎梦 阅读(406) 评论(0) 推荐(1) 编辑
摘要:Spring注册Bean的方式@Component 将某个类作为Bean @Component public class Helper { } 还有一些基于@Component进行扩展的注解也能实现,比如@Configuration、@Controller/@RestController、@Service、@Repository 阅读全文
posted @ 2023-11-20 08:39 残城碎梦 阅读(155) 评论(0) 推荐(0) 编辑
摘要:Intellij Idea搭建Spring环境-全注解(不用web.xml)首先要创建一个普通的Maven Web项目,不需要web.xml,如果有的话直接删除。 特别注意:Spring在整合其他组件的时候,如果其他组件已引入了一些Spring的jar包(如spring-data-mongodb),要注意与项目使用的主版本最好一致,不然会因为依赖冲突导致一些奇奇怪怪的错误, 阅读全文
posted @ 2023-11-19 21:19 残城碎梦 阅读(80) 评论(0) 推荐(0) 编辑
摘要:Spring之ApplicationContextApplicationContext接口 ApplicationContext是Spring的高级容器。 与BeanFactory类似,它可以加载bean定义并根据请求分发bean;此外,它还添加了很多特定的功能,比如:从属性文件解析文本消息、将应用程序事件发布到感兴趣的事件侦听器。 public 阅读全文
posted @ 2023-11-19 17:01 残城碎梦 阅读(80) 评论(0) 推荐(0) 编辑
摘要:Spring的各jar包依赖及作用详解基于Spring 5.0.2.RELEASE spring-core.jar(必须有的核心jar包) 这个jar 文件包含Spring 框架基本的核心工具类。Spring 其它组件要都要使用到这个包里的类,是其它组件的基本核心,当然你也可以在自己的应用系统中使用这些工具类。 <dependencie 阅读全文
posted @ 2023-11-19 10:30 残城碎梦 阅读(789) 评论(0) 推荐(0) 编辑
摘要:Spring容器之ClassPathXmlApplicationContext和AnnotationConfigApplicationContext在 Spring Framework 中,AnnotationConfigApplicationContext 和 ClasspathXmlApplicationContext是两个不同的应用程序上下文实现,用于配置和管理 Spring Bean 容器。它们之间的主要区别在于配置的方式和使用场景。 阅读全文
posted @ 2023-11-14 09:09 残城碎梦 阅读(331) 评论(0) 推荐(0) 编辑
摘要:Intellij Idea搭建Spring环境-xml方式本篇博客介绍适合使用xml配置Spring环境和SpringMVC环境。 ① 首先我们使用maven新建一个普通的java web工程(包含WEB-INF/web.xml),然后在pom文件中相关的依赖 maven创建的web工程标准目录结构一般为: |--root |--pom.xml |--sr 阅读全文
posted @ 2023-11-14 08:54 残城碎梦 阅读(244) 评论(0) 推荐(0) 编辑
摘要:非web应用下快速搭建Spring环境Spring诞生之初就不是为web项目定制的。 首先我们要弄明白常用的web项目和非web项目的区别在哪儿?无疑是服务启动和执行逻辑触发的方式: web项目需要依赖web容器来启动,通过http请求来触发相关的服务; 非web项目则不需要依赖web容器来启动,它可以是自启动的; 添加Spring依赖 阅读全文
posted @ 2023-11-11 17:47 残城碎梦 阅读(174) 评论(0) 推荐(0) 编辑
摘要:classpath和classpath*区别classpath: 和 classpath*: 的含义 classpath: 表示从类路径中加载资源,classpath:和classpath:/是等价的,都是相对于类的根路径。资源文件库标准的在文件系统中,也可以在JAR或ZIP的类包中。 classpath*:假设多个JAR包或文件系统类路径都 阅读全文
posted @ 2023-11-10 09:05 残城碎梦 阅读(665) 评论(0) 推荐(1) 编辑

点击右上角即可分享
微信分享提示