首页 > 其他分享 >IOC容器-Bean管理XML方式、集合的注入

IOC容器-Bean管理XML方式、集合的注入

时间:2022-12-02 14:03:49浏览次数:39  
标签:XML String void list Bean 集合 import IOC public

1、IOC操作Bean管理(xml注入集合属性)

  • 1、注入数组类型属性
  • 2、注入list集合类型属性
  • 3、注入map集合类型属性
  • 4、注入set集合类型属性
类型 方式
数组 <array> <value>C语言</value> </array>
list <list> <value>张三</value> </list>
map <map> <entry key="JAVA" value="java"/></map>
set <set><value>MySQL</value> </set>

2、定义数组、list、map、set 类型属性,生成对应 set 方法

2.1 创建类

package com.zyz.spring5;

import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.Set;

/**
 * @author Lenovo
 * @version 1.0
 * @data 2022/9/25 21:28
 */
public class TestStu {
    /**
     * 1、数组类型属性
     */
    private String [] courses;

    /**
     * 2、list集合类型属性
     */
    private List<String> list;

    /**
     * 3、map集合类型属性
     */
    private Map<String,String> maps;

    /**
     * 4、set集合类型属性
     */
    private Set<String> sets;

    public void setCourses(String[] courses) {
        this.courses = courses;
    }

    public void setList(List<String> list) {
        this.list = list;
    }

    public void setMaps(Map<String, String> maps) {
        this.maps = maps;
    }

    public void setSets(Set<String> sets) {
        this.sets = sets;
    }

    @Override
    public String toString() {
        return "TestStu{\n" +
                "courses=" + Arrays.toString(courses) +
                ",\n list=" + list +
                ",\n maps=" + maps +
                ",\n sets=" + sets +
                '}';
    }
}

<hr>

2.2、编写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"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">

    <bean id="stu" class="com.zyz.spring5.TestStu">
        <!--1、数组类型属性注入-->
        <property name="courses">
            <array>
                <value>C语言</value>
                <value>Go语言</value>
                <value>Java语言</value>
            </array>
        </property>

        <!--2、list类型属性注入-->
        <property name="list">
            <list>
                <value>张三</value>
                <value>李四</value>
                <value>麻子</value>
            </list>
        </property>

        <!--3、map类型属性注入-->
        <property name="maps">
            <map>
                <entry key="JAVA" value="java"/>
                <entry key="MYSQL" value="mysql"/>
                <entry key="PHP" value="php"/>
            </map>
        </property>

        <!--4、set类型属性注入-->
        <property name="sets">
            <set>
                <value>MySQL</value>
                <value>SQLServer</value>
            </set>
        </property>

    </bean>

</beans>

<hr>

2.3、测试

package com.zyz.spring5.testdemo;

import com.zyz.spring5.TestStu;
import com.zyz.spring5.dao.Employee;
import com.zyz.spring5.entity.Person;
import com.zyz.spring5.service.CatService;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

/**
 * @author Lenovo
 * @version 1.0
 * @data 2022/9/22 22:25
 */
public class SpringTest5 {

    @Test
    public void testSpring(){
        ApplicationContext context = new ClassPathXmlApplicationContext("bean3.xml");
        TestStu testStu = context.getBean("stu",TestStu.class);
        System.out.println(testStu);

    }

}

<hr>

2.4、测试结果

在这里插入图片描述

3、在集合里面设置对象类型值

==主要是ref==

3.1 创建一个用户类

package com.zyz.spring5.entity;

import lombok.Data;

/**
 * @author Lenovo
 * @version 1.0
 * @data 2022/9/22 22:23
 */
public class Person {
    private String address;
    private String name;

    public void setAddress(String address){
        this.address = address;
    }

    public void setName(String name){
        this.name = name;
    }

    @Override
    public String toString() {
        return "Person{" +
                "address='" + address + '\'' +
                ", pname='" + name + '\'' +
                '}';
    }
}

3.2 用户对象作为集合中的值

    /**
     *5、集合中设置对象属性值
     */
    private List<Person> personList;

    public void setPersonList(List<Person> personList){
        this.personList = personList;
    }

3.3 xml配置文件

        <!--5、集合中设置对象属性值-->
        <property name="personList">
            <list >
                <ref bean="person1"/>
                <ref bean="person2"/>
            </list>
        </property>

        
    </bean>

    <bean id="person1" class="com.zyz.spring5.entity.Person">
        <property name="address" value="河南周口"/>
        <property name="name" value="张三"/>
    </bean>

    <bean id="person2" class="com.zyz.spring5.entity.Person">
        <property name="address" value="河南郑州"/>
        <property name="name" value="李四"/>
    </bean>

在这里插入图片描述

4、集合注入部分提取出来

把集合抽取成为一个公共部分、不同的bean使用。可以达到代码复用

4.1 在 spring 配置文件中引入名称空间 util

在这里插入图片描述

<?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: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="bookList">
        <value>高等数学</value>
        <value>大学英语</value>
        <value>大学政治</value>
    </util:list>

    <bean id="testStu" class="com.zyz.spring5.TestStu">
        <property name="list" ref="bookList"></property>
    </bean>

</beans>

<hr>

4.2 使用 util 标签完成 list 集合注入提取

将对象提取、一般的list提取

<?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: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="bookList">
        <value>高等数学</value>
        <value>大学英语</value>
        <value>大学政治</value>
    </util:list>

    <util:list id="personList">
        <ref bean="person1"/>
        <ref bean="person2"/>
    </util:list>

    <bean id="person1" class="com.zyz.spring5.entity.Person">
        <property name="address" value="河南周口"/>
        <property name="name" value="张三"/>
    </bean>

    <bean id="person2" class="com.zyz.spring5.entity.Person">
        <property name="address" value="河南郑州"/>
        <property name="name" value="李四"/>
    </bean>

    <bean id="testStu" class="com.zyz.spring5.TestStu">
        <property name="list" ref="bookList"></property>
        <property name="personList" ref="personList"/>
     </bean>

</beans>

<hr>

4.3 测试结果

在这里插入图片描述

在这里插入图片描述

标签:XML,String,void,list,Bean,集合,import,IOC,public
From: https://blog.51cto.com/u_15740728/5906971

相关文章

  • IOC容器-Bean管理注解方式
    注解开发使用的多、加深了对各个注解的使用理解。1、什么是注解(1)注解是代码特殊标记,格式:@注解名称(属性名称=属性值,属性名称=属性值..)(2)使用注解,注解作用在==类==上......
  • 利用Apache的commons-beanutils和commons-collections包实现Java对象的按属性排序
    在日常工作中经常用到需要对java对象集合或者Map集合中的某个属性做排序,这个需求可以利用Apache的commons-beanutils和commons-collections包来实现,主......
  • springIOC和AOP
    IOC(InverseofControl:控制反转)是一种设计思想,就是将原本在程序中手动创建对象的控制权,交由Spring框架来管理。Ioc在其他语言中也有应用,并非spring特有。Ioc容器是Spring用......
  • apache commons包中的commons-beanutils
    publicclassEntity{privateIntegerid=5;privateStringname="rongxinhua";publicIntegergetId(){returnid;}publicvoidsetId(......
  • EBS: Oracle XML Publisher 表清单
    --OracleXMLPublisher表清单SELECT*FROMXDO.XDO_CONCURRENT_REQUESTS_GTSELECT*FROMXDO.XDO_CONFIG_KEYS--KEY:PROPERTY_CODE--配置属性SELECT*FR......
  • CSS关于IOC字体图标的使用
    首先去:https://icomoon.io/app/#/select选择相适应的图标日文翻译:まず、https://icomoon.io/app/#/selectにアクセスして、適切なアイコンを選択します。  然后......
  • IOC的好处
    web前端中的IoC是什么?一、什么是IoCIoC的全称叫做InversionofControl,可翻译为为「控制反转」或「依赖倒置」,它主要包含了三个准则:1、高层次的模块不应该依赖于低层......
  • UnsatisfiedDependencyException: Error creating bean with name
    报错信息:org.springframework.beans.factory.UnsatisfiedDependencyException:Errorcreatingbeanwithname'com.xubo.mybatisplus.MyBatisPlusTest':Unsatisfiedd......
  • xml_组成部分和xml_约束概述
    xml_组成部分:组成部分:1.文档声明格式:<?xml属性列表"?>属性列表version:版本号必须属性encoding:编码方式,告知解析引擎当前文档使......
  • xml_约束_dtd和xml_约束_schema
    xml_约束_dtd:DTD:一种简单的约束技术引入dtd文档到xml文档中内部dtd:将约束规则定义在xml文档中外部dtd:将约束的规则定义在外部的dtd文件中分......