`

Spring学习系列之BeanFactory入门(1)

 
阅读更多

简介:

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

 

 

说明:

  1. 此处我们的Bike和Rider都不需要参数去构造
  2. XML的配置文件里我们传递的是Bike和Rider的属性,以及一个依赖关系
  3. 可以使用多种注入方式获取一个Bean,本例子仅仅只是用了属性注入
0
0
分享到:
评论

相关推荐

    强烈推荐 Spring3.0 入门 代码下载

    写一个最简单的spring示例,使用spring3.0的框架,实现简单应用,索性放在这里供还没入门的spring爱好者参考,初步感受一下spring应用(spring高手就不必看了,这里并没有涉及高级特性,比如与ORM框架的整合,事务...

    Spring入门.docx

    (1)DI注入属性:name为set方法去掉set之后首字母小写,ref为bean的id,需要有set方法,Spring会自动调用进行注入 (2)BeanFactory与ApplicationContext: ApplicationContext内部封装了BeanFactory,功能更加强大...

    Spring高级之注解驱动开发视频教程

    Spring框架是一系列应用框架的核心,也可以说是整合其他应用框架的基座。同时还是SpringBoot的基础。在当下的市场开发环境中,Spring占据的地位是非常高的,基本已经成为了开发者绕不过去的框架了。它里面包含了...

    开源框架 Spring Gossip

    简介 Spring Inversion of Control Dependency Injection &lt;br&gt; 核心容器 Spring 核心容器实作了 IoC,BeanFactory 与 ApplicationContext 的运用是了解 Spring 的重点所在。 管理 Bean...

    Spring.3.x企业应用开发实战(完整版).part2

    Spring3.0是Spring在积蓄了3年之久后,隆重推出的一个重大升级版本,进一步加强了Spring作为Java领域第一开源平台的翘楚地位。  Spring3.0引入了众多Java开发者翘首以盼的新功能和新特性,如OXM、校验及格式化框架...

    javaee 习题答案.docx完整详细

    IoC 容器是 Spring 框架的核心模块之一,提供了两种类型的实现:BeanFactory 和 ApplicationContext。BeanFactory 接口有多个实现类,其中比较常用的是 org.springframework.beans.factory.xml.XmlBeanFactory,该...

    Spring3.x企业应用开发实战(完整版) part1

    Spring3.0是Spring在积蓄了3年之久后,隆重推出的一个重大升级版本,进一步加强了Spring作为Java领域第一开源平台的翘楚地位。  Spring3.0引入了众多Java开发者翘首以盼的新功能和新特性,如OXM、校验及格式化框架...

    spring学习笔记

    目录 1.1 Spring 框架学习路线:...........................................................................................................................4 1.2 Spring 框架的概述:...........................

    xmljava系统源码-springdemo:spring3的IOC,AOP,JDBC,orm等各个模块的使用示例集锦,可以作为入门的spri

    spring3的IOC,AOP,JDBC,orm等各个模块的使用示例集锦,可以作为入门的spring学习示例教程 在org.springweb.context.test包下 1.IOC * spring框架设计理念(POJO化) * 1.IOC 概念,作用,优点 Donnot call me,we ...

    Spring之IOC和DI(三)

    (三)基于XML的IOC环境搭建和入门 (四)ApplicationContext的三个实现类 (五)BeanFactory和ApplicationContext的区别 (六)Bean的细节:三种创建Bean对象的方式 (七)Bean的细节:作用范围 (八)Bean的细节:生命周期 (九...

Global site tag (gtag.js) - Google Analytics