一、Spring概述java
--Spring是一个开源的以控制反转(Inverse(相反) of Control,IoC)和面向切面(Aspect(方向) Oriented(定向) Programming,AOP)为核心的框架。spring
用于简化企业级开放。编程
--控制反转:应用自己不负责依赖对象的建立及维护,依赖对象的建立及维护由外部容器负责,app
此时对依赖对象的控制权就由应用转移到了外部容器。这种控制权的转移就称为控制反转。框架
运行时,可经过依赖注入的方式将对象注入到应用的组件中。测试
--面向切面:也称为面向切面编程,它是面向对象编程(OOP)的不补充和完善。this
2.Spring框架.net
Core Container核心容器,Spring的其余模块都是创建在核心容器之上。xml
Beans和Core模块实现了Spring框架的最基本功能,规定了建立、配置和管理Bean的方式,提供了控制反转(IoC)和依赖注入(DI)的特性。对象
Context模块创建在Core和Beans模块之上,该模块向Spring框架提供了上下文信息。
Expression Language模块提供了一种强大的表达式语言来访问和操纵运行时的对象。
Data Access/Integration为数据访问/集成模块
三、实验步骤
①下载架包: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.代码下载