随笔分类 - >>>>>>已整理的分类 / Spring & Spring MVC
摘要:
BeanDefinition是什么? 在Spring框架中,BeanDefinition是描述和定义Spring容器中的Bean的元数据对象。它包含了定义Bean的相关信息,例如Bean的类名、作用域、生命周期等。 BeanDefinition对象通常由Spring容器在启动过程中根据配置信息或注解
阅读全文

摘要:
我们一般在含有Spring的项目中,可能会看到配置项中包含这个配置节点context:annotation-config。 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/sche
阅读全文

摘要:
AbstractApplicatContext【refresh】 点击到该方法中,直接看到方法最后的 beanFactory.preInstantiateSingletons() 方法: DefaultListableBeanFactory【preInstantiateSingletons】 在 p
阅读全文

摘要:
FactoryBean是Spring提供的一个接口,通过实现这个接口可以定制实例化bean。 FactoryBean 接口对于 Spring 框架来说占有重要的地位,Spring 自身就提供了 70 多个FactoryBean 的实现。它们隐藏了实例化一些复杂 bean 的细节,给上层应用带来了便利
阅读全文

摘要:
观察者模式的事件思想 观察者模式作为对象间 一对多 依赖关系的实现。在观察者模式中,被观察者相当于事件中的时间发布者,而观察者相当于事件中的监听者。因此可以说:观察者模式就是事件驱动机制的一种体现。 事件驱动一个常见的形式就是 发布-订阅 模式,在跨进程的通信间,我们常常使用 消息队列 来实现消息的
阅读全文

摘要:
ApplicationContextInitializer用于在刷新Spring容器之前的回调接口。 ApplicationContextInitializer是Spring框架原有的概念, 这个类的主要目的就是在 ConfigurableApplicationContext类型(或者子类型)的Ap
阅读全文

摘要:
在Servlet API中有一个ServletContextListener接口,它能够监听ServletContext对象的生命周期,实际上就是监听Web应用的生命周期。 当Servlet容器启动或终止Web应用时,会触发ServletContextEvent事件,该事件由ServletConte
阅读全文

摘要:
ConfigurationClassPostProcessor 简单概述 Spring 中类的解析是非常重要的,因为工程中有很多类,并且被一些注解修饰,比如:@Component、@Bean、@Import、@PropertySource、@ImportSource、@Scope 等。 你在类或者方
阅读全文

摘要:
BeanFactoryPostProcessor作用 BeanFactoryPostProcessor是Spring框架中的一个重要接口,用于在BeanFactory加载Bean定义之后、实例化Bean之前对BeanFactory进行自定义修改和扩展。它允许开发人员在Spring容器加载配置文件并创
阅读全文

摘要:
自定义一个命名空间 1、新建一个空项目,在 resources/META-INF 目录下新建一个 spring.handlers 文件,内容如下: http\://open.harvey.com/schema/dog=com.harvey.open.annotation.spring.DogName
阅读全文

摘要:
Spring SPI Spring借鉴了Java SPI思想来解析各种标签,我们称之为Spring SPI。 Spring SPI沿用了Java SPI的设计思想,但在实现上和Java SPI及Dubbo SPI也存在差异,Spring通过spring.handlers和spring.factori
阅读全文

摘要:
AbstractApplicationContext的refresh()是 Spring 最核心的方法,没有之一,上帝就是用这个方法创造了 Spring 的世界。这是一个同步方法,用synchronized关键字来实现的。该方法包含以下12个方法(步骤)。 prepareRefresh() obta
阅读全文

摘要:
@Component 将某个类作为Bean @Component public class Helper { } 还有一些基于@Component进行扩展的注解也能实现,比如@Configuration、@Controller/@RestController、@Service、@Repository
阅读全文

摘要:
首先要创建一个普通的Maven Web项目,不需要web.xml,如果有的话直接删除。 特别注意:Spring在整合其他组件的时候,如果其他组件已引入了一些Spring的jar包(如spring-data-mongodb),要注意与项目使用的主版本最好一致,不然会因为依赖冲突导致一些奇奇怪怪的错误,
阅读全文

摘要:
ApplicationContext接口 ApplicationContext是Spring的高级容器。 与BeanFactory类似,它可以加载bean定义并根据请求分发bean;此外,它还添加了很多特定的功能,比如:从属性文件解析文本消息、将应用程序事件发布到感兴趣的事件侦听器。 public
阅读全文

摘要:
基于Spring 5.0.2.RELEASE spring-core.jar(必须有的核心jar包) 这个jar 文件包含Spring 框架基本的核心工具类。Spring 其它组件要都要使用到这个包里的类,是其它组件的基本核心,当然你也可以在自己的应用系统中使用这些工具类。 <dependencie
阅读全文

摘要:
在 Spring Framework 中,AnnotationConfigApplicationContext 和 ClasspathXmlApplicationContext是两个不同的应用程序上下文实现,用于配置和管理 Spring Bean 容器。它们之间的主要区别在于配置的方式和使用场景。
阅读全文

摘要:
本篇博客介绍适合使用xml配置Spring环境和SpringMVC环境。 ① 首先我们使用maven新建一个普通的java web工程(包含WEB-INF/web.xml),然后在pom文件中相关的依赖 maven创建的web工程标准目录结构一般为: |--root |--pom.xml |--sr
阅读全文

摘要:
Spring诞生之初就不是为web项目定制的。 首先我们要弄明白常用的web项目和非web项目的区别在哪儿?无疑是服务启动和执行逻辑触发的方式: web项目需要依赖web容器来启动,通过http请求来触发相关的服务; 非web项目则不需要依赖web容器来启动,它可以是自启动的; 添加Spring依赖
阅读全文

摘要:
classpath: 和 classpath*: 的含义 classpath: 表示从类路径中加载资源,classpath:和classpath:/是等价的,都是相对于类的根路径。资源文件库标准的在文件系统中,也可以在JAR或ZIP的类包中。 classpath*:假设多个JAR包或文件系统类路径都
阅读全文
