在获取Spring初始的Bean的方法第一想到的就是通过ClassPathXmlApplicationContext类去加载Spring的XML文件,然后通过getBean方法来取得。然而在Web程序中这样get出来的Bean,并不是在web.xml中初始化Spring时候实例化在内存中的Bean,而是再一次实例化的Bean。那么如何在Web工程中去get出来在程序启动时候就实例化好的Bean呢,方法如下:
Servlet中获取Bean:
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//直接在初始化好的所有Bean中去get指定的Bean
ServletContext context = getServletContext();
WebApplicationContext applicationContext =
WebApplicationContextUtils.getWebApplicationContext(context);
Test t = (Test) applicationContext.getBean("test");
//首先重新创建所有的Bean,然后才去抓取指定的Bean
ApplicationContext ctx= new ClassPathXmlApplicationContext("applicationContext.xml");
Test tt = (Test) ctx.getBean("test");
//这里配置文件中即使指定scope为singleton,仍为false
System.out.println(t==tt);
}
分享到:
相关推荐
在Spring框架中,动态注册Bean是一项非常实用的功能,它允许我们在应用运行时向Spring容器添加新的Bean定义。这种能力在很多场景下都是极其有用的,比如根据不同的环境配置加载不同的服务实现,或者在运行时根据某些...
本篇文章主要介绍了Spring多种加载Bean方式解析,通过对Bean加载方式的详细解析,了解Spring中的Bean加载机制。 定义Bean的方式 在Spring中,定义Bean的方式有多种,常见的定义Bean的方式有三种: 1. 通过xml的...
Spring Bean 加载过程源码解析文档 Spring Bean 加载过程是 Spring 框架中最核心的部分之一,涉及到 ApplicationContext 的初始化、Bean 的加载和注册等过程。在 Spring Boot 应用程序中,SpringApplication 负责...
- 当Spring容器启动时,它首先读取配置文件,解析Bean的定义,并创建一个BeanDefinition对象,该对象包含了Bean的所有信息,如类名、属性、依赖等。 - 如果有`@Component`注解的类,Spring会通过组件扫描找到并...
在Spring框架中,Bean的生命周期管理是其核心特性之一,然而有时我们可能会遇到Spring Bean重复执行两次的问题,即实例被构造两次。这个问题可能是由多种原因引起的,涉及到Spring的初始化过程和容器的行为。以下是...
本文将深入解析Spring中的注解式编程,主要包括IOC(Inversion of Control,控制反转)的自动装配和依赖注入的解析。 首先,我们来看一下IOC自动装配。IOC是Spring的核心特性,它将对象的创建和管理从应用代码中...
在Spring框架中,Bean的配置与管理是其核心功能之一,而通过`PropertyPlaceholderConfigurer`进行属性占位符的配置则是实现动态配置的关键技术。本文将深入解析如何利用`PropertyPlaceholderConfigurer`进行bean配置...
在Spring框架中,Bean是核心概念,它代表了应用程序中的对象。这些对象通过Spring的依赖注入(Dependency Injection,DI)机制来管理和协调。本篇文章将深入探讨Spring中与Bean相关的接口,以及它们如何帮助我们更好...
以下是对Spring Bean生命周期的详细解析。 首先,Bean的生命周期可以分为四个主要阶段: 1. **实例化**:Spring容器在遇到一个Bean定义时,会通过反射机制创建Bean实例。如果Bean定义中有`factory-method`属性,...
在Spring框架中,Bean的加载顺序是理解Spring IoC(Inversion of Control,控制反转)容器工作原理的关键部分。这个过程涉及到Bean定义的解析、实例化、初始化等多个步骤。让我们详细探讨Spring Bean加载顺序的各个...
Spring5.0源码深度解析之SpringBean循环依赖问题解决方案是指在Spring框架中如何解决Bean的循环依赖问题。在Spring框架中,Bean的循环依赖指的是两个或多个Bean对象之间存在相互依赖关系,这种情况下,Bean的创建和...
总结来说,Spring提供多种方式让我们在应用中获取Bean,包括直接通过名称、类型,或者利用注解实现自动装配。了解这些机制,有助于我们更好地理解和使用Spring框架,提高代码的可维护性和灵活性。同时,源码分析能...
当我们谈论“Spring中的BeanFactory解析XML文件”时,我们实际上是在讨论如何通过XML配置文件来定义、创建和管理bean。这篇文章将深入探讨BeanFactory的工作原理,以及XML配置文件在其中的作用。 首先,BeanFactory...
Spring源码深度解析第二版 Spring是一款广泛应用于Java企业级应用程序的开源框架,旨在简化Java应用程序的开发和部署。Spring框架的核心主要包括了IoC容器、AOP、MVC框架等模块。 第1章 Spring整体架构和环境搭建 ...
在IT行业中,Spring框架是Java应用开发中的一个关键...总的来说,自定义Schema解析是Spring框架中一个强大的工具,它为项目提供了一种灵活的方式来管理和配置应用的组件,增强了Spring XML配置的可扩展性和可定制性。
在创建Bean的过程中,Spring会使用DOM4J解析XML配置文件,DOM4J是一个强大的Java文档处理库,可以方便地读取、修改和操作XML文档。在Spring的配置文件中,我们定义了Bean的元数据,包括Bean的类名、属性、依赖关系等...
在Spring容器启动时,配置文件或注解中的bean定义会被解析成BeanDefinition对象,然后由容器进行管理。本文将深入探讨BeanDefinition的内部结构和主要属性。 首先,BeanDefinition接口继承了AttributeAccessor和...
Spring框架是Java应用程序开发中的核心组件,其管理Bean的生命周期是其重要特性之一。Bean生命周期的理解对于优化应用性能和理解Spring内部工作原理至关重要。这里我们将深入探讨Spring的Bean生命周期、容器周期以及...
Spring @Bean 注解配置及使用方法解析 @Bean 注解是 Spring 框架中用于生成 Bean 实例的注解,主要用在方法上,声明当前方法体中包含了最终产生 Bean 实例的逻辑。该注解可以与 @Component 或 @Configuration 一起...
- **作用**:`BeanDefinition`是Spring用来描述Bean配置元数据的一种方式,它是Bean的抽象表示,包含Bean的类型、作用域、依赖关系等信息。 - **注册**:在IoC容器启动过程中,所有定义的Bean都会被转换成`Bean...