使用 intellijIDEA 创建 maven 工程进行 Spring ioc 测试

使用 intellijIDEA 创建 maven 工程进行 Spring ioc 测试 ioc 概念

控制反转(Inversion of Control,缩写为IOC),是面向对象编程中的一种设计原则,可以用来减低计算机代码之间的耦合度。其中最常见的方式叫做依赖注入(Dependency Injection,简称DI)。通过控制反转,对象在被创建的时候,由一个调控系统内所有对象的外界实体,将其所依赖的对象的引用传递给它。也可以说,依赖被注入到对象中。

IOC和DI区别

IOC: 控制反转,把对象创建交给spring进行配置

DI: 依赖注入,向类里面的属性中设置值

关系:依赖注入不能单独存在,需要在ioc基础之上完成操作

创建 spring 实例进行 ioc 测试

我们使用 intellijIDEA 来完成这一操作,首先创建 maven 工程(maven提供了 java 中 jar 包的下载管理,方便我们使用下载和导入 jar 包,推荐使用)。打开 idea,选择 Create New Project, 在弹出来的窗口中选择创建 maven 工程,设置好 JDK 后点击 next 进行下一步。

使用 intellijIDEA 创建 maven 工程进行 Spring ioc 测试

设置好 GrouId、ArtifactId、Version 后,按提示一路设置创建好 maven 项目。

使用 intellijIDEA 创建 maven 工程进行 Spring ioc 测试

我们修改 pom.xml 设置,配置需要添加下载的 jar 包:

<dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>4.2.4.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>4.2.4.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-beans</artifactId> <version>4.2.4.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-expression</artifactId> <version>4.2.4.RELEASE</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> <scope>test</scope> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> </dependency> </dependencies>

当我们修改pom.xml 文件时,idea 会提示我们导入,我们点击 Import Change即可,当然也可以设置Auto-Import自动导入:

使用 intellijIDEA 创建 maven 工程进行 Spring ioc 测试

我们在 src/main/java 下新建一个 package:cn.itcast.ioc, 并在 package 下新建 User.java:

package cn.itcast.ioc; public class User { public void add(){ System.out.println("add......"); } //public static void main(String[] args) { //原始做法 //User user = new User(); //user.add(); //} }

在 resources目录下新建 applicationContext.xml 配置文件:

<?xml version="1.0" encoding="UTF-8"?> <!-- scheme约束 --> <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 "> <!-- ioc 入门 --> <bean></bean> </beans>

然后在 src/main/java 下创建测试文件 TestIOC.java ,尝试能否通过装载 bean,交由 spring 创建对象,通过配置文件输出 ioc 实例:

package cn.itcast.ioc; import org.junit.Test; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class TestIOC { @Test public void testUser(){ //1.加载 spring 配置文件,根据创建对象 ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml"); //2.得到配置创建的对象 User user = (User) context.getBean("user"); user.add(); } }

运行 TestIOC.java , 若控制台能输出 add() 方法,便测试成功。

使用 intellijIDEA 创建 maven 工程进行 Spring ioc 测试

通过配置文件注入属性

介绍:创建对象时候,向类里面属性设置值。

在 spring 中我们一般采用通过set 方法注入。

举个栗子:

在 src/main/java/ 下创建 UserService.java:

package cn.itcast.ioc; public class UserService { //1 定义 user 类型 private User user; //2 生成set 方法 public void setUser(User user) { this.user = user; } public void add(){ System.out.println("service...."); user.add(); } }

修改 applicationContext.xml 文件:

<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:p="http://www.springframework.org/schema/p" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans "> <!-- 注入对象类型 --> <!-- 配置 service 和 user 对象 --> <bean></bean> <bean> <!-- 注入 user 对象 name 属性值, service 类里面的属性名称 ref 属性, 配置bean 标签中 id 值 --> <property ref="user"></property> </bean> </beans>

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpfxsw.html