在我们准备使用spring框架工作前我们需要进行一些前期的准备工作保证框架的正常使用,下面就是一些前期的准备工作。
一、导入jar包
导入的jar包我们总结为:四个核心(beans,core,context,expression)+一个依赖(commons-loggins)
二、目标类
创建UserService接口和UserServiceImpl实现类。以往我们创建一个对象都是用new 关键词调用构造器得到对象,但是在spring中我们利用ioc(控制反转)从spring容器中获取对象。相当于使用了工厂模式,将创造对象的任务移交给了工厂,按需进行生产对象。
public interface UserService {
public void addUser();
}
public class UserServiceImpl implements UserService {
@Override
public void addUser() {
System.out.println("a_ico add user");
}
}
三、配置文件
要使用bean首先我们得先有配置文件,配置文件的位置我们可以放在任意位置,但是一般我们放在classPath下(即src),配置文件名字我们也可以任意取,但是我们一般使用ApplicationContext,配置文件的内容是schema约束
<?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">
<!-- 配置service
<bean> 配置需要创建的对象
id :用于之后从spring容器获得实例时使用的
class :需要创建实例的全限定类名
-->
<bean id="userServiceId" class="com.itheima.a_ioc.UserServiceImpl"></bean>
</beans>
四、测试
@Test
public void demo02(){
//从spring容器获得
//1 获得容器
String xmlPath = "com/itheima/a_ioc/beans.xml";
ApplicationContext applicationContext = new ClassPathXmlApplicationContext(xmlPath);
//2获得内容 --不需要自己new,都是从spring容器获得
UserService userService = (UserService) applicationContext.getBean("userServiceId");
userService.addUser();
}
由于ApplicationContext是一个接口,所以我们使用ClassPathXmlApplicationContext类创建一个ApplicationContext对象,然后使用applicationContext 的getBean()方法获取UserService对象。
ApplicationContext其实有三种常用实现
1.ClassPathXmlApplicationContext:从类路径加载
2.FileSystemXmlApplicationContext:从文件系统加载
3.XmlWebApplicationContext:从web系统加载