JavaEE Spring IOC注入方式

描述

运用 Spring IOC 注入方式中的带参数构造函数,给对象属性赋值。

题目

搭建 Spring 的开发环境,运用 Spring IOC 注入方式中的带参数构造函数,给对象属性赋值。

题目解决思路

  1. 创建 Maven 项目
  2. pom.xml 文件中,导入 Spring 核心容器的依赖。
  3. 编写 Spring 核心配置文件。
  4. 创建 Person 实体类。

项目结构

05_JavaEE Spring.png

具体实现

pom.xml 文件:

<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>net.haicoder</groupId> <artifactId>SpringDemo03</artifactId> <version>1.0-SNAPSHOT</version> <packaging>war</packaging> <dependencies> <!--添加Spring核心容器支持包--> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>5.1.7.RELEASE</version> </dependency> </dependencies> </project>

核心配置文件:

<?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"> <!--参数详解 index: 参数位置索引值,从0开始。 name: 参数名就是构造方法形式参数的名称。 type: 根据参数类型来赋值。 value: 直接赋值,值是基本类型。 ref: 对引用类型进行注入,而且该注入的对象必须是IOC容器中的另一个bean对象。 --> <bean id="person" class="net.haicoder.entity.Person"> <constructor-arg index="0" name="id" type="java.lang.Integer" value="1001"/> <constructor-arg index="1" name="name" type="java.lang.String" ref="nameStr"/> </bean> <!-- 定义一个String的bean对象 --> <bean id="nameStr" class="java.lang.String"> <constructor-arg index="0" value="HaiCoder"/> </bean> </beans>

实体类:

public class Person { private Integer id; private String name; public Person() { } public Person(Integer id, String name) { this.id = id; this.name = name; } @Override public String toString() { return "Person{" + "id=" + id + ", name='" + name + '\'' + '}'; } }

测试类:

public class Test { public static void main(String[] args) { System.out.println("嗨客网(www.haicoder.net)\n"); // 通过配置文件获取Spring的IOC容器 ApplicationContext act = new ClassPathXmlApplicationContext("applicationContext.xml"); // 从IOC容器中获取对象 Person person = (Person) act.getBean("person"); System.out.println(person); } }

运行结果,如下图:

06_JavaEE Spring.png

总结

以上案例运用 Spring IOC 注入方式中的带参数构造函数,给对象属性赋值。