Spring IoC的使用配置(一)

本文主要交代Spring相关的配置的快速了解与使用,所以对于不长常使用的配置项简单叙述或不讲解,需要深入了解Spring的原理,还需读者自行学习或补充。

本例使用的Spring版本为spring-4.0.0.M2,准备环境操作如下:

一、创建Java Project项目,导入需要的Spring的jar。本例使用的包括:

/SpringLearn/lib/spring-aop-4.0.0.M2.jar

/SpringLearn/lib/spring-beans-4.0.0.M2.jar

/SpringLearn/lib/spring-context-4.0.0.M2.jar

/SpringLearn/lib/spring-core-4.0.0.M2.jar

/SpringLearn/lib/spring-expression-4.0.0.M2.jar

/SpringLearn/lib/spring-instrument-4.0.0.M2.jar

另外包括spring引用的外部jar文件。

/SpringLearn/lib/commons-logging-1.1.3.jar

二、在src下创建主配置文件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.xsd">

	<!-- Learn 01 Bean的命名  导入相关的spring配置文件-->
	<import resource="com/mahaochen/spring/learn01/beanLearn01.xml"/>

</beans>

【转载使用,请注明出处:http://blog.csdn.net/mahoking

Spring bean的基本配置

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.xsd">
	<bean id="spearker01" class="com.mahaochen.spring.learn01.Speaker"
		scope="singleton" />
</beans>

id:称为“标识符”,用于指明对应的bean,id值必须是唯一的;

class:用于指明需要实例化对应的类对象;

scope:用于指明实例对应的作用域。

Spring bean的命名

操作步骤:

1、 创建Speaker对象。

public class Speaker {

	/**
	 * 演讲
	 */
	public void speech() {
		System.out.println("The Speaker starts to speech!");
	}
}

2、 创建Spring配置文件beanLearn01.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.xsd">

	<!-- Learn 01 Bean的命名 -->
	<!--scope:
		singleton 在每个Spring IoC容器中一个bean定义对应一个对象实例。 prototype 一个bean定义对应多个对象实例。
		request 在一次HTTP请求中,一个bean定义对应一个实例;即每次HTTP请求将会有各自的bean实例,它们依据某个bean定义创建而成。该作用域仅在基于web的Spring
		ApplicationContext情形下有效。 session 在一个HTTP Session中,一个bean定义对应一个实例。该作用域仅在基于web的Spring
		ApplicationContext情形下有效。 -->
	<bean id="spearker01" class="com.mahaochen.spring.learn01.Speaker"
		scope="singleton" />
</beans>

3、 将Spring配置文件beanLearn01.xml引入到主配置文件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.xsd">

	<!-- Learn 01 Bean的命名  -->
	<import resource="com/mahaochen/spring/learn01/beanLearn01.xml"/>
</beans>

4、 编写测试类TestSpring01.java。

public class TestSpring01 {

	public static void main(String[] args) {

		BeanFactory beanFactory = new ClassPathXmlApplicationContext("beans.xml");
		//根据id获取bean【方式一】
		Speaker speaker01 = (Speaker) beanFactory.getBean("spearker01");
		speaker01.speech();
		//根据id获取bean【方式二】
		Speaker speaker02 = beanFactory.getBean("spearker01", Speaker.class);
		speaker02.speech();
		System.out.println("Bean 的 作用域 配置成 scope=\"singleton\" 时:两个Speaker是同一对象引用");
		System.out.println("\"Speaker speaker01 = Speaker speaker02?\"  " +(speaker01==speaker02));
	}
}

使用构造器实例化Bean

操作步骤:

1、创建Speaker对象。

public class Speaker {
	private String name ;
	private String topic;
	private int timeHour;
	/**
	 * 空的构造函数
	 */
	public Speaker() {
	}

	/**
	 * 带参构造函数
	 * @param name
	 * @param topic
	 * @param timeHour
	 */
	public Speaker(String name, String topic, int timeHour) {
		this.name = name;
		this.topic = topic;
		this.timeHour = timeHour;
	}

	/**
	 * 演讲
	 */
	public void speech() {
		System.out.println(toString());
	}

	@Override
	public String toString() {
		return "Speaker [name=" + name + ", topic=" + topic + ", timeHour="
				+ timeHour + "]";
	}
}

2、创建Spring配置文件beanLearn02.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.xsd">
	<!-- Learn 02 使用构造器实例化Bean -->
	<!--使用有参数构造参数-->
	<bean id="speaker02" class="com.mahaochen.spring.learn02.Speaker">
		<!-- 指定构造器参数 -->
		<constructor-arg index="0" value="Make"/>
		<constructor-arg index="1" value="enjoy your lift!"/>
		<constructor-arg index="2" value="1"></constructor-arg>
	</bean>
</beans>

3、将Spring配置文件beanLearn02.xml引入到主配置文件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.xsd">

	<!-- Learn 02  使用构造器实例化Bean -->
	<import resource="com/mahaochen/spring/learn02/beanLearn02.xml"/>
</beans>

4、编写测试类TestSpring02.java。

public class TestSpring02 {

	public static void main(String[] args) {

		BeanFactory beanFactory = new ClassPathXmlApplicationContext("beans.xml");
		//使用构造器实例化Bean
		Speaker speaker = beanFactory.getBean("speaker02", Speaker.class);
		speaker.speech();
		System.out.println("Success!");
	}
}

【转载使用,请注明出处:http://blog.csdn.net/mahoking

时间: 2024-11-18 22:28:54

Spring IoC的使用配置(一)的相关文章

Spring Ioc 基于Java的容器配置

一.基于Java的容器配置 @Configuration & @Bean 注解: 在Spring的新的Java-Configuration的中间产物是基于类的@Configuration的注解和基于方法的@Bean注解.         @Bean注解是用来指明方法的实例化,配置和初始化一个对象是通过Spring的IoC容器来管理的.对于那些熟悉使用以XML配置Spring的<beans /> 标签,@Bean注解和<bean />标签是起相同作用的.你能和Spring的@

spring IOC

本节要点: IOC容器概述 IOC容器的工作原理 BeanFactory接口及常用实现类XmlBeanFactory ApplicationContext接口及常用实现类 BeanFactory和ApplicationContext的区别 1  IOC容器概述 Spring的IoC容器实现了控制反转,即在开发过程中,开发人员不需要关心容器是怎样的,也不需要调用容器的任何API.容器会自动进行被管理对象的初始化及对象之间依赖关系的维护. 在Spring中,最重要的是两个包,提供了IoC容器的基本功

Spring IoC入门

------------------siwuxie095 Spring IoC 环境搭建 1.先下载相关库文件,下载链接: (1)http://projects.spring.io/spring-framework/ (2)http://repo.spring.io/release/org/springframework/spring/ 注意:下载以 -dist.zip 结尾的文件,这里选择下载 Spring 4.3 版本 将 spring-framework-4.3.7.RELEASE-dis

介绍 Spring IoC 容器和 bean

简介 本章涵盖了 Spring Framework实现控制翻转 (IoC) 的原则. IoC 有时也被称为依赖注入 (DI).这是一个对象定义他们依赖的过程,其中对象之间的相关性,也就是说,它们一起工作,只能通过构造函数参数,参数工厂方法或设置在其构造后的对象实例或者是从一个工厂方法返回的对象实例的属性上.容器在创建的 bean 注入这些依赖.这个过程是根本的反转,因此称为控制反转(IoC),bean 本身通过直接构造类,或作为 Service Locator(服务定位器)模式的机制,来控制其依

Spring ioc基础内容

1 BeanFactory与ApplicationContext区别 BeanFactory是Spring框架中IoC容器的顶层接?,它只是?来定义?些基础功能,定义?些基础规范,?ApplicationContext是它的?个?接?,所以ApplicationContext是具备BeanFactory提供的全部功能的.通常,我们称BeanFactory为SpringIOC的基础容器,ApplicationContext是容器的?级接?,?BeanFactory要拥有更多的功能,?如说国际化?持

[Spring实战系列](6)配置Spring IOC容器的Bean

1. 简介 Spring提供了一个强大的IOC容器来管理组成应用的bean.为了利用容器服务,必须配置运行于Spring IOC容器中的Bean. 2. 解决方案 你可以通过XML文件,属性文件,注释甚至API来设置Spring IOC容器中的Bean. Spring允许你在一个或者多个bean配置文件中配置bean.对于简单的应用程序,可以在单个配置文件中集中配置bean.但是对于有许多bean的大型应用,你应该根据其功能将其分割到多个配置文件中. 3. 创建Spring配置 正如前面所讲的,

Spring IOC机制之使用注解配置bean

一. 通过注解配置bean 1.1       概述 相对于XML方式而言,通过注解的方式配置bean更加简洁和优雅,而且和MVC组件化开发的理念十分契合,是开发中常用的使用方式. 1.2       使用注解标识组件 ①普通组件:@Component:标识一个受Spring IOC容器管理的组件 ②持久化层组件:@Respository:标识一个受Spring IOC容器管理的持久化层组件 ③业务逻辑层组件:@Service:标识一个受Spring IOC容器管理的业务逻辑层组件 ④表述层控制

Spring IOC的初始化过程——基于XML配置(一)

前言:在面试过程中,Spring IOC的初始化过程,基本上属于必答题,笔者的亲身经历.因此本文基于Spring的源码对其IOC的初始化过程进行总结. 注:spring版本为4.3.0. 1.调试前准备 在spring源码中,添加如下内容(有关spring源码如何导入idea,请查询相关资料): 说明: ①User为简单bean,含有name和gender两个属性. ②User.xml为spring配置文件,仅仅对User进行简单的配置. ③SpringIoCDebug为测试类. 先看执行结果:

spring学习3:spring ioc的纯注解配置

spring ioc的纯注解配置 一.分析 在上一篇博客中实现了xml+注解的ioc使用,我们发现,之所以离不开xml配置文件的原因是在该文件中有一句很关键的话,告知spring在创建容器时要扫描的包,依据扫描到的注解创建对象并放入容器中. <!-- 开启注解扫描,告知spring在创建容器时要扫描的包 --> <context:component-scan base-package="com.lyy.service"> </context:compone