SpringIoC之集合注入与空值注入

ArcGIS 10.4 Desktop安装步骤。 步骤 1 :安装 LicenseManager 有了安装包以后,我们进入安装包文件目录,如图所示,首先需要安装ArcGIS license manager,即点击打开图中红色框中exe文件。 PS:安装 LicenseManager,关于 License 的安装路径一般默认即可,因为很小的,装C 盘也无所谓了,当然了自己改了也可以的,但是不建议! 即便修改路径,建议只改盘符,不修改相对路径方式! 如:C:\Program Files (x86)\ArcGIS\License10.6 修改为 D:\. 阅读详情

        我们配置基本数据类型使用value属性和使用<property>标签的ref属性在你的bean配置文件中的对象引用。这两种情况下处理过单值到一个bean。

        如果我们要注入集合,Spring提供了四种类型的如下集合的配置元素:

元素

描述

<list>

这有助于注入值列表List配线,使重复。

<set>

这有助于在配线的一组值,但不能重复。

<map>

这可用于注入的名称 - 值对,其中名称和值可以是任何类型的集合。

<props>

这可以用来注入的名称 - 值对,其中名称和值都是字符串的集合。

      可以使用<list> 或<set> 来连接任何实现java.util.Collection或数组。

       若我们想为

     示例:我们新建一个CollectionDemo类,这个类中有List、Set、Map集合和一个字符串类型nullTest,用来赋空值:

package com.test4;

import org.springframework.beans.factory.annotation.Required;

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

public class CollectionDemo {

    private Map map;
    private Set set;
    private List list;
    private String nullTest;

    public CollectionDemo() {
    }

    public CollectionDemo(Map map, Set set, List list, String nullTest) {
        this.map = map;
        this.set = set;
        this.list = list;
        this.nullTest = nullTest;
    }

    public Map getMap() {
        return map;
    }
    @Required
    public void setMap(Map map) {
        this.map = map;
    }
    @Required
    public Set getSet() {
        return set;
    }
    @Required
    public void setSet(Set set) {
        this.set = set;
    }

    public List getList() {
        return list;
    }

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

    public String getNullTest() {
        return nullTest;
    }
    @Required
    public void setNullTest(String nullTest) {
        this.nullTest = nullTest;
    }
    public void collectionCheck(){
        for (Object str:list) {
            System.out.println(str);
        }

        for (int i=1;i<=map.size();i++){
            System.out.println(map.get(i+""));
        }
        Iterator iterator=set.iterator();
        while (iterator.hasNext()){
            System.out.println(iterator.next());
        }
    }
    public void printNull(){
        System.out.println(nullTest);
    }
}
被@Required注解的属性或者类必须在Xml配置文件中注入,否则编译不通过。
          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">

    <!--构造注入自动装配MathDemo和StudyDemo-->
    <bean id="CollectionDemo" class="com.test4.CollectionDemo">
        <!--注入List集合-->
        <property name="list">
            <list>
                <value>list_a</value>
                <value>list_b</value>
                <value>list_c</value>
            </list>
        </property>
        <!--注入Map集合-->
        <property name="map">
            <map>
                <entry key="1" value="map_a"/>
                <entry key="2" value="map_b"/>
                <entry key="3" value="map_c"/>
            </map>
        </property>
        <!--注入Set集合-->
        <property name="set">
            <set>
                <value>set_a</value>
                <value>set_b</value>
                <value>set_c</value>
            </set>
        </property>
        <!--注入空值-->
        <property name="nullTest"><null/></property>
    </bean>
</beans>
我们新建测试类:

package com.test4;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class testMain {
    public static void main(String[] args) {
        //创建Spring上下文(加载study.xml)
        ApplicationContext acx= new ClassPathXmlApplicationContext("test4.xml");
        //获取StudyDemo实例并赋值
        CollectionDemo cc=acx.getBean("CollectionDemo",CollectionDemo.class);
        //遍历集合
        cc.collectionCheck();
        //打印null
        cc.printNull();
        //销毁实例对象
        ((ClassPathXmlApplicationContext) acx).close();
    }
}

测试结果:






Ut接口原理及 VoLTE 补充业务自管理信令流程(GBA 引导认证+业务访问认证+ VoLTE 补充业务自管理) 2. Ut 接口及 VoLTE 业务子管理概述 2.1 UT 接口 —— VoLTE 终端补充业务配置 2.2终端通过 Ut 接口完成 VoLTE 补充业务自管理举例 2.3什么是 GBA 和 GAA 架构 2.4为什么要引入 GBA 架构认证及 BSF 网元 2.5UE(终端) 接口相关网元及功能 2.6GBA 架构流程概述 3. Ut 接口业务自管理信令流程 3.1 补充业务自管理及本文主要参考以下规范 3.2 Ut 接口业务自管理信令流程:查询补充业务 3.2.1 UE获 阅读详情

相关推荐

第四章 自定义组件、动画

第三章 自定义组件、动画 (一)自定义View 1.1) onMeasure:对当前View的尺寸进行测量 protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) widthMeasureSpec和heightMeasureSpec包含测量模式和尺寸大小 int widthMode = MeasureSpec....

Stay Hungry Stay Foolish 求知若饥 虚心若愚 8131

Spring 注入 List Set Properties Map

要抓住主要矛盾,最主要的配置如下: 3

安德里亚的成长 1万+

RedHat 9 替换yum源镜像

引言:我们个人通常使用的红帽系统yum源是需要注册付费的,所以在使用yum源安装一些软件时无法正常安装(例如:MySQL),这时我们就需要将yum源替换为CentOS对应的源,以实现在红帽系统中正常安装软件。

YUJIAOZHU666的博客 3738

Spring组件中的构造器的参数可以依赖注入List「接口」类型的参数

spring组件的构造器参好神奇

qq_40091033的博客 1235

Streamlit安装避坑指南:从零到一键启动你的第一个数据可视化应用

本文提供了一份详尽的Streamlit安装避坑指南,帮助用户从零开始快速启动第一个数据可视化应用。文章深入剖析了安装过程中常见的网络超时、依赖冲突、环境变量缺失等核心问题,并给出了使用虚拟环境、配置国内镜像源、利用.whl文件离线安装等多种经过验证的解决方案,确保安装过程顺畅无阻。

weixin_29065015的博客 614

从零到一:手把手教你用Python+LangChain搭建企业级RAG知识库(附避坑指南)

本文为开发者提供了一份详尽的实战指南,手把手教你使用Python和LangChain框架从零构建企业级RAG知识库。内容涵盖环境搭建、文档处理、向量化检索、提示工程及生产部署等核心环节,并重点分享了文档分割、检索优化等关键避坑经验,旨在帮助读者打造稳定、高效且易于维护的智能知识中枢。

weixin_29058331的博客 398

ssm学习(二)

SSM学习(第二spring) 参考书资源下载 Spring中的Bean 1、Bean的配置 ​ 元素的常用属性和子元素 。通常一个普通的只需要定义id(name)及class属性即可。若无id和name,class当id用 属性或子元素 名称 说明 id Bean的唯一标识符,Spring容器对Bean的配置、管理都通过该属性进行。 name Spring容器通过此属性进行配置和管理,name属性可以为Bean指定多个名称,每个名称之间用逗号或分号隔开。 class

qq_43759721的博客 758

【详细】芯片设计全流程(包括每个流程需要用到的工具以及需要参与的工作人员)

一颗芯片的诞生经历了设计、制造和测试(分别对应集成电路产业链的设计业、制造业和封测业),而每一步都包含了复杂的步骤和流程。 图0-1 集成电路产业链 现在,我们重点介绍芯片设计的全流程以及每个流程需要用到的设计工具和需要参与的工作人员。 一、IC设计分类 首先对IC设计的分类做个介绍,如图1-1所示。 图1-1 IC设计分类 如图1-1所示,IC设计可以粗分为数字IC设计和射频/模拟IC设计,数字IC设计又可分为ASIC设计和FPGA/CPLD设计,此外还有一部分IC设计.

qq_36045093的博客 8万+

Spring教程——Spring注入集合

在Spring中,我们可以使用集合(Collection)来管理一组Bean。集合可以是List、Set、Map等类型,而Spring框架支持将集合注入到Bean的属性中,从而实现依赖注入。

Itmastergo的博客 1028

VS2019 +osg3.6.5+ earth3.2+qt5.14.2+osgQt 编译教程

用vs新建工程,稍后会在写一篇博客上分享四、结语至此,所有的编译就均已完成。

king_ink的博客 1134

合肥工业大学操作系统实验9

依据操作系统课程所介绍的页面置换算法与动态内存分配的原理,本实验的目的是掌握OPT、FIFO、LRU、LFU、Clock等页面置换算法;掌握可用空间表及分配方法;掌握边界标识法以及伙伴系统的内存分配方法和回收方法。从而深入理解操作系统的内存管理。从而加深对教材上页面置换算法与动态内存分配的理解。

Martin-share的博客 1094

Spring中关于依赖注入及注入过程中会遇到的一些问题

在spring中创建对象的种类有很多,包括 普通对象,还有集合(map,list,set等),接下来我们来看看具体在容器中创建对象的方式。具体方式方法官方文档都有,我只是根据自己的学习经历来举一些例子。具体参照官方文档:https://docs.spring.io/spring-framework/docs/current/reference/html/core.html#beans-collection-elements 首先:对于普通对象用以下格式进行创建 我来依次进行说明:class后跟的包地址“c

Versionssf的博客 450

TIA博途选型工具Selection Tool的基本使用方法介绍

TIA博途选型工具Selection Tool的基本使用方法介绍

Robot_PLC_HMI_Automation 4209

[Spring学习笔记 2 ]装配各种类型的属性 map,list,array,null,properties

一.spring Ioc容器补充(1) Spring Ioc容器 DI(依赖注入): 注入的方式:设值方法注入setter(属性注入)/构造子注入(构造函数传入依赖的对象)/字段注入field(注解)/接口注入out 装配的方式:手动装配&lt;property&gt;,&lt;constructor-arg&gt;,@Autowired,@Resource/自动装配 1.装配各种...

weixin_34342578的博客 102

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Springioc的xml配置使用

首先我们用基于maven的spring项目来管理和构建Java项目。

kkkkkkkok的博客 574

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Spring学习总结四——SpringIOC容器四

一:spring容器给bean对象注入属性值 1:注入基本属性值 a. 创建MessageBean类: 1 /** 2 * 3 */ 4 package com.hlcui.dao; 5 6 /** 7 * @author Administrator 8 * 9 */ 10 public class MessageBean { 11 private St...

weixin_33768481的博客 91

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

【Spring】SpringIOC容器

一、SpringIOC发展史 1. 当一个学生选修多个课程,而每个课程对应方法都各不相同,原先办法是必须每新增一个课程,就需要new一个课程对象,导致代码非常零散,造成后期维护麻烦。 2.简单工厂模式,将new的对象统一放到一个方法里面,可以将new集中操作,后期维护方便。 3.由于简单工厂需要自己创建而且不够彻底,因此发展出了SpringIOC容器。超级工厂,可以容纳任何对象。 ...

zzf_forgot的博客 156

Spring IOC容器——基于xml方式

Spring——IOC(控制反转) 一、IOC容器 ​ 1、什么是IOC(控制反转) ​ a)把对象创建和对象之间的调用过程,交给Spring进行管理 ​ b)使用IOC目的:为了降低耦合度 ​ 2、IOC底层 ​ a)xml解析、工厂模式、反射 ​ 3、Spring提供的IOC容器实现的两种方式(两个接口) ​ a)BeanFactory接口:IOC容器基本实现是Spring内部接口的使用接口,不提供给开发人员进行使用(加载配置文件时候不会创建对象,在获取对象时才会创建对象。) ​ b)Applicati

Mark__lan的博客 190

【Spring】Spring IOC容器 (XML实现)

Spring框架基础 IOC容器 XML实现

WDS's Blog 364

Spring-IoC 基于xml管理

基于xml的IoC实现 现大多使用注解方式,xml方式并不简洁,本文仅记录xml用作基础学习。

weixin_46356448的博客 1045

Spring框架(一)——IOC容器和Bean的配置

文章目录一、Spring概述二、IOC和DI1、简要概述2、IOC容器在Spring中的实现3、给bean属性赋值<1>、通过bean的set方式注入<2>、通过bean的构造器<3>、p命名空间<4>、字面量<5>、引用外部声明的bean<6>、内部bean<7>、给bean属性附空值<8>、给bea...

weixin_44240370的博客 1067

Spring原理 —— IOC容器注解版

Spring5 框架 概述 轻量级来源框架 解决企业应用开发的复杂性 核心部分: IOC AOP IOC 创建对象的过程交给Spring AOP 面向切面编程 特点 方便解耦,简化开发,创建对象和调用对象的过程分开 AOP支持 方便程序的测试 方便集成各种优秀框架 降低J2EE API的使用难度 方便的事务操作 IOC Spring创建bean的方式 在xml文件中设置bean的class(全路径名)和id(名称) 然后用ClassPathXmlApplication读取配置文件,然后即为创建了一个Spri

qwqgood的博客 371

[Spring学习笔记 4 ] AOP 概念原理以及java动态代理

一、Spring IoC容器补充(1) Spring IoC容器,DI(依赖注入): 注入的方式:设值方法注入setter(属性注入)/构造子注入(构造函数传入依赖的对象)/字段注入Field(注解)/接口注入 out 装配的方式:手动装配(&lt;property&gt;、&lt;constructor-arg&gt;、@Autowired、@Resource)/自动装配(autowi...

weixin_34279184的博客 117

后端大厂面试总结大全

1、首先,通过BeanDefinitionReader 读取指定的配置文件生成bean的定义信息,然后到完整的bean定义信息(BeanDefinition对象),注意这里只是存储bean的定义信息,还没有实例化bean对象;就像工厂里面一样,原材料已经准备好了,但是还没有进行生产,原材料就是beanDefinition,生产就是实例化。2、在 BeanDefinition 和 完整BeanDefinition 中间通过一个后置增强器,可以对bean的定义信息进行统一修改,只需要实现 BeanFactory

zouyang920的博客 426

面试八股题目

什么是 ThreadLocal全称(线程局部变量),功用非常简单,使用场合主要解决多线程中数据因并发产生不一致问题。ThreadLocal 为每一个线程都提供了变量的副本,使得每个线程在某时间访问到的并不是同一个对象。这样就隔离了多个线程对数据的数据共享,这样的结果是耗费了内存。但大大减少了线程同步所带来性能消耗,也减少了线程并发控制的复杂度。同一个线程内共享数据,线程之间数据隔离。注意:ThreadLocal 不能使用原子类型,只能使用 Object 类型。应用场景。

ah68356的博客 239

springboot接口接收list类型入参无数据,@RequestBody无法映射List数据

巨坑!!!! springboot做接口时,由于业务原因,需要在实体类中声明一个List类型的变量,通过@RequestBody进行同步数据 实体类中有个List存储其他实体类,想通过@RequestBody进行同步的,但老是同步不了 关于@RequestBody同步List类型等其他类型入参为null问题解决办法: 1.查看是否使用@Data的getset方法,由于lombook生成的getset方法和我们自己写的getset方法是不一样的,自己生成一下getset,再加个Serializable序列化

qq_36306227的博客 6039
上一篇: Spring的构造注入、setter注入以及自动装配
下一篇: SpringAop、AspectJ概述及示例
madi_Goly
博客等级 码龄16年 11粉丝 14原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值