Day4 基于XML的Spring应用

news2024/9/25 13:20:58

总结

  • java依赖注入的方式

  • set方法注入

  • List、map和properties的注入

  • 通过构造方法注入

  • ref是reference的缩写,需要引用其他bean的id,value用于注入普通属性值。

  • 自定义标签和其他标签的引用

  • 自定义标签

  • beans

  • bean

  • import

  • alias

  • 其他标签用于引用其他命名空间

1 bean的依赖注入方式

  1. 通过set方法注入

  1. 通过构造方法注入。

其中,ref是reference的缩写,需要引用其他bean的id,value用于注入普通属性值。

依赖注入的数据类型有如下三种

  • 普通数据类型,例如: String、int、boolean等,通过value属性指定引用数据类型,

  • 例如: UserDaolmpl、DataSource等,通过ref属性指定集合数据类型,

  • 例如: List、Map、Properties

1.1针对List集合

前提有属性和set方法。首先要确定是哪一个对象的list因此需要有bean,然后配置property,然后通过name定义属性,最后用list标签表示类型,使用value标签传入普通属性值 或者通过ref/bean标签传入引用属性值。

如果配置set 进把list标签改成set标签即可。

bean id="userService" class="cn.msf.service.impl.UserServiceImpl">
      <property name="stringList">
         <list>
            <value>张三</value>
            <value>李四</value>
            <value>王五</value>
         </list>
      </property>
      <property name="userDaoList">
         <list>
            <ref bean="userDao"></ref>
            <ref bean="userDao1"></ref>
            <ref bean="userDao2"></ref>
         </list>
      </property>
   </bean>
   <bean id="userDao" class="cn.msf.dao.impl.UserDaoImpl"></bean>
   <bean id="userDao1" class="cn.msf.dao.impl.UserDaoImpl"></bean>
   <bean id="userDao2" class="cn.msf.dao.impl.UserDaoImpl"></bean>

1.2针对Map集合

前提有属性和set方法。首先要确定是哪一个对象的map因此需要有bean,然后配置property,然后通过name定义属性,最后用map标签表示类型,然后使用entry标签,利用key、value、key-ref或者value-ref进行配置。

<property name="userDaoMap">
         <map>
            <entry key="a" value-ref="userDao"></entry>
            <entry key="b" value-ref="userDao1"></entry>
            <entry key="c" value-ref="userDao2"></entry>
         </map>
      </property>

1.3针对Properties集合

前提有属性和set方法。首先要确定是哪一个对象的properties因此需要有bean,然后配置property,然后通过name定义属性,最后用props标签表示类型,然后使用prpp标签,利用key进行配置。

<property name="properties">
         <props>
            <prop key="p1">ppp1</prop>
            <prop key="p2">ppp2</prop>
            <prop key="p3">ppp3</prop>
         </props>
      </property>

2 Spring 的其他配置标签

Spring的xml标签大体上分为两类,一种是默认标签,一种是自定义标签

默认标签:就是不用额外导入其他命名空间约束的标签,例如 <bean>标签

自定义标签:就是需要额外引入其他命名空间约束,并通过前缀引用的标签,例如<context:property-placeholder/> 标签

<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.xsd
       http://www.springframework.org/schema/context
       http://www.springframework.org/schema/context/spring-context.xsd
">

2.1 beans 标签

需要进行激活

//指定环境
System. setProperty("spring.profiles.active","dev");

2.2 import 标签

<import>标签,用于导入其他配置文件,项目变大后,就会导致一个配置文件内容过多,可以将一个配置文件根据业务某块进行拆分,拆分后,最终通过<import>标签导入到一个主配置文件中,项目加载主配置文件就连同<import>导入的文件一并加载了。

2.3 Alias 标签

用于起别名。

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

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

相关文章

sqli-labs 第八关 多命通关攻略(Python3 自动化实现布尔盲注)

sqli-labs 第八关 多命通关攻略&#xff08;Python3 自动化实现布尔盲注&#xff09;描述判断注入类型正常输入不正常输入错误输入爆破方式的可行性铺垫函数 IF()关于 MySQL 数据类型之间转换的小小礼物&#xff08;仅部分&#xff09;函数 ASCII()ASCII 表&#xff08;可显示字…

火山引擎 DataTester:5 个优化思路,构建高性能 A/B 实验平台

导读&#xff1a;DataTester 是由火山引擎推出的 A/B 测试平台&#xff0c;覆盖推荐、广告、搜索、UI、产品功能等业务应用场景&#xff0c;提供从 A/B 实验设计、实验创建、指标计算、统计分析到最终评估上线等贯穿整个 A/B 实验生命周期的服务。DataTester 经过了字节跳动业务…

vivo 故障定位平台的探索与实践

作者&#xff1a;vivo 互联网服务器团队- Liu Xin、Yu Dan 本文基于故障定位项目的实践&#xff0c;围绕根因定位算法的原理进行展开介绍。鉴于算法有一定的复杂度&#xff0c;本文通过图文的方式进行说明&#xff0c;希望即使是不懂技术的同学也能理解。 一、背景介绍 1.1 程…

2023最新连锁店软件排名,国内十大连锁店管理软件新鲜出炉!

普通的数据工具、人工管理难以满足连锁店老板们的需求&#xff0c;正所谓“有需求就有市场”&#xff0c;随着连锁店、加盟店如雨后春笋般在城市里出现&#xff0c;连锁店软件也越来越多。究竟哪一款连锁店管理软件&#xff0c;才能满足老板们的需求&#xff1f;小编收集了国内…

9/365 java 数组 内存

1.数组 声明&#xff1a; int[] a;//首选 int a[];//一般不用 创建&#xff1a; int[] a new int[10]; // 需指定数组大小 初始化&#xff1a; 静态初始化&#xff1a; int[] a {8,9,10}; String[] s {new String("hello"), new String("world")…

南邮研究生考试历年真题知识点总结

下边的知识点是我在做南京邮电大学考研历年真题时遇到自己不会的题时整理出来的。第九部分是做mooc课后习题时整理出来的&#xff0c;希望对各位同学有所帮助。 md文档网址&#xff1a;https://gitee.com/infiniteStars/wang-dao-408-notes/blob/master/考研笔记/南邮数据结构知…

内存函数:学习笔记7

目录 一.前言 二. memcpy模拟实现 三. memmove模拟实现 四.memcmp模拟实现 一.前言 计算机内存的实质就是以字节为编号单元的二进制序列集合&#xff0c;操作内存时我们应具有这样的视角。 二. memcpy模拟实现 库函数memcpy函数首部&#xff1a;void *memcpy( void *dest, …

量子计算机“九章”

1.中国量子计算机“九章”实现量子霸权 2020年12月&#xff0c;中国科学技术大学宣布该校成功构建光子量子计算原型机“九章”。“九章”是中国科学技术大学潘建伟团队、中科院上海微系统所和国家并行计算机工程技术研究中心合作完成。“九章”的名字是来源于中国历史上最重要…

算法设计与分析-分支限界法习题

7-1 布线问题印刷电路板将布线区域划分成 nm 个方格阵列&#xff0c;要求确定连接方格阵列中的方格a 点到方格b 的最短布线方案。在布线时&#xff0c;电路只能沿直线布线&#xff0c;为了避免线路相交&#xff0c;已布了线的方格做了封锁标记&#xff0c;其他线路不允许穿过被…

大数据开发之利剑 -- TDengine

前言 在大数据技术全球爆炸的时代&#xff0c;以及大数据在各行各业的实际应用&#xff0c;大数据的快速发展就像计算机和互联网一样&#xff0c;很可能成为新一轮的技术革命。数据处理、机器学习、AI等新兴技术诞生&#xff0c;会改变数据世界的许多算法和理论基础&#xff0c…

DAY-1 | Java数据结构之链表:删除无头单链表中等于给定值 val 的所有节点

目录 一、题干 &#x1f517;力扣203. 移除链表元素 二、题解 1、思路 2、完整代码 一、题干 &#x1f517;力扣203. 移除链表元素 二、题解 1、思路 题干的意思是&#xff0c;要删除链表中所有指定的元素。最暴力的方法是&#xff0c;依次遍历链表中的各个节点&#x…

Day3 XML方式的Spring应用

全文总结基于XML配置1、学习了bean标签&#xff0c;2、三种配置bean的方式&#xff1a;1、静态工厂&#xff1b;2、实例工厂和3、自定义实现factorybean1 SpringBean 的配置类inin-method 与构造方法不同&#xff0c;构造方法是创建对象的&#xff0c;等对象创建以后使用inin-m…

2023年全国最新消防设施操作员精选真题及答案

百分百题库提供消防设施操作员考试试题、消防设施操作员考试预测题、消防设施操作员考试真题、消防设施操作员证考试题库等,提供在线做题刷题&#xff0c;在线模拟考试&#xff0c;助你考试轻松过关。 1、对外观目测判断,下列哪种情况不应报废?(  ) A、铭牌标志脱落 B、瓶…

pyqt5加载matplotlib图形

matplotlib的图形处理非常强大。今天花了很长时间才将matplotlib图形嵌入到pyqt5中。在这里记录一下&#xff0c;便于以后查寻。有些可能还理解不到位。开始要导入几个模块&#xff1a;from matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg as FigureCanvasFigur…

tomcat下载和配置(简单,详细)

下载 官网&#xff1a;http://tomcat.apache.org/ 找到需要的版本&#xff0c;点击download 在download页面&#xff0c;选择需要下载的。&#xff08;分为压缩版和安装版&#xff0c;我比较推荐压缩版&#xff0c;省事解压缩就好&#xff09; 配置 首先&#xff01;&…

[ 数据结构 ] 集合覆盖问题(贪心算法)

0 集合覆盖问题 假设存在如下表的需要付费的广播台&#xff0c;以及广播台信号可以覆盖的地区。 如何选择最少的广播台&#xff0c;让所有的地区都可以接收到信号 广播台覆盖地区K1北京,上海,天津K2广州,北京,深圳K3成都,上海,杭州K4上海,天津K5杭州,大连 思路分析①:穷举法,…

LeetCode 64 最小路径和 | 解题思路分享

原题链接&#xff1a;64. 最小路径和 题目难度&#xff1a;中等 题目描述 给定一个包含非负整数的 m x n 网格 grid &#xff0c;请找出一条从左上角到右下角的路径&#xff0c;使得路径上的数字总和为最小。 **说明&#xff1a;**每次只能向下或者向右移动一步。 示例 1&…

Apache Spark + 海豚调度:PB 级数据调度挑战,教你如何构建高效离线工作流

2010年&#xff0c;我国进入移动互联网&#xff0c;数据规模成几何式增长。在大数据开源技术领域&#xff0c;以Hadoop为核心的大数据生态系统面对海量数据也不断发展与迭代&#xff0c;大数据处理流程中的各个开源组件&#xff0c;也一起开启了狂飙突进的大数据时代&#xff0…

MyBatis---初入

MyBatis快速入门 文章目录MyBatis快速入门MyBatisMyBatis开发步骤添加MyBatis的坐标创建user数据表编写user实体类编写映射文件UserMapper.xml编写核心文件SqlMapConfig.xml编写测试类MyBatis Mybatis是一个优秀的基于java的持久层框架&#xff0c;它内部封装了jdbc,使开发者只…

疫情放开后,如何保护居家员工的办公安全?

随着疫情的放开&#xff0c;大多数企业的员工因“阳”不得不在家办公。据当前的趋势来看&#xff0c;一线城市的大小企业已经出现高比例的员工感染&#xff0c;不少工作人员或出于安全的考虑选择居家办公。但无论是被迫居家隔离&#xff0c;还是主动远程办公&#xff0c;大多数…