您的位置:首页 > 编程语言 > Java开发

Spring2.5学习1.1_bean配置及其Spring容器的实例化

2015-05-28 11:05 302 查看
Spring是一个开源的控制反转(Inversion of Control,IoC)和面向切面(AOP)的容器框架,它的主要目的是简化企业开发。

下面来介绍Spring容器的实例化

所需jar文件:

spring.jar

commons-logging.jar

实例化Spring容器常用的两种方式

方法一:在类路径下来寻找配置文件来实例化容器

ApplicationContext ctx = new ClassPathXmlApplicationContext(new String[]{"beans.xml"});

方法二:在文件系统路径下寻找配置文件来实例化容器

ApplicationContext ctx = new ClassPathXmlApplicationContext(new String[]{"d:\\beans.xml"});

第二种方式测试时可以用,但是正式生产环境下不可取,因为文件系统路径会不一致。

说明:Spring的配置文件可以有多个,可以通过String数组来实现。

接下来用方法1来实现Spring容器的实例化,用到单元测试:

ApplicationContext 只是一个接口,通过接口来引用Spring容器的实例类 ClassPathXmlApplicationContext

Spring容器有很多接口,可以通过任何一个接口来引用它的实例类。

ClassPathXmlApplicationContext的构造方法中,可以直接接受一个String类型的参数,当只有一个配置文件时,可以不用数组。

用Spring容器后,可以将业务bean直接交给Spring容器来管理。

面向接口的编程~

SpringTest.java JunitTest类

package junit.test;

import org.junit.BeforeClass;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import xjj.service.PersonService;

public class SpringTest {

	@BeforeClass
	public static void setUpBeforeClass() throws Exception {
	}

	@Test 
	public void instanceSpring(){
		ApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml");
		PersonService personService = (PersonService)ctx.getBean("personService");
		// 获取bean之后可以用接口调用bean的方法
		personService.save();
	}
}


bean的ID属性唯一,但是不能包含特殊字符,如果含有特殊字符可以使用name属性。建议bean取名时,第一个字母小写。

class属性说明我们要交给Spring容器来管理的bean,配置以后,这个bean就会由Spring容器来创建,我们用到该bean时,只需要用getBean("bean名称")方法从Spring容器来获取。

beans.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
           http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">           <bean id="personService" class="xjj.service.impl.PersonServiceBean"></bean>
</beans>


PersonServiceBean.java 实现类

package xjj.service.impl;

import xjj.service.PersonService;

public class PersonServiceBean implements PersonService {
	@Override
	public void save(){
		System.out.println("我是save()方法");
	}
}


PersonService.java,从PersonServiceBean.java抽取的接口

package xjj.service;

public interface PersonService {

	public abstract void save();

}


建一个Java工程,将相应代码粘贴即可~

结果:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐