Spring 1.2
IOC概述
2.1 什么是IOC Inversion of control
控制反转:创建对象的权利交给了spring容器
以前创建对象使用new ,使用spring不new了
2.2 案例
服务器有个接口,和一个实现类,调用接口的方法。
Spring实现
可以直接创建spring项目,但是jar包会在项目里面,体积过大
也可以创建maven项目 pom管理依赖
案例:
Spring 项目测试
(这里在IDEA中提供两种创建项目方式:Spring项目、Maven项目)
第一种:创建Spring项目
A 创建项目
创建后,自动下载jar包到项目,下载成功后,结构如图:
(可以查看spring项目相对maven项目庞大的多,故一般创建maven项目.)
B 创建接口、实现类
public interface UserService {
void saveUser();
}
public class UserServiceImpl implements UserService {
@Override
public void saveUser() {
System.out.println(“Spring 创建对象成功!Hello World!” );
}
}
C 创建xml文件
测试时:名称自定义(任意),位置任意。
开发时名称一般为ApplicationContext.xml 位置放在resources中
<?xml version="1.0" encoding="UTF-8"?>
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
<!--
bean :配置要被创建对象的类/配置由spring容器管理的类
id:给bean取名,用于获取
class:类的全限定名
-->
<bean id="userServiceId" class="com.whxh.test1.UserServiceImpl">
</bean>
</beans>
D 测试类
public class IOCTest {
@Test
public void iocTest(){
//创建spring容器
ApplicationContext applicationContext=new ClassPathXmlApplicationContext(“com/whxh/test1/beans1.xml”);
//获取对象
UserServiceImpl userService = applicationContext.getBean(“userServiceId”, UserServiceImpl.class);
userService.saveUser();
}
}
案例结构图:
所有文件可以放在src下的任意一个包(目录)下。
运行测试类。
第二种:创建Maven项目
A 创建项目
B 在pom.xml文件添加依赖
(spring四个核心依赖:beans/core/context/expression)
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>4.3.21.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>4.3.21.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>4.3.21.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-expression</artifactId>
<version>4.3.21.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>4.3.21.RELEASE</version>
</dependency>
</dependencies>
C 编写代码测试
将刚才创建的spring项目的代码重新创建(或复制导入)
注意beans.xml文件放入resources资源目录下
运行测试类。