通过ClassPathXmlApplicationContext获取
|
package factory; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import com.yydone.ma.service.IMemberService; import com.yydone.ma.service.impl.MemberService; public class TestClassPathXmlApplicationContext { /** * @param args */ public static void main(String[] args) { ApplicationContext context = new ClassPathXmlApplicationContext("spring.xml"); IMemberService memberService = context.getBean(MemberService.class); System.out.println(memberService.get().getMemberAccount()); } }
2、通过FileSystemXmlApplicationContext获取IoC容器
package factory; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import org.springframework.context.support.FileSystemXmlApplicationContext; import com.yydone.ma.service.IMemberService; import com.yydone.ma.service.impl.MemberService; public class TestFileSystemXmlApplicationContext { /** * @param args */ public static void main(String[] args) { test1(); test2(); test3(); } public static void test1() { ApplicationContext context = new FileSystemXmlApplicationContext("classpath:spring.xml"); IMemberService memberService = context.getBean(MemberService.class); System.out.println(memberService.get().getMemberAccount()); } public static void test2() { ApplicationContext context = new FileSystemXmlApplicationContext("src/main/resource/spring.xml"); IMemberService memberService = context.getBean(MemberService.class); System.out.println(memberService.get().getMemberAccount()); } public static void test3() { ApplicationContext context = new FileSystemXmlApplicationContext("file:/home/yunix/spring.xml"); IMemberService memberService = context.getBean(MemberService.class); System.out.println(memberService.get().getMemberAccount()); } }
1.默认为项目工作路径 即项目的根目录
ApplicationContext a = new FileSystemXmlApplicationContext("src/main/resources/spring.xml");
2.前缀classpath:表示的是项目的classpath下相对路径
ApplicationContext a = new FileSystemXmlApplicationContext("classpath:spring.xml");
3.使用前缀file 表示的是文件的绝对路径
ApplicationContext a = new FileSystemXmlApplicationContext("file:D:/spring.xml");
ApplicationContext a = new FileSystemXmlApplicationContext("D:/spring.xml");
4.可以同时加载多个文件
String[] xmlCfg = new String[] { "src/main/resources/base.spring.xml","classpath:spring.xml"};
ApplicationContext a = new FileSystemXmlApplicationContext(xmlCfg);
5.使用通配符加载所有符合要求的文件
ApplicationContext a = new FileSystemXmlApplicationContext("classpath:*.spring.xml")
;
相关推荐
我们可以通过以下几种方式来获取IOC容器中注入的Bean: 1. 通过`@Autowired`注解注入Bean对象 2. 通过`ApplicationContext`对象获取Bean对象 3. 通过自定义的公共类来获取Bean对象 在给定的示例代码中,我们可以...
本文将从实现的角度,通过对外部接口、内部实现、组成部分和执行过程四个角度深入剖析Spring IoC容器的结构。 首先,Spring IoC容器的外部接口主要包括`ApplicationContext`和`BeanFactory`。`BeanFactory`是IoC...
Spring的IoC容器通过一系列精心设计的接口来实现其强大功能。下面详细介绍一些关键接口: ##### 4.1 BeanFactory系列接口 - **BeanFactory**:基础的容器接口,提供了最基本的bean管理功能。 - **...
IoC容器通过控制反转的概念,将对象的创建和依赖关系的配置从应用代码中分离出来,使代码更加灵活、可测试和可维护。而注解自动装配(Autowired)是Spring IoC容器的一种高级特性,它允许我们通过注解来声明对象之间...
在Spring源代码解析的第一部分,我们将聚焦于IOC容器,特别是BeanFactory接口,它是所有Spring容器的基础。 BeanFactory接口是Spring的基石,它定义了基本的容器操作,如获取Bean、检查Bean是否存在、确定Bean的...
通过学习和实践手动实现IOC容器,开发者不仅能更好地理解Spring框架的工作原理,还能提升设计和实现复杂系统的能力。这个过程涉及到了许多核心的Java技术和设计模式,对提升软件工程能力大有裨益。
Spring的ResourceBundleMessageSource类将ResourceBundle与Spring的IoC容器集成,使得我们可以方便地从ApplicationContext中获取不同语言的字符串。配置ResourceBundleMessageSource可以通过XML或注解两种方式。XML...
在Spring中,IoC容器通过配置元数据(如XML、注解或Java配置类)来定义对象及其依赖关系,然后在运行时根据这些信息实例化对象并进行依赖注入。 ### 2. 容器的主要功能 - **对象的实例化**:IoC容器可以创建对象,...
5. **Spring IOC**:虽然本项目是自实现的IOC容器,但Spring框架的IOC容器(又称ApplicationContext)是业界广泛使用的实现。Spring提供了更完善的特性,如自动扫描、AOP(面向切面编程)、事件机制等。理解自实现的...
在 Spring 框架中,ApplicationContext 是 IOC 容器的承载体,而 BeanFactory 是操作这个容器的工具,两者关系紧密,相互协作。AbstractApplicationContext 是 ApplicationContext 的抽象实现类,它提供了 refresh ...
Spring IoC容器通过XML配置文件或注解来管理对象及其依赖。XML配置文件中定义了bean的定义,包括类名、属性等,而注解如@Autowired则可以自动匹配和注入依赖。Spring容器通过反射机制实例化对象,解析并注入依赖。...
Spring IoC容器通过读取XML配置文件或使用注解来管理对象的生命周期和依赖关系。它首先解析配置元数据,然后根据这些信息创建和组装对象。在XML配置中,`<bean>`标签用于定义一个Java对象,`class`属性指明该对象的...
在本实验中,我们将通过使用 Eclipse IDE 来体验 Spring 的 IoC 容器的优点。首先,我们需要创建一个接口 UserInfoInterface,该接口中定义了一个业务方法 doUserLogin,该方法用于用户登录验证。然后,我们需要创建...
XML IOC容器是实现DI的一种方式,它通过读取XML配置文件来管理和控制对象的生命周期。在这个“默认xmlIOC容器 demo-基于maven项目”中,我们将探讨如何手写一个简单的XML IOC容器,并了解其核心概念和工作原理。 ...
在实际开发中,我们通常使用ApplicationContext作为主要的IoC容器。 为了使Spring容器管理我们的对象,我们需要对这些对象进行“bean化”。这意味着我们需要定义bean的配置元数据,这可以通过XML、Java注解或基于...
### Spring IOC容器实现分析 ...通过以上介绍,我们可以了解到Spring IOC容器的核心组件及其工作原理。在实际开发中,理解这些概念对于高效利用Spring框架至关重要。希望本文能够为您的学习之旅带来帮助。
总的来说,Ioc容器通过控制反转,实现了对对象生命周期的管理,降低了组件之间的耦合度,使得软件设计更加灵活和易于维护。无论是Spring的Ioc还是其他的实现,其核心思想都是为了提升软件的可扩展性和可维护性。理解...
Spring的IoC容器是其核心特性之一,它通过BeanFactory和ApplicationContext两个主要接口来实现控制反转(Inversion of Control,IoC)的概念。BeanFactory作为基础的IoC容器,提供了全面的IoC服务,包括对象的注册、...
本文将通过分析Spring源代码来揭示其IoC容器的工作原理。 首先,我们要理解IoC的概念。IoC是一种设计模式,它将对象的创建和管理从应用逻辑中解耦出来,由一个中心组件(如Spring的ApplicationContext)负责。在...
总结来说,Spring IOC容器在Web容器中的启动涉及到创建`WebApplicationContext`,加载配置文件中的bean定义,然后通过`refresh()`方法实例化和初始化bean。这个过程确保了Web应用程序能够正确地配置和运行其依赖的...