简介:
Spring的BeanFactory接口是Spring框架的最核心接口,它提供了高级IoC配置机制,Spring为BeanFactory提供了多种实现,其中最常用的XmlBeanFactory,它的getBean()方法可以从指定的XML文件中读取数据,返回特定的Bean. 本文从最简单的例子来展示如何使用BeanFactory
Bike类:
package com.james.beanfactory; public class Bike { private String brand; private String type; private int price; public Bike() { System.out.println("In Bike Constructor"); } public String getBrand() { return brand; } public void setBrand(String brand) { this.brand = brand; } public String getType() { return type; } public void setType(String type) { this.type = type; } public int getPrice() { return price; } public void setPrice(int price) { this.price = price; } public void display(){ System.out.println("This is " + brand + " " + type + ", You can get me by CNY: " + price); } public void rideTo(String add){ System.out.println("Riding to: " + add); } }
Rider类:
package com.james.beanfactory; public class Rider { private String name; private Bike bike; public String getName() { return name; } public void setName(String name) { this.name = name; } public Bike getBike() { return bike; } public void setBike(Bike bike) { this.bike = bike; } public void rideTo(String to) { System.out.println("In Rider.rideTo()"); bike.rideTo(to); } }
XML bean配置文件:
<?xml version="1.0" encoding="UTF-8" ?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"> <bean id="bike" class="com.james.beanfactory.Bike" p:brand="Giant" p:type="ATX 770D" p:price = "2598" /> <bean id="rider" class="com.james.beanfactory.Rider" p:name="james" p:bike-ref="bike" /> </beans>
测试类:
package com.james.beanfactory; import java.io.IOException; import org.springframework.beans.factory.BeanFactory; import org.springframework.beans.factory.xml.XmlBeanFactory; import org.springframework.core.io.Resource; import org.springframework.core.io.support.PathMatchingResourcePatternResolver; import org.springframework.core.io.support.ResourcePatternResolver; public class BeanTest { public static void main(String[] args) throws IOException { // Read the XML configuration file. ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver(); Resource res = resolver.getResource("classpath:com/james/beanfactory/beans.xml"); System.out.println(res.getURL()); // Get and use bean. BeanFactory bf = new XmlBeanFactory(res); Bike myBike = bf.getBean("bike", Bike.class); myBike.display(); // A Rider contains a Bike, The dependancy is set in xml. Rider r = bf.getBean("rider", Rider.class); r.rideTo("Tibet"); } }
运行结果:
file:/E:/masterSpring/chapter3/WebRoot/WEB-INF/classes/com/james/beanfactory/beans.xml 2013-11-02 22:35:15,823 INFO [main] (XmlBeanDefinitionReader.java:315) - Loading XML bean definitions from class path resource [com/james/beanfactory/beans.xml] In Bike Constructor This is Giant ATX 770D, You can get me by CNY: 2598 In Rider.rideTo() Riding to: Tibet
说明:
- 此处我们的Bike和Rider都不需要参数去构造
- XML的配置文件里我们传递的是Bike和Rider的属性,以及一个依赖关系
- 可以使用多种注入方式获取一个Bean,本例子仅仅只是用了属性注入
相关推荐
写一个最简单的spring示例,使用spring3.0的框架,实现简单应用,索性放在这里供还没入门的spring爱好者参考,初步感受一下spring应用(spring高手就不必看了,这里并没有涉及高级特性,比如与ORM框架的整合,事务...
(1)DI注入属性:name为set方法去掉set之后首字母小写,ref为bean的id,需要有set方法,Spring会自动调用进行注入 (2)BeanFactory与ApplicationContext: ApplicationContext内部封装了BeanFactory,功能更加强大...
Spring框架是一系列应用框架的核心,也可以说是整合其他应用框架的基座。同时还是SpringBoot的基础。在当下的市场开发环境中,Spring占据的地位是非常高的,基本已经成为了开发者绕不过去的框架了。它里面包含了...
简介 Spring Inversion of Control Dependency Injection <br> 核心容器 Spring 核心容器实作了 IoC,BeanFactory 与 ApplicationContext 的运用是了解 Spring 的重点所在。 管理 Bean...
Spring3.0是Spring在积蓄了3年之久后,隆重推出的一个重大升级版本,进一步加强了Spring作为Java领域第一开源平台的翘楚地位。 Spring3.0引入了众多Java开发者翘首以盼的新功能和新特性,如OXM、校验及格式化框架...
IoC 容器是 Spring 框架的核心模块之一,提供了两种类型的实现:BeanFactory 和 ApplicationContext。BeanFactory 接口有多个实现类,其中比较常用的是 org.springframework.beans.factory.xml.XmlBeanFactory,该...
Spring3.0是Spring在积蓄了3年之久后,隆重推出的一个重大升级版本,进一步加强了Spring作为Java领域第一开源平台的翘楚地位。 Spring3.0引入了众多Java开发者翘首以盼的新功能和新特性,如OXM、校验及格式化框架...
目录 1.1 Spring 框架学习路线:...........................................................................................................................4 1.2 Spring 框架的概述:...........................
spring3的IOC,AOP,JDBC,orm等各个模块的使用示例集锦,可以作为入门的spring学习示例教程 在org.springweb.context.test包下 1.IOC * spring框架设计理念(POJO化) * 1.IOC 概念,作用,优点 Donnot call me,we ...
(三)基于XML的IOC环境搭建和入门 (四)ApplicationContext的三个实现类 (五)BeanFactory和ApplicationContext的区别 (六)Bean的细节:三种创建Bean对象的方式 (七)Bean的细节:作用范围 (八)Bean的细节:生命周期 (九...