【Spring】配置文件-properties和xml

news2024/11/15 17:59:03

文章目录

  • 1. 前言
  • 2. properties配置文件
  • 3. xml配置文件
  • 4. 总结

1. 前言

在Spring中,配置文件有两种,properties配置文件和xml配置文件

properties配置文件,在Java编程中是一种常见的配置文件形式,文件后缀为“.properties”,属于文本文件。它的内容格式是“键=值”的格式,并且可以使用“#”作为注释。

XML配置文件是一种用于存储和传输数据的格式,它以可读性较强的文本形式表示数据结构。XML配置文件通常用于描述软件系统的配置信息、数据库结构、网络拓扑等。

2. properties配置文件

properties配置文件主要学习如何让Spring进行读取
接下来会通过JDBC的代码来进行说明:

首先要现在pom.xml来引入相关依赖

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.49</version>
        </dependency>

不使用Spring的代码:

public class DBUtil {
    public static void main(String[] args) {
        MysqlDataSource dataSource =  new MysqlDataSource();
        dataSource.setURL("jdbc:mysql://127.0.0.1:3306/test");
        dataSource.setUser("root");
        dataSource.setPassword("284013");
    }
}

上述只是JDBC中创建数据源的代码.

为什么要用到Spring呢?

MysqlDataSource dataSource =  new MysqlDataSource();

dataSource也是对象,既然是对象我们就可以把dataSource交给Spring来管理,这也是Spring的特性之一(IOC).

IOC的核心概念是将对象创建的权利交给一个被称为IoC容器的程序来进行管理,而不是传统的在对象内部直接控制

dataSource.setURL("jdbc:mysql://127.0.0.1:3306/test?characterEncoding=utf8&useSSL=false;");
dataSource.setUser("root");
dataSource.setPassword("123123");

这三行代码也只是在为dataSource设置属性值,这不就是DI依赖注入嘛.

因此只需要使用配置文件来解决IOC和DI就可以了

将dataSource放到Spring容器中:

    <bean class="com.mysql.jdbc.jdbc2.optional.MysqlDataSource" id="dataSource">
        <property name="url" value=""></property>
        <property name="user" value=""></property>
        <property name="password" value=""></property>
    </bean>

我这里并没有直接把值写到bean标签中,写在bean标签中,数据就写死了不太好.

我们来用properties配置文件,让Spring来读取properties配置文件中的值

创建properties配置文件:
在这里插入图片描述
properties配置文件中的值是以key=value的形式存在的

jdbc.url=jdbc:mysql://127.0.0.1:3306/test?characterEncoding=utf8&useSSL=false;
jdbc.user=root
jdbc.password=123123

在这里插入图片描述
roperties配置文件创建好了,如何进行读取呢?

读取properties配置文件需要在Spring的配置文件中使用<context:property-placeholder>标签

在这里插入图片描述
在使用<context:property-placeholder>这个标签时,上面的xmlns会多一行.这一点需要注意一下

接下来让Spring读取properties配置文件:
在这里插入图片描述
⭐注意:这里读取是使用的是${key},注意和SpEL的#{表达式}进行区分

接下来来获取Spring容器中dataSource这个对象,并查看对应的属性
在这里插入图片描述
可以看到设置的值已经成功注入了

3. xml配置文件

在实际开发中,并不会只用一个配置,如果代码多了,看起来就会十分麻烦,而是会使用多个配置,然后将多个配置文件整合到主配置文件中

在我刚才的示例中:我的主配置文件是Spring-config.xml,还有一个jdbc.properties配置文件.jdbc的数据库连接池在主配置文件中,我想把这部分代码单独放在jdbc.xml中然后再整合到主配置文件中
在这里插入图片描述
jdbc.xml:
与主配置文件时相同,设置bean对象,读取jdbc.properties配置文件,不要忘记<context:property-placeholder>这个标签
在这里插入图片描述
接下来将jdbc.xml引入到Spring-config.xml(主配置文件)中,只需要在Spring-config.xml中加入这一段代码:

<import resource="classpath:jdbc.xml"></import>

使用的是<import>标签,同时设置 resource这个属性就可以了
测试:
在这里插入图片描述
获取dataSource对象,属性也没有问题

4. 总结

本文通过获取数据库的连接源进行讲解,主要讲解了Spring如何读取properties配置文件以及将xml配置文件进行整合,以及所需要的标签的讲解,虽然比较简单,但也要多多练习!
以上就是配置文件的所有内容了,感谢你的观看!

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

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

相关文章

LeetCode算法题解|​ 669. 修剪二叉搜索树​、108. 将有序数组转换为二叉搜索树、​538. 把二叉搜索树转换为累加树​

一、LeetCode 669. 修剪二叉搜索树​ 题目链接&#xff1a;669. 修剪二叉搜索树 题目描述&#xff1a; 给你二叉搜索树的根节点 root &#xff0c;同时给定最小边界low 和最大边界 high。通过修剪二叉搜索树&#xff0c;使得所有节点的值在[low, high]中。修剪树 不应该 改变…

数据库系统原理第一章:数据库系统概述详解

数据库系统概述 概述基本概念数据数据库数据库管理系统数据库系统 管理发展『人工管理阶段』『文件系统阶段』『数据库系统阶段』 系统结构结构分类三级模式两层映像与数据独立性 主页传送门&#xff1a;&#x1f4c0; 传送 概述 数据库系统原理课程是一门理论与实践相结合的课…

Spring 与 Spring Boot

什么是 Spring 可以理解 Spring 是一个框架。这个框架最早来源于在差不多的 20 年前的 2002 年。 在那个时候 Java 世界的开发还是以 EJB 为主&#xff0c;因为在这之前的大部分应用都会使用服务器客户端的应用模式。 其实这个模式在现在还是在使用的&#xff0c;例如 IBM 系统…

第一章 Python基础知识

文章目录 python介绍优点应用领域web框架学习小技巧 python安装linux运行第一个程序Windows 基础数据类型算术运算符变量与赋值操作符变量赋值操作符转义符 获取用户输入与注释获取用户注释 案例&#xff1a;简单计算器实现在这里插入图片描述 总结 python介绍 python是一种面…

博文总结:交叉熵损失函数与标签平滑

文章目录 基本概念交叉熵损失函数Pytorch代码实现参考文献 李宏毅机器学习2023作业04Self-attention、李宏毅机器学习2023作业03CNN和李宏毅机器学习2023作业02Classification都是分类问题&#xff0c;都涉及到了交叉熵损失函数以及起正则作用的标签平滑技巧&#xff0c;本次博…

项目实战:给首页上库存名称添加超链接然后带fid跳转到edit页面

1、提取公共方法common.js function $(key){if(key){if(key.startsWith("#")){key key.substring(1)return document.getElementById(key)}else{let nodeList document.getElementsByName(key)return Array.from(nodeList)}} } 2、 给库存名称添加超链接 2.1、inde…

Qt Creator创建新项目警告问题

这里可以看见如果你是一些高版本会出现各种警告&#xff0c;但是可以编译通过&#xff0c;这是ClangCodeModel模块导致 解决办法 help -> About Plugins..->C ->ClangCodeModel 帮助 -> 关于插件 -> c ->ClangCodeModel取消勾选 然后重启Qt即可

【Java初阶练习题】-- 循环+递归练习题

循环练习题02 打印X图形计算1/1-1/21/3-1/41/5 …… 1/99 - 1/100 的值输出一个整数的每一位如&#xff1a;123的每一位是3&#xff0c;2&#xff0c;1模拟登录使用方法求最大值求斐波那契数列的第n项。(迭代实现)求和的重载求最大值方法的重载递归求N阶乘递归求 1 2 3 ...…

Redis的安装及基本使用

⭐⭐ Redis专栏&#xff1a;Redis专栏 ⭐⭐ 个人主页&#xff1a;个人主页 目录 一.Redis的简介 ⭐ 拓展&#xff1a;NO-SQL数据库与SQL数据库 二.Redis的安装 2.1linux版安装 下载Redis Desktop 2.2 Windows安装 三.redis的基本使用 3.1 String 字符串类…

如何从嘉立创下单一个PCB打板(免费)

文章目录 设计PCB下单制作PCB领取优惠券 设计PCB 由于我刚接触PCB设计&#xff0c;并不会自己设计&#xff0c;因此直接选择了一个开源硬件平台中的一个项目进行下载&#xff0c;下载链接如下&#xff1a; ESP32管灯熊猫 - 嘉立创EDA开源硬件平台 (oshwhub.com) 根据其中的视…

jeecg-uniapp 转成小程序的过程 以及报错 uniapp点击事件

uniapp 点击事件 tap: 单击事件 confirm: 回车事件 blur:失去焦点事件 touchstart: 触摸开始事件 touchmove: 触摸移动事件。 touchend: 触摸结束事件。 longpress: 长按事件。 input: 输入框内容变化事件。 change: 表单元素值变化事件。 submit: 表单提交事件。 scroll: 滚动…

程序员有哪些规避风险的合法兼职渠道?

近期&#xff0c;承德程序员事件冲上热搜&#xff0c;这对许多程序员的心灵是多么大的伤害啊&#xff01; 人人自危&#xff0c;大家开始顾虑自己接私活、找兼职的方式和前景了。毕竟&#xff0c;谁也不想”辛辛苦苦几十年&#xff0c;一把回到解放前“。那有什么办法既可以接私…

【自动控制原理】数学模型:系统框图及其化简、控制系统传递函数

文章目录 第2章 数学模型2.1 控制系统的运动微分方程2.2 拉氏变换和反变换2.3 传递函数2.4 系统框图2.4.1 系统框图2.4.2 系统框图的简化2.4.3 梅森公式2.4.4 例题答案解析——梅森公式 2.5 控制系统传递函数2.5.1 闭环系统的开环传递函数2.5.2 参考输入R(s)作用下的闭环传递函…

ONNX的结构与转换

ONNX的结构与转换 1. 背景2. ONNX结构分析与修改工具2.1. ONNX结构分析2.2. ONNX的兼容性问题2.3. 修改ONNX模型 3. 各大深度学习框架如何转换到ONNX&#xff1f;3.1. MXNet转换ONNX3.2. TensorFlow模型转ONNX3.3. PyTorch模型转ONNX3.4. PaddlePaddle模型转ONNX3.4.1. 简介3.4…

zabbix6.4监控centos

1、关闭防火墙 setenforce 0 #关闭SELinux sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config #设置永久关闭SELinux systemctl stop firewalld.service #关闭防火墙 systemctl disable firewalld.service …

nodejs express vue 点餐外卖系统源码

开发环境及工具&#xff1a; nodejs&#xff0c;vscode&#xff08;webstorm&#xff09;&#xff0c;大于mysql5.5 技术说明&#xff1a; nodejs express vue elementui 功能介绍&#xff1a; 用户端&#xff1a; 登录注册 首页显示搜索菜品&#xff0c;轮播图&#xf…

DNS 域名解析协议

作用 将域名转化位IP地址 域名 用’ . ’ 隔开的字符串&#xff0c;如&#xff1a;www.badu.com,就是为了赋予IP特殊含义。 一级域名 .com &#xff1a;公用 .cn&#xff1a;中国 .gov&#xff1a;政府 .us&#xff1a;美国 .org&#xff1a;组织 .net&#xff1a;网站 对应一级…

MATLAB和S7-1200PLC OPC通信(激活S7-1200PLC OPC UA服务器)

MATLAB和SMART PLC OPC通信请参考下面文章博客: MATLAB和西门子SMART PLC OPC通信-CSDN博客文章浏览阅读123次。西门子S7-200SMART PLC OPC软件的下载和使用,请查看下面文章Smart 200PLC PC Access SMART OPC通信_基于pc access smart的opc通信_RXXW_Dor的博客-CSDN博客OPC是…

【算法挨揍日记】day18——746. 使用最小花费爬楼梯、91. 解码方法

746. 使用最小花费爬楼梯 746. 使用最小花费爬楼梯 题目描述: 给你一个整数数组 cost &#xff0c;其中 cost[i] 是从楼梯第 i 个台阶向上爬需要支付的费用。一旦你支付此费用&#xff0c;即可选择向上爬一个或者两个台阶。 你可以选择从下标为 0 或下标为 1 的台阶开始爬…

进程优先级(nice值,top指令),独立性,竞争性,进程切换(时间片),抢占与出让,并发并行概念

目录 优先级 引入 为什么会存在优先级 特点 优先级值 nice值 更改nice值 top指令 独立性 竞争性 进程切换 引入 时间片 上下文切换 调度器 抢占与出让 强占 出让 并发和并行 并发 并行 优先级 引入 与权限不同的是,权限是能不能做的问题,优先级是什…