zoukankan      html  css  js  c++  java
  • Spring中两种引入配置文件方式

    用过Spring的人都知道,我们一般把数据库的配置、日志的配置或者其他的通用配置放在单独的配置文件中,在和Spring整合时,一般通过以下两种方法引入:

    1. <context:property-placeholder>
    2. <util:properties>

    下面我们来对比一下这两种方法。

    <context:property-placeholder>

    • 首先,这个是Spring中context下对应的一个标签。要使用它需要在Spring的配置文件头部中引入其对应的命名空间
    • 其使用方式也很简单 
    <context:property-placeholder location="classpath:db.properties" />  <!-- 引入配置文件 –> 
    <!--该标签对应的属性有:
    location : 所需要引入的配置文件,当有多个时,可以使用逗号分开。项目里的配置文件一般在类路径下,所以可以使用classpath:xxx
     
    order :一般我们可能会使用多个context:property-placeholder标签引入多个配置文件,order这个属性可以控制配置文件加载的顺序,order数字越低越先加载
     
    ignore-resource-not-found :boolean值,可以控制是否忽略引入的文章找不到的情况,为true代表忽略,当引入文件不存在时,不会报错
     
    properties-ref : 除了引入文件外,还可以引入本地定义的配置对象
     
    local-ovriride : boolean值,控制是否properties-ref覆盖location中的属性值
    -->

    通过上面的方法就在Spring中引入了该配置文件。其使用方式是通过$,例如:${xxx}。在Spring xml中可以使用${xxx},在java代码中可以使用@Value(“${xxx}”),类似于

    <property name="url" value="${mysql.jdbc.url}" />
    @Value("${mysql.jdbc.url}")
    private String mysqlJdbcUrl;

    <util:properties>

    • 其实Spring中util下的一个标签。使用它需要引入util的命名空间。
    • 使用方法也很简单
    <util:properties id="wxProperties" location="classpath:wx.properties" /> 
    <!--
    id :该配置文件对象名称,可以通过该名称引用配置文件中的属性 
    
    location : 和上面的标签的location属性类似
    
    -->

    配置完成后,可以在java类中使用,使用方式: @Value("#{wxProperties['jdbc.driver']}") ,类似于

    @Value("#{wxProperties['jdbc.driver']}")
    private String jdbcDriver;

    区别

    <context:property-placeholder> 定义的变量只能够在其对应的上下文中使用

    <util:properties>在整个Spring中都能使用

    之前做一个项目时,由于没有发现这两个的区别,混用了这两个标签,最后导致了一部分定义在<context:property-placeholder>的变量无法使用。原因就是其只能作用在对应的上下文中,而我们使用该变量的位置不在其上下文中,最后导致了null。解决方法就是1.使用第二个标签;2.在我们使用的变量的地方引入<context:property-placeholder>

  • 相关阅读:
    winrt组件库(包括翻书组件)
    WebRequest 获取网页乱码
    OpenNI结合Unity3D Kinect进行体感游戏开发(转)
    python(pyqt)开发环境搭建
    win8开发wpf程序遇到的无语问题
    winrt 页面进入动画
    winrt 根据类型生成实例
    性能测试基础
    性能基础入门篇
    项目部署
  • 原文地址:https://www.cnblogs.com/glsy/p/8303379.html
Copyright © 2011-2022 走看看