IOC操作Bean管理XML方式(注入集合类型属性)

目录

IOC操作Bean管理XML方式(注入集合类型属性)

(1)首先进行环境的搭建和准备

(2)创建一个类:用来完成集合类型属性注入

(3)在Spring 配置文件进行配置

(4)编写一个测试类进行测试

(5)运行结果:

(6)注意细节:

(7)据上面所述,在集合里面设置对象类型值

(8)把集合注入部分提取出来,变成通用部分

(8.1)在Spring 配置文件中引入名称空间 util

(8.2)使用 util 标签完成 list 集合注入提取


 

IOC操作Bean管理XML方式(注入集合类型属性)

1.注入数组类型属性

2.注入 List 集合类型属性

3.注入 Map 集合类型属性

 

 

 

(1)首先进行环境的搭建和准备

新建一个collectiontype包

 

(2)创建一个类:用来完成集合类型属性注入

进行实体类编写

 

写出三个基本类型

包括:数组类型、List集合、Map集合、Set集合(同时生成对应的set方法)

package com.lbj.spring5.collectiontype;import java.util.List;
import java.util.Map;
import java.util.Set;public class Student {//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;}
//    写一个测试方法方便输出查看public void test(){
//        数组如果直接输出的话不是一个 数值
//        System.out.println(courses);//        因此我们引入工具类来方便输出System.out.println(Arrays.toString(courses));System.out.println(list);System.out.println(maps);System.out.println(sets);}
}

 

(3)在Spring 配置文件进行配置

注意:<property name="courses" value="">其中的value=""只能写入一个值,并不符合数组多个值的要求

<?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"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"><!--集合类型属性注入--><bean id="student" class="com.lbj.spring5.collectiontype.Student"><!--1.数组类型属性注入--><property name="courses" ><array><value>语文</value><value>英语</value><value>数学</value></array></property><!--2.List类型属性注入--><property name="list"><list><value>张三</value><value>王五</value></list></property><!--3.Map类型属性注入--><property name="maps"><map><entry key="JAVA" value="java"></entry><entry key="PHP" value="php"></entry></map></property><!--4.Set类型属性注入--><property name="sets"><set><value>123</value><value>321</value></set></property></bean>
</beans>

 

(4)编写一个测试类进行测试

创建一个新的包 testdemo包

在 testdemo包 新建一个 TestSpring5Demo1类

代码如下:

package com.lbj.spring5.testdemo;import com.lbj.spring5.collectiontype.Student;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;public class TestSpring5Demo1 {@Testpublic void tsetCollection(){ApplicationContext context=new ClassPathXmlApplicationContext("bean1.xml");Student student=context.getBean("student", Student.class);student.test();}
}

(5)运行结果:

 

(6)注意细节:

细节1:在上面例子中,集合的类型都是String 字符串类型

思考,以后在String类型中,写入的是对象,那该如何处理呢?

 

细节2:例子所示的4个集合都只能在Student类内进行调用使用,但是以后需要这些集合可以被其它类调用,该如何处理

思考:集合是不是可以进行抽取,做成公共部分?

 

(7)据上面所述,在集合里面设置对象类型值

步骤:新建一个课程类 Course

Course类代码如下:

package com.lbj.spring5.collectiontype;/*** 课程类*/
public class Course {
//    课程名称private String cname;public void setCname(String cname) {this.cname = cname;}//    为了方便输出才写这个方法,正常情况下输出的值为[com.lbj.spring5.collectiontype.Course@306279ee, com.lbj.spring5.collectiontype.Course@545997b1]
//    写了这个toString 方法后我们就可以进行正常值的输出@Overridepublic String toString() {return "Course{" +"cname='" + cname + '\'' +'}';}
}

 

下一步,到Student类中,补充如下代码:

//    学生所学多门课程private List<Course> courseList;public void setCourseList(List<Course> courseList) {this.courseList = courseList;}

 

同样,为了测试,在Student类中的 test() 方法中加入如下输出语句

       System.out.println(courseList);

 

下一步,在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"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"><!--条件:注入的是List集合类型,值是对象的时候--><property name="courseList"><list><!--引入对象的id值--><ref bean="course1"></ref><ref bean="course2"></ref></list></property></bean><!--操作:创建多个course对象--><!--写入第一个课程--><bean id="course1" class="com.lbj.spring5.collectiontype.Course"><property name="cname" value="英语"></property></bean><!--写入第二个课程--><bean id="course2" class="com.lbj.spring5.collectiontype.Course"><property name="cname" value="数学"></property></bean>
</beans>

 

进行测试:

 

(8)把集合注入部分提取出来,变成通用部分

步骤:新建一个bean2.xml

 

步骤:新建一个类,专门做提取部分

代码如下:

package com.lbj.spring5.collectiontype;import java.util.List;public class Book {private List<String> list;public void setList(List<String> list) {this.list = list;}//测试方法public void test(){System.out.println(list);}
}

(8.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:p="http://www.springframework.org/schema/p"xmlns:util="http://www.springframework.org/schema/util"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd"></beans>

(8.2)使用 util 标签完成 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:p="http://www.springframework.org/schema/p"xmlns:util="http://www.springframework.org/schema/util"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd"><!--1.先提取 list 集合类型属性注入--><util:list id="booklist"><value>英语书</value><value>数学书</value><value>语文书</value></util:list><!--2.然后将提取 list 集合类型属性注入--><bean id="book" class="com.lbj.spring5.collectiontype.Book"><property name="list" ref="booklist"></property></bean>
</beans>

进行测试:

package com.lbj.spring5.testdemo;import com.lbj.spring5.collectiontype.Book;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;public class TestSpring5Demo1 {@Testpublic void tsetCollection2(){ApplicationContext context=new ClassPathXmlApplicationContext("bean2.xml");Book book=context.getBean("book", Book.class);book.test();}
}

测试结果:

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/501167.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

matlab 最小二乘法拟合_高中数学:最小二乘法与线性回归方程

1、怎样的拟合直线最好&#xff1f;——与所有点都近&#xff0c;即与所有点的距离之和最小。最小二乘法可以帮助我们在进行线性拟合时&#xff0c;如何选择“最好”的直线。要注意的是&#xff0c;利用实验数据进行拟合时&#xff0c;所用数据的多少直接影响拟合的结果&#x…

预充电电路工作原理_LED触摸调光台灯控制电路板的工作原理

一款美观实用的台灯堪称书桌上的艺术品&#xff0c;看着书桌上精致美观的台灯&#xff0c;可能还会增加一些阅读的乐趣吧。那么触摸开关台灯的工作原理到底是怎么的呢?两按键触摸调光电路板工作原理:一、两按键触摸调光电路板&#xff0c;触摸芯片工作电压2.4-5.5V。输入也可用…

IOC操作Bean管理XML方式(FactoryBean)

目录 IOC操作Bean管理XML方式&#xff08;FactoryBean&#xff09; Spring 有两种类型的bean 第一种&#xff1a;是普通的 bean 第二种&#xff1a;工厂bean FactoryBean 第一步&#xff1a;创建类&#xff0c;让这个类作为工厂bean 第二步&#xff1a;在类中实现接口里面…

python中自定义类中的self_Python类和构造方法

1.面向对象介绍描述&#xff1a;是函数的一个变种,在Python中,有函数式编程和面向对象编程,java和C#之类只能把函数写到类里,没有函数式编程,所以只有面向对象,所以在Python中有了选择,可能就变得有点麻烦,但是在Python里,函数式编程是可以完成所有的功能的,人都是想把事情变得…

激光slam_机器人主流定位技术,激光SLAM与视觉SLAM谁更胜一筹

定位技术是机器人实现自主定位导航的最基本环节&#xff0c;是机器人在二维工作环境中相对于全局坐标的位置及其本身的姿态。目前SLAM (Simultaneous Localization and Mapping&#xff0c;即时定位与地图构建)是业内主流的定位技术&#xff0c;有激光SLAM和视觉SLAM之分。什么…

IOC操作Bean管理XML方式(bean的作用域)

目录 IOC操作Bean管理XML方式&#xff08;bean的作用域&#xff09; 1.在Spring 里面&#xff0c;设置创建 bean 实例是单实例还是多实例的方式 &#xff08;1&#xff09;在Spring 配置文件bean 标签里面有属性&#xff08;scope&#xff09;用于设置单实例还是多实例 &am…

bucket sort sample sort 并行_双调排序Bitonic Sort,适合并行计算的排序算法

双调排序是data-independent的排序&#xff0c; 即比较顺序与数据无关的排序方法&#xff0c; 特别适合做并行计算&#xff0c;例如用GPU、fpga来计算。1、双调序列在了解双调排序算法之前&#xff0c;我们先来看看什么是双调序列。 双调序列是一个先单调递增后单调递减&#x…

边缘检测后去除噪点_修图前vs修图后,原来那些网红“照骗”都是这样修出来的!...

如今手机上有许多功能强大的后期app都能帮助我们轻松实现一键修图我们也经常可以在网上看到各路大神们各显神通的手机修图作品无论是风景、人像还是创意修图前和修图后对比强烈、美若两图看到这里你是否想问为什么同样是用手机修图别人修的图总是比我好看到底是哪里出错了呢&am…

IOC操作Bean管理XML方式(bean 的生命周期)

目录 IOC操作Bean管理XML方式&#xff08;bean 的生命周期&#xff09; 1.bean 的生命周期&#xff08;在单例模式下的生命周期&#xff09; &#xff08;1&#xff09;通过构造器创建 bean 的实例&#xff08;执行类中无参构造方法去创建对象&#xff09; &#xff08;2&…

springboot listener_Springboot 全套面试提升宝典,为金三银四冲刺

简介&#xff1a;Spring Boot是由Pivotal团队提供的全新框架&#xff0c;其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置&#xff0c;从而使开发人员不再需要定义样板化的配置。通过这种方式&#xff0c;Spring Boot致力于在蓬勃发…

IOC操作Bean管理XML方式(xml自动装配)

目录 IOC操作Bean管理XML方式&#xff08;xml自动装配&#xff09; 一.演示自动装配过程 &#xff08;1&#xff09;根据 属性名称 装配 步骤一&#xff1a; 步骤二&#xff1a; 步骤三&#xff1a; &#xff08;2&#xff09;根据 属性类型 装配 &#xff08;2.1&#…

IOC操作Bean管理XML方式(外部属性文件)

目录 IOC操作Bean管理XML方式&#xff08;外部属性文件&#xff09; 前情引入&#xff1a; 实验演示&#xff1a; 1.直接配置数据库信息 &#xff08;1&#xff09;配置德鲁伊连接池 &#xff08;2&#xff09;引入德鲁伊连接池jar包 &#xff08;3&#xff09;创建一个b…

IOC操作Bean管理注解方式(创建对象)

目录 IOC操作Bean管理注解方式&#xff08;创建对象&#xff09; 1.什么是注解 2.Spring 针对 Bean 管理中创建对象提供注解主要有以下四种 &#xff08;1&#xff09;Component &#xff08;2&#xff09;Service &#xff08;3&#xff09;Controller &#xff08;4&am…

嵌入式操作系统_航天科工海鹰翼辉嵌入式操作系统获自主原创“身份证”

日前&#xff0c;由中国航天科工集团三院三部研发的海鹰翼辉嵌入式操作系统顺利通过中国信息安全评测中心的自主原创评测&#xff0c;成为国内首个具有自主原创“身份证”的嵌入式操作系统。随着物联网和人工智能技术的快速发展&#xff0c;传统武器装备逐步进入智能互联时代&a…

.net core 调用c dll_Qt编写DLL给外部程序调用,提供VC/C#/C调用示例(含事件)

一、前言最近这阵子&#xff0c;接了个私活&#xff0c;封装一个开发包俗称的SDK给客户调用&#xff0c;查阅了很多人家的SDK&#xff0c;绝大部分用VC编写&#xff0c;而且VC6.0居多&#xff0c;估计也是为了兼容大量的XP用户及IE浏览器&#xff0c;XP自带了VC6.0运行库&#…

求二叉树高度_LeetCode刷题——第二十五天(平衡二叉树)

这段时间跟二叉树杠上了&#xff0c;接下来还有许多二叉树的题目&#xff0c;虽然已经做了不少了&#xff0c;大多题目都涉及到了递归&#xff0c;也挺好&#xff0c;刚好有机会练习一下递归&#xff0c;但是遇到新的题目还是有点力不从心&#xff0c;还需要看参考答案&#xf…

IOC操作Bean管理注解方式(组件扫描配置)

IOC操作Bean管理注解方式&#xff08;组件扫描配置&#xff09; 开启组件扫描的 细节配置 约定那些类可以扫描&#xff0c;哪些类不可以扫描 bean1.xml配置如下&#xff1a; <?xml version"1.0" encoding"UTF-8"?> <beans xmlns"http://w…

rabbitmq 持久化_RabbitMQ原理与相关操作(三)消息持久化

现在聊一下RabbitMQ消息持久化&#xff1a;问题及方案描述1.当有多个消费者同时收取消息&#xff0c;且每个消费者在接收消息的同时&#xff0c;还要处理其它的事情&#xff0c;且会消耗很长的时间。在此过程中可能会出现一些意外&#xff0c;比如消息接收到一半的时候&#xf…

视图的数据存放在哪里_分布式 | DBLE 是如何实现视图的?

作者&#xff1a;苏仕祥浩鲸科技 PaaS 组件团队成员&#xff0c;长期从事分库分表中间件的相关解决方案工作&#xff0c;热爱技术&#xff0c;乐于分享。本文来源&#xff1a;原创投稿*爱可生开源社区出品&#xff0c;原创内容未经授权不得随意使用&#xff0c;转载请联系小编并…

IOC操作Bean管理注解方式(注入属性@Autowired和Qualifier)

目录 IOC操作Bean管理注解方式&#xff08;注入属性Autowired、Qualifier和Resource&#xff09; 1.基于注解方式实现 属性注入 &#xff08;1&#xff09;Autowired&#xff1a;根据属性类型进行自动装配 第一步&#xff1a; 第二步&#xff1a; &#xff08;2&#xff…