创建maven工程
略
修改pom.xml
添加下面依赖
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.0.10.RELEASE</version>
</dependency>
</dependencies>
在pom.xml点击右键 -> maven -> reimport 导入依赖
加载jar包说明
上图红框中的jar,其中4个jar包:
- beans.jar
- context.jar
- core.jar
- expression.jar
就是下图中 Core Container 中的核心模块
实现IUserService接口
public interface IUserService {
public void save(String username, String password);
}
实现UserSrvImpl类
public class UserSrvImpl implements IUserService {
public void save(String username,String password){
System.out.println("保存 "+username+","+password+" 成功!");
}
}
创建xml配置文件
在 resources 文件夹下创建 spring.xml 配置文件
在spring中,该配置文件名字一般为:
application-config.xml
<?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
https://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="UserSrvImpl" class="top.malaoshi.UserSrvImpl">
</bean>
</beans>
- bean标签中的id:必须唯一,在代码中,通过该
id获取对象 - bean标签中的class:类的全路径,spring根据该类路径,通过反射方式创建对象
实现主启动类
public class Main {
public static void main(String[] args) {
//读取spring.xml文件,启动spring容器
ApplicationContext ac=new ClassPathXmlApplicationContext("spring.xml");
//根据spring.xml中bean标签的id,从spring容器中取出对象
IUserService srv=(IUserService)ac.getBean("UserSrvImpl");
//另一种写法
//IUserService srv=ac.getBean("UserSrvImpl",IUserService.class);
srv.save("lilei","123456");
}
}
说明:
ApplicationContext:读取spring.xml文件,启动spring容器ClassPathXmlApplicationContext加载类路径下(工程内)的配置文件
执行结果:
保存 lilei,123456 成功!
spring IOC 解耦总结
主启动类使用 UserSrvImpl,没有引用该类(引用 IUserService 接口是必须的,不可避免),也没有 通过 new 创建 该类对象
是由 spring容器 管理(创建) UserSrvImpl 类对象,并从spring容器中获取该类对象

