Spring(二)—— 快速入门

一、编写流程

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 }
View Code

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 }
View Code

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>
View Code

测试类: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 }
View Code
原文地址:https://www.cnblogs.com/upyang/p/13557049.html