Spring--1一个简单的Spring程序

1、Spring概述

--Spring是一个开源的以控制反转(Inverse(相反) of Control,IoC)和面向切面(Aspect(方向) Oriented(定向) Programming,AOP)为核心的框架。

用于简化企业级开放。

--控制反转:应用本身不负责依赖对象的创建及维护,依赖对象的创建及维护由外部容器负责,

此时对依赖对象的控制权就由应用转移到了外部容器。这种控制权的转移就称为控制反转。

运行时,可通过依赖注入的方式将对象注入到应用的组件中。

--面向切面:也称为面向切面编程,它是面向对象编程(OOP)的不补充和完善。

2.Spring框架

 

Core Container核心容器,Spring的其他模块都是建立在核心容器之上。

Beans和Core模块实现了Spring框架的最基本功能,规定了创建、配置和管理Bean的方式,提供了控制反转(IoC)和依赖注入(DI)的特性。

Context模块建立在Core和Beans模块之上,该模块向Spring框架提供了上下文信息。

Expression Language模块提供了一种强大的表达式语言来访问和操纵运行时的对象。

Data Access/Integration为数据访问/集成模块

3、实验步骤

①下载架包:http://download.csdn.net/detail/yy228313/7320815

②创建一个java项目

③搭建Spring运行环境

④创建一个Peron接口及其的两个实现类American和Chinese。

⑤创建一个PersonService业务类,其中包括一个方法:sayHello( String name),在该方法中调用Person接口的hello方法

⑥在src目录下新建一个Spring的配置文件

4.代码

Person接口和两个实现类:

package com.sise.ye.service.inter;

/**
 * 项目名称:javaII-11
 * 包名:com.sise.ye.service.inter
 * 类名:Person.java
 * 创建人:叶晓东
 * 创建时间:2014-5-8
 * 描述:接口
 * 备注:
 * @version 1.0
 */
public interface Person {
	public String hello(String username);
}


package com.sise.ye.service.impl;

import com.sise.ye.service.inter.Person;

/**
 * 项目名称:javaII-11
 * 包名:com.sise.ye.service.impl
 * 类名:American.java
 * 创建人:叶晓东
 * 创建时间:2014-5-8
 * 描述:实现类(实现Person)
 * 备注:
 * @version 1.0
 */
public class American implements Person{
	public String hello(String username){
		return "Hello,"+username+"! I come from American.";
	}
}



package com.sise.ye.service.impl;

import com.sise.ye.service.inter.Person;

/**
 * 项目名称:javaII-11
 * 包名:com.sise.ye.service.impl
 * 类名:Chinese.java
 * 创建人:叶晓东
 * 创建时间:2014-5-8
 * 描述:实现类(实现Person)
 * 备注:
 * @version 1.0
 */
public class Chinese implements Person{
	public String hello(String username){
		return "您好,"+username+"!我来自中国。";
	}

}

 业务类:

package com.sise.service;

import com.sise.ye.service.inter.Person;

/**
 * 项目名称:javaII-11
 * 包名:com.sise.service
 * 类名:PersonServiceBean.java
 * 创建人:叶晓东
 * 创建时间:2014-5-8
 * 描述:业务类
 * 备注:
 * @version 1.0
 */
public class PersonServiceBean {
	private Person person;
	public void sayHello(String username){
		System.out.println(person.hello(username));
	}
	//注入
	public void setPerson(Person person){
		this.person=person;
	}
}

  

applicationContext.xml(Spring的配置文件)

<?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:context="http://www.springframework.org/schema/context"
 xsi:schemaLocation="http://www.springframework.org/schema/beans
 http://www.springframework.org/schema/beans/spring-beans-4.0.xsd">
 
 <bean id="chinese" class="com.sise.ye.service.impl.Chinese"/>
 <bean id="american" class="com.sise.ye.service.impl.American"/>
 <bean id="personservice" class="com.sise.service.PersonServiceBean">
    <property name="person" ref="american"/>
 </bean>
 
 
 </beans>

  测试类:

package com.sise.ye.test;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.sise.service.PersonServiceBean;

/**
 * 项目名称:javaII-11
 * 包名:com.sise.ye.test
 * 类名:SpringTest.java
 * 创建人:叶晓东
 * 创建时间:2014-5-8
 * 描述:测试类
 * 备注:
 * @version 1.0
 */
public class SpringTest {
	public static void main(String args[]){
		ApplicationContext ctx=new ClassPathXmlApplicationContext("applicationContext.xml");
		PersonServiceBean psb=(PersonServiceBean)ctx.getBean("personservice");
		psb.sayHello("晓东");
	}
}

5.代码分析

6.代码下载

 

posted @ 2014-05-09 11:38  SeatonYexd  阅读(260)  评论(0编辑  收藏  举报