Spring框架中注入集合对象

简介: 你好看官,里面请!今天笔者讲的是在Spring框架中关于注入集合对象的用法(有示例!全网最详细!!)不懂可以在评论区留言,我看到会及时回复。注意:本文仅用与学习参考,不可用于商业用途。

关于Spring注入集合对象的用法(有示例!全网最详细!!)

如果觉得写的还可以,点个赞支持一下笔者呗!笔者会持续更新关于Java和大数据有关的文章

1.注入List

下图是配置文件bean的设置

image.png

2.注入Set

下图是配置文件bean的设置

image.png

注意点:set底层存储形式为LinkedHashSet,且会去重,举个例子如果在set里面存入多个相同的值或对象,set只会保留一个。

image.png

<propertyname="rooms"><set><value>2001-总裁办</value><value>2003-总经理办公室</value><value>2010-研发部会议室</value><value>2010-研发部会议室</value></set></property>

3.注入Map

image.png

注意点:采用的LinkedHashMap的方式,也就是说存储数据的顺序和提取数据的顺序是相同的

image.png

4.注入Properties

image.png

案例:

pom.xml

<?xmlversion="1.0" encoding="UTF-8"?><projectxmlns="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"><modelVersion>4.0.0</modelVersion><groupId>com.imooc.spring</groupId><artifactId>ioc</artifactId><version>1.0-SNAPSHOT</version><repositories><repository><id>aliyun</id><name>aliyun</name><url>https://maven.aliyun.com/repository/public</url></repository></repositories><dependencies><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>5.2.6.RELEASE</version></dependency></dependencies></project>

applicationContest.xml

<?xmlversion="1.0" encoding="UTF-8"?><beansxmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beanshttps://www.springframework.org/schema/beans/spring-beans.xsd"><beanid="c1"class="com.imooc.spring.ioc.entity.Computer"><constructor-argname="brand"value="联想"/><constructor-argname="type"value="台式机"/><constructor-argname="sn"value="8389283012"/><constructor-argname="price"value="3085"/></bean><beanclass="com.imooc.spring.ioc.entity.Computer"><constructor-argname="brand"value="微星"/><constructor-argname="type"value="台式机"/><constructor-argname="sn"value="8389280012"/><constructor-argname="price"value="3000"/></bean><beanclass="com.imooc.spring.ioc.entity.Computer"><constructor-argname="brand"value="华硕"/><constructor-argname="type"value="笔记本"/><constructor-argname="sn"value="9089380012"/><constructor-argname="price"value="6000"/></bean><beanid="company"class="com.imooc.spring.ioc.entity.Company"><propertyname="rooms"><set><value>2001-总裁办</value><value>2003-总经理办公室</value><value>2010-研发部会议室</value><value>2010-研发部会议室</value></set></property><propertyname="computers"><map><entrykey="dev-88172"value-ref="c1"/><entrykey="dev-88173"><beanclass="com.imooc.spring.ioc.entity.Computer"><constructor-argname="brand"value="联想"/><constructor-argname="type"value="笔记本"/><constructor-argname="sn"value="1280258012"/><constructor-argname="price"value="5060"/></bean></entry></map></property><propertyname="info"><props><propkey="phone">010-12345678</prop><propkey="address">北京市朝阳区XX路XX大厦</prop><propkey="website">http://www.xxx.com</prop></props></property></bean></beans>

Company实体类

importjava.util.List;
importjava.util.Map;
importjava.util.Properties;
importjava.util.Set;
publicclassCompany {
privateSet<String>rooms;
privateMap<String,Computer>computers;
privatePropertiesinfo;
publicSet<String>getRooms() {
returnrooms;
    }
publicvoidsetRooms(Set<String>rooms) {
this.rooms=rooms;
    }
publicMap<String, Computer>getComputers() {
returncomputers;
    }
publicvoidsetComputers(Map<String, Computer>computers) {
this.computers=computers;
    }
publicPropertiesgetInfo() {
returninfo;
    }
publicvoidsetInfo(Propertiesinfo) {
this.info=info;
    }
@OverridepublicStringtoString() {
return"Company{"+"rooms="+rooms+", computers="+computers+", info="+info+'}';
    }
}

Computer实体类

publicclassComputer {
privateStringbrand;
privateStringtype;
privateStringsn;
privateFloatprice;
publicComputer() {
    }
publicComputer(Stringbrand, Stringtype, Stringsn, Floatprice) {
this.brand=brand;
this.type=type;
this.sn=sn;
this.price=price;
    }
publicStringgetBrand() {
returnbrand;
    }
publicvoidsetBrand(Stringbrand) {
this.brand=brand;
    }
publicStringgetType() {
returntype;
    }
publicvoidsetType(Stringtype) {
this.type=type;
    }
publicStringgetSn() {
returnsn;
    }
publicvoidsetSn(Stringsn) {
this.sn=sn;
    }
publicFloatgetPrice() {
returnprice;
    }
publicvoidsetPrice(Floatprice) {
this.price=price;
    }
@OverridepublicStringtoString() {
return"Computer{"+"brand='"+brand+'\''+", type='"+type+'\''+", sn='"+sn+'\''+", price="+price+'}';
    }
}

springApplication应用类

importcom.imooc.spring.ioc.entity.Company;
importcom.imooc.spring.ioc.entity.Computer;
importorg.springframework.context.ApplicationContext;
importorg.springframework.context.support.ClassPathXmlApplicationContext;
publicclassSpringApplication {
publicstaticvoidmain(String[] args) {
ApplicationContextcontext=newClassPathXmlApplicationContext("classpath:applicationContext.xml");
Companycompany=context.getBean("company", Company.class);
System.out.println(company);
Stringwebsite=company.getInfo().getProperty("website");
System.out.println(website);
System.out.println("==============================");
//获取容器内所有beanId数组String[] beanNames=context.getBeanDefinitionNames();
for (StringbeanName:beanNames){
System.out.println(beanName);
System.out.println("类型:"+context.getBean(beanName).getClass().getName());
System.out.println("内容:"+context.getBean(beanName));
        }
Computercomputer=context.getBean("com.imooc.spring.ioc.entity.Computer", Computer.class);
System.out.println(computer.getBrand());
Computercomputer1=context.getBean("com.imooc.spring.ioc.entity.Computer#1", Computer.class);
System.out.println(computer1.getBrand());
    }
}


相关文章
|
13天前
|
安全 Java 开发者
如何在Spring框架中实现横切关注点的集中管理和重用?
【4月更文挑战第30天】如何在Spring框架中实现横切关注点的集中管理和重用?
18 0
|
13天前
|
安全 Java 程序员
Spring框架的核心特性是什么?
【4月更文挑战第30天】Spring 的特性
17 0
|
3天前
|
XML Java 数据库连接
Spring框架与Spring Boot的区别和联系
Spring框架与Spring Boot的区别和联系
13 0
|
5天前
|
前端开发 安全 Java
使用Spring框架加速Java开发
使用Spring框架加速Java开发
35 0
|
5天前
|
设计模式 数据采集 监控
Spring日志框架
Spring日志框架
8 0
|
5天前
|
前端开发 Java 应用服务中间件
Spring MVC框架概述
Spring MVC 是一个基于Java的轻量级Web框架,采用MVC设计模型实现请求驱动的松耦合应用开发。框架包括DispatcherServlet、HandlerMapping、Handler、HandlerAdapter、ViewResolver核心组件。DispatcherServlet协调这些组件处理HTTP请求和响应,Controller处理业务逻辑,Model封装数据,View负责渲染。通过注解@Controller、@RequestMapping等简化开发,支持RESTful请求。Spring MVC具有清晰的角色分配、Spring框架集成、多种视图技术支持以及异常处理等优点。
12 1
|
7天前
|
XML Java 数据格式
Spring 属性注入方式
Spring 属性注入方式
13 2
|
11天前
|
SQL Java 数据库连接
15:MyBatis对象关系与映射结构-Java Spring
15:MyBatis对象关系与映射结构-Java Spring
30 4
|
13天前
|
SQL Java 数据库连接
Springboot框架整合Spring JDBC操作数据
JDBC是Java数据库连接API,用于执行SQL并访问多种关系数据库。它包括一系列Java类和接口,用于建立数据库连接、创建数据库操作对象、定义SQL语句、执行操作并处理结果集。直接使用JDBC涉及七个步骤,包括加载驱动、建立连接、创建对象、定义SQL、执行操作、处理结果和关闭资源。Spring Boot的`spring-boot-starter-jdbc`简化了这些步骤,提供了一个在Spring生态中更便捷使用JDBC的封装。集成Spring JDBC需要添加相关依赖,配置数据库连接信息,并通过JdbcTemplate进行数据库操作,如插入、更新、删除和查询。
|
13天前
|
SQL Java 数据库连接
Springboot框架整合Spring Data JPA操作数据
Spring Data JPA是Spring基于ORM和JPA规范封装的框架,简化了数据库操作,提供增删改查等接口,并可通过方法名自动生成查询。集成到Spring Boot需添加相关依赖并配置数据库连接和JPA设置。基础用法包括定义实体类和Repository接口,通过Repository接口可直接进行数据操作。此外,JPA支持关键字查询,如通过`findByAuthor`自动转换为SQL的`WHERE author=?`查询。