spring读取properties配置文件「建议收藏」

spring读取properties配置文件「建议收藏」spring读取properties配置文件

大家好,又见面了,我是你们的朋友全栈君。

      在项目中,会存放一些不经常变动的信息,比如数据库的配置,如果我们直接写在代码里,当项目发布以后,想要修改数据库的连接信息,就需要修改代码,重新发布,这样做显然是不明智的选择。我们就可以把这些信息写到一个配置文件中,即使项目发布了,需要修改数据库的配置信息,也不需要复杂的操作,只需要修改配置文件即可。

     通过spring读取properties配置文件,我觉得可以分为三步,第一步是在项目中添加一个.properties配置文件,第二步在spring中加载定义的配置文件,第三步就是在xml文件或java文件中读取值。

      最开始我们的数据库配置信息是这样的

<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">  
    <property name="driverClass" value="com.mysql.jdbc.Driver" />  
    <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/shop" />  
    <property name="user" value="root" />  
    <property name="password" value="root" />  
</bean>  

         当我们定义了配置文件后,就可以把上面的信息抽取出来:

dataSource=com.mchange.v2.c3p0.ComboPooledDataSource  
driverClass=com.mysql.jdbc.Driver  
jdbcUrl=jdbc\:mysql\://localhost\:3306/shop  
user=root  
password=root  

       接下来就是加载配置文件,加载配置文件有两种方式:

<context:property-placeholder location="classpath:conn.properties"/>

     上面我们是通过<context:property-placeholder location=””/>标签来加载配置文件的,但是如果我们需要加载多个配置文件时,就需要添加通配符。

      我们还可以同过另外一种方式加载:

<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">  
    <property name="locations">
     <!-- PropertyPlaceholderConfigurer类中有个locations属性,接收的是一个数组,即我们可以在下面配好多个properties文件 -->  
        <array>  
            <value>classpath:conn.properties</value>  
        </array>  
        <array>  
            <value>classpath:sys.properties</value>  
        </array>  
    </property>  
</bean> 

      最后我们就可以读取配置文件的值了。

      在xml文件中,通过${}读取:

<bean id="dataSource" class="${dataSource}"> 
    <property name="driverClass" value="${driverClass}" />  
    <property name="jdbcUrl" value="${jdbcUrl}" />  
    <property name="user" value="${user}" />  
    <property name="password" value="${password}" />  
 </bean>  

      通过注解在java类中通过@Value注解读取:

    @Value("#{name}")  
    private String dbname;  
      
    @Value("#{passward}")  
    private String dbpassward; 

      关于这块的内容也是刚刚学习,希望大家多多指教。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/105639.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • C++数组初始化[通俗易懂]

    C++数组初始化[通俗易懂]C++数组初始化定义:int*pia=newint[10];// arrayof10uninitialized ints此 new 表达式分配了一个含有10个 int 型元素的数组,并返回指向该数组第一个元素的指针,此返回值初始化了指针 pia。在自由存储区中创建的数组对象是没有名字的,只能通过其地址间接地访问堆中的对象。注意:C++使用new和delete…

  • 手眼标定过程记录

    手眼标定过程记录手眼标定过程记录============================================================================================以下四个变量是最重要的数据rvecs_rb2gripper,tvecs_rb2gripperrvecs_cam,tvecs_cam1.首先排查机械臂末端到底座的旋转平移

  • docker 离线安装及命令整理[通俗易懂]

    docker 离线安装及命令整理[通俗易懂]1、保存镜像<fontface=’微软雅黑’size=3>将我们的镜像保存为tar压缩文件这样方便镜像转移和保存,然后可以在任何一台安装了docker的服务器上加载这个镜像。(主要考虑到liunx离线部署问题)</font>dockersave镜像名/镜像ID-o镜像保存在哪个位置与名字示例dockersaveoffline-map-o/offlinemap.tar2、加载镜像任何装docker的地方加载镜像保存文件,使其恢复为一

  • notify是object方法吗_wait方法和notify方法

    notify是object方法吗_wait方法和notify方法区别notify:只会唤醒等待该锁的其中一个线程。notifyAll:唤醒等待该锁的所有线程。既然notify会唤醒一个线程,并获取锁,notifyAll会唤醒所有线程并根据算法选取其中一个线程获取锁,那最终结果不都是只有一个线程获取锁吗?那JDK为什么还需要做出来这两个方法呢?这两种同步方法本质上会有什么区别?这还要从对象内部锁的调度说起。对象内部锁其实,每个对象都拥有两个池,分…

  • maven中的groupId和artifactId到底指的是什么?「建议收藏」

    ———2017.12.01修改———-下面标黄的位置应该修改为cn.snowin.testProj,感谢网友xiaoqidela指出。—————原文——————-转载自百度知道一位网友的回答(略修改)地址:https://zhidao.baidu.com/question/1639120287056394340.h…

  • route add怎么用_centos route add

    route add怎么用_centos route add1.具体功能 该命令用于在本地IP路由表中显示和修改条目。使用不带参数的ROUTE可以显示帮助。 2.语法详解 route[-f][-p][command[destination][masknetmask][gateway][metricmetric][ifinte***ce] 3.参数说明 -f 清除所有不是主路由(子网掩码为255.255.255.

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号