首页 > 代码库 > Spring的简单demo
Spring的简单demo
----------------------------------------
开发一个Spring的简单Demo,具体的步骤如下:
1.构造一个maven项目
2.在maven项目的pom.xml文件中添加spring的依赖包
3.开发一个接口Api 和两个实现类ApiOne,ApiTwo
4.新增Spring的配置文件applicationContext.xml
5.编写测试类Client
下面开始具体每个步骤的描述:
步骤1:构造一个maven项目 springTest
步骤2:在maven项目的pom.xml文件中添加spring的依赖包
1 <dependencies> 2 <!-- spring相关jar包 --> 3 <dependency> 4 <groupId>org.springframework</groupId> 5 <artifactId>spring-context</artifactId> 6 <version>4.0.0.RELEASE</version> 7 </dependency> 8 9 <dependency> 10 <groupId>org.springframework</groupId> 11 <artifactId>spring-context-support</artifactId> 12 <version>4.0.0.RELEASE</version> 13 </dependency> 14 15 <dependency> 16 <groupId>org.springframework</groupId> 17 <artifactId>spring-jdbc</artifactId> 18 <version>4.0.0.RELEASE</version> 19 </dependency> 20 21 <dependency> 22 <groupId>org.springframework</groupId> 23 <artifactId>spring-orm</artifactId> 24 <version>4.0.0.RELEASE</version> 25 </dependency> 26 27 <dependency> 28 <groupId>org.springframework</groupId> 29 <artifactId>spring-tx</artifactId> 30 <version>4.0.0.RELEASE</version> 31 </dependency> 32 <dependency> 33 <groupId>junit</groupId> 34 <artifactId>junit</artifactId> 35 <version>3.8.1</version> 36 <scope>test</scope> 37 </dependency> 38 </dependencies>
步骤3:开发一个接口Api 和两个实现类ApiOne,ApiTwo
接口Api:
1 package com.springTest; 2 3 public interface Api { 4 public String test(int num); 5 }
实现类ApiOne:
1 package com.springTest; 2 3 public class ApiOne implements Api { 4 5 public String test(int num) { 6 System.out.println("ApiOne test method, num = " + num); 7 return num +"xixixi"; 8 } 9 }
实现类ApiTwo:
1 package com.springTest; 2 3 public class ApiTwo implements Api { 4 5 public String test(int num) { 6 System.out.println("ApiTwo test method, num = " + num); 7 return num +"hahaha"; 8 } 9 }
步骤4:新增Spring的配置文件applicationContext.xml
1 <?xml version="1.0" encoding="UTF-8"?> 2 <beans xmlns="http://www.springframework.org/schema/beans" 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 4 xmlns:context="http://www.springframework.org/schema/context" 5 xmlns:aop="http://www.springframework.org/schema/aop" 6 xmlns:tx="http://www.springframework.org/schema/tx" 7 xsi:schemaLocation=" 8 http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd 9 http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd 10 http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd 11 http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd"> 12 13 <bean name="api" class="com.springTest.ApiTwo"></bean> 14 15 </beans>
步骤5:编写测试类Client
1 package com.springTest; 2 3 import org.springframework.context.ApplicationContext; 4 import org.springframework.context.support.ClassPathXmlApplicationContext; 5 6 public class Client { 7 public static void main(String[] args) { 8 ApplicationContext context = new ClassPathXmlApplicationContext(new String[]{"applicationContext.xml"}); 9 Api api = (ApiTwo)context.getBean("api"); 10 String result = api.test(123); 11 System.out.println("result = " + result); 12 } 13 }
在ApplicationContext.xml配置文件中 <bean name="api" class="com.springTest.ApiTwo"></bean> 运行测试代码Client时,使用的是ApiTwo这个实现类,如果要更换实现类的话,只需要把配置bean替换成:<bean name="api" class="com.springTest.ApiOne"></bean>就可以了。
从上面的整个代码中可以看出,并没有出现Spring的任何组件,客户代码仅仅面向接口编程,而无需知道实现类的具体名称。同时,可以很简单的通过修改配置文件来切换具体的底层实现类。
Bean和容器
什么是Spring中的Bean
在Spring中,那些组成应用的主体及由Spring IoC容器所管理的对象被称之为bean。简单地讲,bean就是由Spring容器初始化、装配及被管理的对象,除此之外,bean就没有特别之处了。而bean定义以及bean相互间的依赖关系将通过配置元数据来描述。
Spring的IoC容器
org.springframework.beans.factory.BeanFactory是Spring IoC容器的实际代表者,IoC容器负责容纳bean,并对bean进行管理。
Spring IoC容器将读取配置元数据;并通过它对应用中各个对象进行实例化、配置以及组装。通常情况下我们使用简单的XML来作为配置元数据的描述格式。在XML配置元数据中我们可以对那些我们希望通过Spring IoC容器管理的bean进行定义。
BeanFactory和ApplicationContext
IoC/DI是Spring最核心的功能之一,Spring框架所提供的众多功能之所以能成为一个整体正是建立在IoC的基础之上,简而言之,BeanFactory提供了配置框架及基本功能,而ApplicationContext则增加了更多企业核心内容的功能。ApplicationContext完全由BeanFactory扩展而来.
Spring的简单demo