`
- 浏览:
278184 次
-
简单的xml配置文件
- <?xml version="1.0" encoding="UTF-8"?>
- <beans>
- <bean id="userDAO" class="com.king.dao.impl.UserDAOImpl"></bean>
-
- <bean id="userService" class="com.king.service.impl.UserServiceImpl">
- <property name="userDAO" ref="userDAO"></property>
- </bean>
- </beans>
BeanFactory接口
- public interface BeanFactory
- {
- public Object getBean(String name);
- }
实现BeanFactory的接口
- public class ClassPathXmlApplicationContext implements BeanFactory{
- private Map<String,Object> beans = new HashMap<String,Object>();
-
-
- public ClassPathXmlApplicationContext()
- {
- SAXBuilder sb = new SAXBuider();
- Document doc = sb.builder(this.getClass().getClassLoader().getResourceAsStream("beans.xml"));
- Element root = doc.getRootElement();
- List list = root.getChildren("bean");
-
- int size = list.size();
-
- for(int i = 0; i< size; i++)
- {
- Element element = list.get(i);
-
- String id = element.getAttributeValue("id");
- String clazz = element.getAttributeValue("class");
-
- Object o = Class.forName(clazz).newInstance();
- beans.put(id,o);
-
- List<Element> properties = (List<Element>) element.getChildren("property");
-
- for(Element property : properties)
- {
- String name = property.getAttributeValue("name");
- String ref = property.getAttributeValue("ref");
-
- Object refBean = beans.get(ref);
-
- String methodName = "set" + name.subString(0,1).toUpperCase() + name.subString(1);
- System.out.println(methodName);
-
- Method m = o.getClass().getMethod(methodName,refBean.getClass.getInterfaces()[0]);
- m.invoke(o,refBean);
- }
- }
- }
-
- public Object getBean(String name)
- {
- return beans.get(name);
- }
调用测试:
- public SpringTest{
-
- @Test
- public void testAdd()
- {
- BeanFactory factory = new ClassPathXmlApplicationContext();
- UserService service = (UserService) factory.getBean("userService");
-
- User u = new User();
- service.add(u);
- }
- }
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
- **XML配置**:在传统的Spring应用中,Bean的定义通常写在XML配置文件中,如`springbean-xml`中的配置。 - **注解配置**:使用`@Component`,`@Service`,`@Repository`和`@Controller`注解标记类,配合`@...
在本文中,我们将深入探讨Spring框架中的Bean XML配置,这是Spring的核心特性之一,它允许我们定义、管理和装配应用中的对象。我们将围绕以下知识点展开: 1. **Spring框架基础**: Spring是一个开源的Java平台,...
在Spring框架中,Bean的创建和初始化是IoC(Inversion of Control)容器的核心功能,这一过程涉及到多个步骤。以下是对Spring Bean创建初始化流程的详细解释: 1. **初始化ApplicationContext**: 开始时,通过`...
Spring bean 一般通过配置文件和注解进行加载,如果要实现jar或class文件,动态实现spring bean 的动态加载,并通过UrlClassLoader完成jar和class文件的加载。可以实现jar的热替换。spring的bean动态加载则需要对...
在Spring框架中,Bean的生命周期管理是其核心特性之一,然而有时我们可能会遇到Spring Bean重复执行两次的问题,即实例被构造两次。这个问题可能是由多种原因引起的,涉及到Spring的初始化过程和容器的行为。以下是...
在Spring框架中,bean的实例化是其核心功能之一,它允许我们管理应用程序中的对象生命周期。本篇将详细探讨两种工厂方法——实例工厂方法和静态工厂方法,用于创建Spring Bean。 首先,我们要理解Spring Bean的概念...
Spring Bean 加载过程源码解析文档 Spring Bean 加载过程是 Spring 框架中最核心的部分之一,涉及到 ApplicationContext 的初始化、Bean 的加载和注册等过程。在 Spring Boot 应用程序中,SpringApplication 负责...
### Spring Bean 属性详解 Spring框架是Java平台上的一个开源框架,主要用来简化企业级应用程序的开发。在Spring中,核心概念之一就是Bean,它是一个简单的Java对象,由Spring IoC容器管理。Spring通过XML配置文件...
获取springbean对象
在Spring框架中,Bean的加载顺序是理解Spring IoC(Inversion of Control,控制反转)容器工作原理的关键部分。这个过程涉及到Bean定义的解析、实例化、初始化等多个步骤。让我们详细探讨Spring Bean加载顺序的各个...
在Spring框架中,Bean生命周期是核心概念之一,它涉及到Bean的创建、初始化、使用和销毁等阶段。了解和掌握Bean生命周期对于开发高质量的Spring应用至关重要。以下是对Spring Bean生命周期的详细解析。 首先,Bean...
在Spring框架中,Bean的生命周期管理是其核心特性之一,它允许开发者控制Bean从创建到销毁的整个过程。本资源提供了在Spring 4.2环境下关于Bean生命周期的测试代码,帮助我们深入理解这一关键概念。 首先,让我们...
bean文件 springbean文件
### 普元EOS-SpringBean开发概述 普元EOS平台是一款面向企业级应用的低代码开发平台,它集成了大量的开发工具和技术框架,帮助企业快速构建高质量的应用系统。本文将围绕“普元EOS-SpringBean开发”这一主题展开...
在Spring框架中,管理Bean的生命周期是至关重要的。Bean的生命周期包括初始化、正常运行以及销毁三个阶段。在这些阶段,Spring允许开发者定义自定义的行为,以便在特定时刻执行必要的操作。下面将详细介绍如何通过...
创建SpringBean配置工具类(安全)如: <bean id=... scope="prototype"></bean>
SPRING BEAN的销毁 项目文件(ECLIPSE)。 之前各种测试,一直有问题。后来明白,容器啊!容器啊!!!!!容器灰常重要,使用容器促使BEAN的生命周期。 想了两天,这个问题,SPRING从入门到精通这本书真没处理好...
在Spring中,Bean的管理包含多个方面:创建Bean实例、配置Bean属性、控制Bean的生命周期以及Bean作用域的定义。接下来将详细解释这些知识点。 1. Spring的工厂类: Spring通过工厂模式设计了一系列工厂类来创建对象...
Spring Bean 的作用域之间有什么区别:Bean的作用域: 可以通过scope 属性来指定bean的作用域 ①singleton: 默认值。当IOC容器
Spring Bean的初始化和销毁实例详解 Spring Bean的初始化和销毁是Spring框架中一个非常重要的概念,它们都是Bean生命周期中不可或缺的一部分。在Spring框架中,我们可以使用多种方式来控制Bean的初始化和销毁,以下...