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接口和两个实现类:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
|
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+ "!我来自中国。" ;
}
} |
业务类:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
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的配置文件)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
<?xml version= "1.0"
encoding= "UTF-8" ?>
<beans xmlns= "http://www.springframework.org/schema/beans"
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>
|
测试类:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
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.代码下载