一、编写流程
1. 下载Spring开发包
2. 导入Spring的jar包
3. 配置Spring的核心xml文件
4. 在程序中读取Spring的配置文件来收获Bean【Bean其实就是一个new好的对象】
二、下载官网
Spring现在有很多框架,如Spring、SpringMVC、SpringData、SpringBoot
三、Spring核心jar包
1. spring-core-3.2.2.RELEASE.jar
包含Spring框架基本的核心工具类,Spring其它组件都要使用到这个包里的类,是其它组件的基本核心。
2. spring-beans-3.2.2.RELEASE.jar
所有应用都要用到的,它包含访问配置文件、创建和管理bean,
以及进行Inversion Of Control(IOC)和Dependency Injection(DI)操作相关的所有的类。
3. spring-context-3.2.2.RELEASE.jar
Spring提供在基础IOC功能上的扩展服务,此外还提供许多企业级服务的支持,
如邮件服务、任务调度、JNDI定位、EJB集成、远程访问、缓存以及各种视图层框架的封装等。
4. spring-expression-3.2.2.RELEASE.jar
Spring表达式语言。
5. com.springsource.org.apache.commons.logging-1.1.1.jar
第三方的主要用于处理日志。
四、Spring入门案例
第一步:下载Spring的jar包
第二步:创建Web项目,导入Spring的jar包
导入4个核心(core、beans、context、expression)+ 1个依赖(Commons-logging)
第三步:写个简单的Service,并在main方法中调用
第四步:Spring IOC控制反转创建实例
1、写个配置文件beans.xml,配置文件的约束可以访问spring-framework-3.2.8.RELEASE-distspring-framework-3.2.8.RELEASEdocsspring-framework-referencehtmlxsd-config.html查看
xml约束有两种方式:dtd和schema(后缀.xsd)
2、离线配置文件约束提示的配置
3. Beans.xml文件配置
4. 从beans.xml中获取bean
总结:
【IOC】Inverse Of Control控制反转,就是将原本在程序中手动创建UserService对象的控制权,交由Spring框架管理,简单说,就是将创建UserService对象控制权被反转到了Spring框架。
五、案例代码
IUserService.java
1 package com.gyf.service; 2 3 public interface IUserService { 4 public void add(); 5 }
UserServiceImpl.java
1 package com.gyf.service; 2 3 public class UserServiceImpl implements IUserService { 4 @Override 5 public void add() { 6 System.out.println("创建用户。。。"); 7 } 8 }
beans.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 xsi:schemaLocation=" 5 http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> 6 7 <!--配置一个bean--> 8 <bean id="userService" class="com.gyf.service.UserServiceImpl"></bean> 9 10 </beans>
测试类:Lesson02.java
1 package com.gyf.test; 2 3 import com.gyf.service.IUserService; 4 import com.gyf.service.UserServiceImpl; 5 6 import org.junit.Test; 7 import org.springframework.context.ApplicationContext; 8 import org.springframework.context.support.ClassPathXmlApplicationContext; 9 10 public class Lesson02 { 11 @Test 12 public void test1(){ 13 //方法一:以前用service 14 IUserService userService = new UserServiceImpl(); 15 userService.add(); 16 } 17 18 @Test 19 public void test2(){ 20 //方法二:现在使用UserService方式从Spring容器获取 21 //1.加载bean.xml这个Spring配置文件,内部就会创建对象 22 ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml"); 23 //2.从Spring容器获取userService对象,通过id去找 24 IUserService userService = (IUserService) context.getBean("userService"); 25 userService.add(); 26 } 27 28 @Test 29 public void test3(){ 30 //方法二:现在使用UserService方式从Spring容器获取 31 //1.加载bean.xml这个Spring配置文件,内部就会创建对象 32 ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml"); 33 //2.从Spring容器获取userService对象,通过id去找 34 IUserService userService1 = (IUserService) context.getBean("userService"); 35 userService1.add(); 36 37 IUserService userService2 = (IUserService) context.getBean("userService"); 38 userService2.add(); 39 40 System.out.println(userService1); 41 System.out.println(userService2); 42 //结果,userService1和UserService2是同一个对象 43 } 44 }