【Spring】配置文件-properties和xml

文章目录

  • 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.mzph.cn/news/128005.shtml

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

相关文章

Java中的23种设计模式

一、创建型模式1.单例模式 单例模式是 Java 中最简单的设计模式之一。通过单例模式&#xff0c;可以保证系统中&#xff0c;应用了单例模式的类&#xff0c;只有一个对象实例。包括五种&#xff1a;饿汉式、懒汉式、双重校验、静态内部类、枚举类。 1.1 饿汉式 特点:类加载时…

typeScript的类型等级

1.首先安装typeScript npm install typescript 2.方便学习安装一个types/node方便编译ts npm install types/node 可以直接使用命令 ts-node index.ts 准备工作完成&#xff01;&#xff01;&#xff01; 类型的等级 1&#xff1a;any unknown //顶级的类型 2: Object …

十分钟设置免费海外远程桌面 | 使用Amazon Lightsail服务的免费套餐轻松搭建远程桌面

目录 使用Amazon Lightsail服务的免费套餐轻松搭建远程桌面 1. 启动Amazon Lightsail实例 2. 配置远程桌面 3. 启动远程桌面 4. 使用远程桌面 使用Amazon Lightsail服务的免费套餐轻松搭建远程桌面 前言 ①本教程将向您介绍如何使用Amazon Lightsail服务的免费套餐轻松搭…

linux导入、导出数据库sql语句

导入数据库 1、首先建空数据库 mysql>create database abc;2、导入数据库 方法一&#xff1a; &#xff08;1&#xff09;选择数据库 mysql>use abc;&#xff08;2&#xff09;设置数据库编码 mysql>set names utf8;&#xff08;3&#xff09;导入数据&#xff0…

Vue+elementui 纯前端实现Excel导入导出功能(区分表头标题)

引入插件 import * as XLSX from "xlsx/xlsx.mjs"; import { read, utils } from xlsx/xlsx.mjs; 上传文件方法 // 上传文件状态改变时的钩子&#xff0c;添加文件、上传成功和上传失败时都会被调用async handle(ev) {//改变表格key值this.$refs.cpkTable.loading…

git pull 时每次都要输入用户名和密码的解决办法

解决办法&#xff1a; git bash进入你的项目目录&#xff0c;输入&#xff1a; git config credential.helper store

知心早安问候语,愿你享受美好的时光,幸福快乐每一天

人生万里路&#xff0c;走好每一步&#xff0c;身体是本钱&#xff0c;平安是财富&#xff0c;开心就是护身符&#xff0c;健康才是摇钱树。新的一天&#xff0c;事事顺意&#xff01; 晨起福门开&#xff0c;快乐安康在&#xff0c;愉悦心态好&#xff0c;生活充满爱&#xf…

Qt报错整理-Q_DECLARE_METATYPE

1、Q_DECLARE_METATYPE 进行数据绑定时候&#xff0c;出现这个bug错。 error: C2338: Type is not registered, please use the Q_DECLARE_METATYPE macro to make it known to Qt。 原因&#xff1a;使用了QVariant::fromValue(user)&#xff0c;QVariant对象使用前需进行类…

DeepXDE学习笔记【1】——简单ODE方程求解

DeepXDE学习笔记【1】——简单ODE方程求解 1、背景 物理信息神经网络(PINN)自从2017年被提出&#xff0c;其应用范围在近两年也被挖掘的越来越广泛&#xff0c;除了可以解决物理方面的问题&#xff0c;信号处理、工程评估等等方向也开始有所涉及&#xff0c;所谓“物理数据双…

【软考】14.3 设计模式

《设计模式》 有下划线&#xff1a;类模式 / 对象模式无下划线&#xff1a;对象模式 创建型 设计模式 创建对象 构建器&#xff08;Builder&#xff09;&#xff1a;类和构造分离抽象工厂&#xff08;Abstract Factory&#xff09;&#xff1a;抽象接口工厂&#xff08;Factor…

MongoDB系例全教程

一、系列文章目录 一、MongoDB安装教程—官方原版 二、MongoDB 使用教程(配置、管理、监控)_linux mongodb 监控 三、MongoDB 基于角色的访问控制 四、MongoDB用户管理 五、MongoDB基础知识详解 六、MongoDB—Indexs 七、MongoDB事务详解 八、MongoDB分片教程 九、Mo…

如何在MacOS使用homebrew安装Nginx

文章目录 Homebrew安装nginxbrew启动Nginxbrew关闭Nginx 参考文章地址 Homebrew安装nginx 在确保MacOS 安装Homebrew成功以后&#xff0c;执行如下命令 brew install nginx注意&#xff1a;Nginx安装成功后会提示目录位置&#xff1b;每个人的系统可能因为Homebrew的安装位置…

【Linux学习笔记】进程概念(下)

进程地址空间1. 虚拟地址2. 什么是进程地址空间3. 进程地址空间的映射。4. 地址空间存在的意义5. 写时拷贝 进程地址空间 1. 虚拟地址 来看这样一段代码。 #include <stdio.h> #include <unistd.h>int global_value 100;int main() {pid_t id fork();if(id &l…

前端CSS

文章目录 引入标签的两大重要属性&#xff1a;区分标签class属性id属性学习CSS流程 CSS前言CSS层叠样式表1.CSS组成2.css语法结构3.注释语法4.引入css的多种方式 CSS选择器1.CSS基本选择器2.CSS组成选择器3.分组与嵌套4.属性选择器5.伪类选择器6.伪元素选择器 选择器优先级CSS继…

基于深度学习的水果识别 计算机竞赛

1 前言 Hi&#xff0c;大家好&#xff0c;这里是丹成学长&#xff0c;今天做一个 基于深度学习的水果识别demo 这是一个较为新颖的竞赛课题方向&#xff0c;学长非常推荐&#xff01; &#x1f9ff; 更多资料, 项目分享&#xff1a; https://gitee.com/dancheng-senior/pos…

什么情况会造成电表不走数?

电表是衡量用电量的重要设备&#xff0c;一旦出现不走数的情况&#xff0c;不仅会影响用户对用电量的准确计算&#xff0c;还可能造成电费纠纷。那么&#xff0c;究竟什么情况下会造成电表不走数呢&#xff1f;接下来&#xff0c;小编来为大家介绍下&#xff0c;一起来看下吧&a…

傅里叶分析和小波分析

从傅里叶变换到小波变换&#xff0c;并不是一个完全抽象的东西&#xff0c;可以讲得很形象。小波变换有着明确的物理意义&#xff0c;如果我们从它的提出时所面对的问题看起&#xff0c;可以整理出非常清晰的思路。 下面我就按照傅里叶-->短时傅里叶变换-->小波变换的顺…

Python---字符串切片-----序列名称[开始位置下标 : 结束位置下标 : 步长]

字符串切片&#xff1a;是指对操作的对象截取其中一部分的操作。字符串、列表、元组都支持切片操作。 本文以字符串为例。 基本语法&#xff1a; 顾头不顾尾&#xff1a; ----------类似range&#xff08;&#xff09; 范围&#xff0c;顾头不顾尾 相关链接Python----ran…

软考高项-案例部分

看到有技术人员出身做项目经理就要回答在信息系统工程中,开发和管理是两条不同的主线,开发人员所需要的技能与管理人员所需要的技能很不一样,角色定位可能不好、没有站在项目经理的角度管理项目,所以需要给他培训看到身兼数职就要回答可能没有多少时间去学习管理知识,去从…

python使用ffmpeg来制作音频格式转换工具(优化版)

简介:一个使用python加上ffmpeg模块来进行音频格式转换的工具。 日志: 20231030:第一版,设置了简单的UI布局和配色,实现音频转为Mp3、AAC、wav、flac四种格式。可解析音频并显示信息,可设置转换后的保存路径 UI界面: 编程平台:visual studio code 编程语言:python 3…