Spring中xml的方式实现DI
spring.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"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:c="http://www.springframework.org/schema/c"
xmlns:util="http://www.springframework.org/schema/util"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/util
http://www.springframework.org/schema/util/spring-util.xsd">
<!--定义公共集合-->
<util:list id="outerbookList" >
<bean id="b1" class="com.msb.pojo.Demo1" p:bname="111" p:author="222"></bean>
<bean id="b2" class="com.msb.pojo.Demo1" p:author="333" p:bname="444"></bean>
<bean id="b3" class="com.msb.pojo.Demo1" p:author="555" p:bname="666"></bean>
</util:list>
<!--注入私有集合-->
<bean id="student" class="com.msb.pojo.Demo1List">
<property name="books" >
<array>
<value>动漫</value>
<value>日漫</value>
<value>彩绘</value>
</array>
</property>
</bean>
<bean id="student1" class="com.msb.pojo.Demo1List">
<property name="bookList">
<list>
<value>booklist1</value>
<value>booklist2</value>
<value>booklist3</value>
</list>
</property>
</bean>
<bean id="student3" class="com.msb.pojo.Demo1List">
<property name="bookMap" >
<map>
<entry key="java" value="小明"></entry>
<entry key="python" value="小红"></entry>
<entry key="C#" value="小白"></entry>
</map>
</property>
</bean>
<bean id="book" class="com.msb.pojo.Demo1">
<property name="list" ref="outerbookList"></property>
</bean>
</beans>
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">
<parent>
<artifactId>Spring</artifactId>
<groupId>com.msb</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>SpringAll</artifactId>
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
</properties>
<packaging>jar</packaging>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.3.5</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.12</version>
<scope>provided</scope>
</dependency>
</dependencies>
</project>
实体类
package com.msb.pojo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
@Data
@NoArgsConstructor
@AllArgsConstructor
public class Demo1 {
private String bname;
private String author;
private List<Demo1> list;
}
package com.msb.pojo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.awt.print.Book;
import java.util.List;
import java.util.Map;
import java.util.Set;
@Data
@NoArgsConstructor
@AllArgsConstructor
public class Demo1List {
private String[] books;
private Set<String> bookSet;
private List<String> bookList;
private Map<String,String> bookMap;
}
测试方法
import com.msb.pojo.Demo1;
import com.msb.pojo.Demo1List;
import com.msb.pojo.User;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import java.awt.*;
import java.util.List;
public class test {
@Test
public void test1(){
//ClassPathXmlApplicationContext(spring文件名,通过调用反射的字节码class文件进行创建对象)
ApplicationContext context =new ClassPathXmlApplicationContext("Applicationcontext.xml");
/*Demo1List demo1List = context.getBean("student",Demo1List.class);
System.out.println(demo1List);
Demo1List mapList = context.getBean("student3",Demo1List.class);
System.out.println(mapList);
Demo1List student1 = context.getBean("student1",Demo1List.class);
System.out.println(student1);*/
Demo1 book = context.getBean("book", Demo1.class);
System.out.println(book);
}
}