JavaEE Spring IOC注入方式

描述

运用 Spring IOC 容器创建对象,并且给对象中复杂类型注入属性值。

题目

搭建 Spring 的开发环境,运用 Spring IOC 容器创建对象,并且给对象中复杂类型注入属性值。

题目解决思路

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

项目结构

12_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>com.itheima</groupId> <artifactId>SpringDemo06</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"> <!--复杂类型注入属性值--> <bean id="myBean" class="net.haicoder.entity.MyBean"> <!--1.数组类型注入--> <property name="array"> <array> <value>广东</value> <value>上海</value> </array> </property> <!--2.List集合注入--> <property name="list"> <list> <value>江苏</value> <value>四川</value> </list> </property> <!--3.Map集合注入--> <property name="map"> <map> <entry key="001" value="张三"/> <entry key="002" value="李四"/> </map> </property> <!--4.Set集合注入--> <property name="set"> <set> <value>华为</value> <value>小米</value> </set> </property> <!--5.Properties类型注入--> <property name="props"> <props> <prop key="001">Tom</prop> <prop key="002">Tony</prop> </props> </property> </bean> </beans>

实体类:

public class MyBean { //定义集合类型(复杂类型) private String[] array; private List<String> list; private Map<String,String> map; private Set<String> set; private Properties props; public MyBean() { } public String[] getArray() { return array; } public void setArray(String[] array) { this.array = array; } public List<String> getList() { return list; } public void setList(List<String> list) { this.list = list; } public Map<String, String> getMap() { return map; } public void setMap(Map<String, String> map) { this.map = map; } public Set<String> getSet() { return set; } public void setSet(Set<String> set) { this.set = set; } public Properties getProps() { return props; } public void setProps(Properties props) { this.props = props; } @Override public String toString() { return "MyBean{" + "array=" + Arrays.toString(array) + ", list=" + list + ", map=" + map + ", set=" + set + ", props=" + props + '}'; } }

测试类:

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容器中获取对象 MyBean myBean = (MyBean) act.getBean("myBean"); System.out.println(myBean); } }

运行结果,如下图:

13_JavaEE Spring.png

总结

以上案例运用 Spring IOC 容器创建对象,并且给对象中复杂类型注入属性值。