【SSM框架】为集合类型属性赋值

news/2024/11/28 18:00:17/

🍓个人主页:个人主页

🍒系列专栏:SSM框架

目录

1.为集合类型属性赋值

①为List集合类型属性赋值

②为Map集合类型属性赋值

2.p命名空间

3.引入外部属性文件 


1.为集合类型属性赋值

①为List集合类型属性赋值

Clazz类中添加以下代码:
private List<Student> students;
public List<Student> getStudents() {
return students;
}
public void setStudents(List<Student> students) {
this.students = students;
}
方法1:配置bean
若为Set集合类型属性赋值,只需要将其中的list标签改为set标签即可
    <bean id="clazzTwo" class="com.atguigu.spring.pojo.Clazz"><property name="clazzId" value="1"></property><property name="clazzName" value="计算机科学与技术"></property><property name="students"><list><ref bean="studentOne"></ref><ref bean="studentTwo"></ref><ref bean="studentThree"></ref></list></property></bean><bean id="studentOne" class="com.atguigu.spring.pojo.Student"><property name="id" value="1001"></property><property name="name" value="赵1"></property><property name="age" value="22"></property><property name="sex" value="女"></property><property name="hobbies"><array><value>吃饭</value><value>睡觉</value><value>打豆豆</value></array></property></bean><bean id="studentTwo" class="com.atguigu.spring.pojo.Student"><property name="id" value="1002"></property><property name="name" value="赵2"></property><property name="age" value="24"></property><property name="sex" value="女"></property><property name="hobbies"><array><value>吃饭</value><value>睡觉</value><value>打豆豆</value></array></property></bean><bean id="studentThree" class="com.atguigu.spring.pojo.Student"><property name="id" value="1004"></property><property name="name" value="赵3"></property><property name="age" value="21"></property><property name="sex" value="女"></property><property name="hobbies"><array><value>吃饭</value><value>睡觉</value><value>打豆豆</value></array></property></bean>

测试:

    @org.junit.Testpublic void testHelloWorld(){ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");Clazz clazzTwo = ac.getBean("clazzTwo", Clazz.class);System.out.println(clazzTwo);

方法2:配置一个集合类型的bean,需要使用util 的约束-

    <bean id="clazzTwo" class="com.atguigu.spring.pojo.Clazz"><property name="clazzId" value="1"></property><property name="clazzName" value="计算机科学与技术"></property><property name="students" ref="studentsList"></property></bean>
    <util:list id="studentsList"><ref bean="studentOne"></ref><ref bean="studentTwo"></ref><ref bean="studentThree"></ref></util:list>

效果一样的:

②为Map集合类型属性赋值

创建教师类Teacher

public class Teacher {private Integer tid;private String tname;public Teacher() {}public Teacher(Integer tid, String tname) {this.tid = tid;this.tname = tname;}public Integer getTid() {return tid;}public void setTid(Integer tid) {this.tid = tid;}public String getTname() {return tname;}public void setTname(String tname) {this.tname = tname;}@Overridepublic String toString() {return "Teacher{" +"tid=" + tid +", tname='" + tname + '\'' +'}';}
}

Student类中添加以下代码:
private Map<String, Teacher> teacherMap;
public Map<String, Teacher> getTeacherMap() {
return teacherMap;
}
public void setTeacherMap(Map<String, Teacher> teacherMap) {
this.teacherMap = teacherMap;
}
方法1:配置bean(引用集合类型的bean
    <bean id="student" class="com.atguigu.spring.pojo.Student"><property name="id" value="1004"></property><property name="name" value="赵六"></property><property name="age" value="26"></property><property name="sex" value="女"></property><property name="clazz"><!-- 在一个bean中再声明一个bean就是内部bean --><!-- 内部bean只能用于给属性赋值,不能在外部通过IOC容器获取,因此可以省略id属性 --><bean id="clazzInner" class="com.atguigu.spring.pojo.Clazz"><property name="clazzId" value="2"></property><property name="clazzName" value="软件工程"></property></bean></property><property name="hobbies"><array><value>吃饭</value><value>睡觉</value><value>打豆豆</value></array></property><property name="teacherMap"><map><entry key="1" value-ref="teacherOne"></entry><entry key="2" value-ref="teacherTwo"></entry></map></property></bean><bean id="teacherOne" class="com.atguigu.spring.pojo.Teacher"><property name="tid" value="11111"></property><property name="tname" value="小王"></property></bean><bean id="teacherTwo" class="com.atguigu.spring.pojo.Teacher"><property name="tid" value="22222"></property><property name="tname" value="小李"></property></bean>

 测试:

    public void testHelloWorld(){ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");Student student = ac.getBean("student", Student.class);System.out.println(student);}

方法2:配置bean(util:map):

    <bean id="student" class="com.atguigu.spring.pojo.Student"><property name="id" value="1004"></property><property name="name" value="赵六"></property><property name="age" value="26"></property><property name="sex" value="女"></property><property name="clazz"><!-- 在一个bean中再声明一个bean就是内部bean --><!-- 内部bean只能用于给属性赋值,不能在外部通过IOC容器获取,因此可以省略id属性 --><bean id="clazzInner" class="com.atguigu.spring.pojo.Clazz"><property name="clazzId" value="2"></property><property name="clazzName" value="软件工程"></property></bean></property><property name="hobbies"><array><value>吃饭</value><value>睡觉</value><value>打豆豆</value></array></property><property name="teacherMap" ref="teacherMap"></property></bean><util:map id="teacherMap"><entry key="1" value-ref="teacherOne"></entry><entry key="2" value-ref="teacherTwo"></entry></util:map>

2.p命名空间

引入p命名空间后,可以通过以下方式为bean的各个属性赋值

    <bean id="studentT" class="com.atguigu.spring.pojo.Student" p:name="李王" p:id="1009" p:teacherMap-ref="teacherMap"></bean>

3.引入外部属性文件 

①加入依赖

<!-- MySQL驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.16</version>
</dependency>
<!-- 数据源 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.0.31</version>
</dependency>
②创建外部属性文件
jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/ssm? serverTimezone=UTC
jdbc.username=root
jdbc.password=root
③引入属性文件
 <context:property-placeholder location="jdbc.properties"></context:property-placeholder>
④配置bean
<?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:context="http://www.springframework.org/schema/context"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context-4.2.xsd"><context:property-placeholder location="jdbc.properties"></context:property-placeholder><bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"><property name="url" value="${jdbc.url}"/><property name="driverClassName" value="${jdbc.driver}"/><property name="username" value="${jdbc.username}"/><property name="password" value="${jdbc.password}"/></bean></beans>
⑤测试

    public void test(){
        ClassPathXmlApplicationContext ioc = new ClassPathXmlApplicationContext("spring-datasource.xml");
        DruidDataSource bean = ioc.getBean(DruidDataSource.class);
        try {
            System.out.println(bean.getConnection());
        } catch (SQLException throwables) {
            throwables.printStackTrace();
        }

    }


http://www.ppmy.cn/news/3378.html

相关文章

CPDA认证|数据分析能给企业带来哪些好处?

数据分析的核心并不在于数据本身&#xff0c;而在于设计有意义、有价值的数据分析主题与指标体系&#xff0c;通过科学有效的手段去分析&#xff0c;进而发现问题优化迭代。 无论分析给出的结果是积极的还是负面的&#xff0c;都是价值承载体&#xff0c;必须以客观的态度面对。…

直播 | 新一代极速云原生湖仓的技术内核,StarRocks PMC 今天下午为你揭秘!

12 月 14-16 日&#xff0c;第 13 届中国数据库技术大会&#xff08;DTCC 2022&#xff09;将在线上隆重召开。本届大会重点围绕云原生数据库、分布式数据库、时序数据库、图数据技术、实时数仓技术与应用实践、金融业数据库应用实践等内容展开分享和探讨。 12 月 14 日 14:20…

Mariadb数据库之主从复制同步配置实战

. Mariadb数据库之主从复制同步配置实战 一、环境规划二、Mariadb的主从复制介绍1.主从复制简介2.半同步复制介绍3.主从复制原理图三、安装Mariadb1.配置yum仓库2.检查yum仓库3.安装mariadb4.启动mariadb服务5.从节点安装mariadb四、mariadb主库配置1.mariadb的初始化2.修改主…

【LOJ 3130】Praktični(线性基)

Praktični 题目链接&#xff1a;LOJ 3130 题目大意 给你一个无向图&#xff0c;边有边权&#xff0c;你每次修改可以选一个边集以及一个数&#xff0c;把边集里的每条边的边权都疑惑上这个数。 问你最少要修改多少次使得每个简单环的边权异或和都是 0。 思路 首先发现只有…

SpringBoot:模块探究之spring-boot-autoconfigure

顾名思义&#xff0c;Autoconfigure 就是自动配置的意思&#xff0c;SpringBoot 通过 spring-boot-autoconfigure 体现了 “约定优于配置” 这一设计原则&#xff01;spring-boot-autoconfigure 也是 SpringBoot 最重要的模块之一&#xff01; SpringBoot 则可以依据 classpath…

qt的移植

1、下载qt-everywhere-opensource-src-4.8.1.tar.gz, 下载连接地址如下:http://download.qt.io/archive/qt/4.8/4.8.1/ 2. 解压qt压缩文件tar xvf qt-everywhere-opensource-src-4.8.1.tar.gz 3. 为了编译的方便编译 &#xff0c;写了一个配置文件bulid.sh 内容如下&#xff1a…

基于springboot在线答疑系统

教师权限&#xff1a;首页、个人中心、疑难解答管理、试卷管理、试题管理、考试管理。 学生权限&#xff1b;首页、个人中心、问题发布管理、疑难解答管理、考试管理等功能模块的管理维护等操作&#xff0c;系统结构图如下图4-1所示。 图4-1 系统功能图 截图 目 录 摘 要 I …

C++初阶作业 Stackqueue 作业题一

作者&#xff1a;小萌新 专栏&#xff1a;C初阶 作者简介&#xff1a;大二学生 希望能和大家一起进步&#xff01; 本篇博客简介&#xff1a;实现几道Stack和queue的作业题 Stack queue作业题最小栈问题栈的压入弹出序列逆波兰表达式问题总结最小栈问题 它问题的题目描述是这…