Spring中xml的方式实现DI(属性的赋值)

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);
    }
}
posted @ 2022-06-17 11:22  爱豆技术部  阅读(41)  评论(0)    收藏  举报