欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

一文詳解Spring加載properties文件的方式

 更新時(shí)間:2022年06月11日 15:08:26   作者:夏志121  
這篇文章將通過一些示例為大家詳細(xì)介紹Spring加載properties文件的幾種方式,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下

spring第三方資源配置管理

  • DruidDataSource
  • ComboPooledDataSource

一、druid的資源配置管理

導(dǎo)入druid的坐標(biāo):

        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.1.16</version>
        </dependency>

App運(yùn)行輸出druid:

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
 
import javax.sql.DataSource;
 
public class App {
    public static void main(String[] args) {
        ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
        DataSource dataSource = (DataSource) ctx.getBean("dataSource");
        System.out.println(dataSource);
 
    }
}

applicationContext.xml配置:

配置數(shù)據(jù)源對(duì)象作為spring管理的bean

<!--    管理DruidDataSource對(duì)象-->
   <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
           <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
           <property name="url" value="jdbc:mysql://localhost:3306/spring_db"/>
           <property name="username" value="root"/>
           <property name="password" value="root"/>
   </bean>

執(zhí)行結(jié)果:

二、c3p0資源配置管理

maven遠(yuǎn)程倉(cāng)庫(kù)中找:

導(dǎo)入c3p0的坐標(biāo):

        <dependency>
            <groupId>c3p0</groupId>
            <artifactId>c3p0</artifactId>
            <version>0.9.1.2</version>
        </dependency>

c3p0還需要mysql的驅(qū)動(dòng),導(dǎo)入mysql的坐標(biāo):

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

App運(yùn)行輸出與上面的一樣。

applicationContext.xml配置:

  <!--c3p0連接池對(duì)象-->
       <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/spring_db"/>
           <property name="user" value="root"/>
           <property name="password" value="root"/>
           <property name="maxPoolSize" value="1000"/>
       </bean>

也可以配置最大連接對(duì)象和其他需要配置數(shù)據(jù)。

執(zhí)行結(jié)果:

三、加載properties文件

1、開啟context命名空間,總共5處標(biāo)紅的地方需要修改為context。

<?xml version="1.0" encoding="UTF-8"?>
<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、使用context命名空間,加載指定properties文件

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

properties配置文件,配置時(shí)要加jdbc,不然會(huì)和系統(tǒng)環(huán)境變量沖突,系統(tǒng)優(yōu)先級(jí)高:

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://127.0.0.1:3306/spring_db
jdbc.username=root
jdbc.password=root

3、使用${ }讀取加載的properties文件中的屬性值

說明:idea自動(dòng)識(shí)別${ }加載的屬性值,需要手工點(diǎn)擊才可以查閱原始書寫格式

<property name="driverClassName" value="${jdbc.driver}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>

不加載系統(tǒng)屬性

可通過此種方法不加載系統(tǒng)屬性,就不會(huì)和系統(tǒng)屬性沖突:

system-properties-mode屬性:是否加載系統(tǒng)屬性

<context:property-placeholder location="jdbc.properties" system-properties-mode="NEVER"/>

加載多個(gè)properties文件

用逗號(hào)分隔可加載多個(gè)properties文件:

<context:property-placeholder location="jdbc.properties,jdbc2.properties"/>

加載所有properties文件

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

加載properties文件標(biāo)準(zhǔn)格式

classpath:*.properties:設(shè)置加載當(dāng)前工程類路徑中的所有properties文件

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

從類路徑或jar包中搜索并加載properties文件

classpath*:*.properties:設(shè)置加載當(dāng)前工程類路徑和當(dāng)前工程所依賴的所有jar包中的所有properties文件

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

以上就是一文詳解Spring加載properties文件的方式的詳細(xì)內(nèi)容,更多關(guān)于Spring加載properties文件的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • java 多線程與并發(fā)之volatile詳解分析

    java 多線程與并發(fā)之volatile詳解分析

    volatile這個(gè)關(guān)鍵字可能很多朋友都聽說過,或許也都用過。在Java 5之前,它是一個(gè)備受爭(zhēng)議的關(guān)鍵字,因?yàn)樵诔绦蛑惺褂盟鶗?huì)導(dǎo)致出人意料的結(jié)果。在Java 5之后,volatile關(guān)鍵字才得以重獲生機(jī)
    2021-11-11
  • Java解決線程的不安全問題之volatile關(guān)鍵字詳解

    Java解決線程的不安全問題之volatile關(guān)鍵字詳解

    這篇文章主要介紹了Java解決線程的不安全問題之volatile關(guān)鍵字詳解,可見性指一個(gè)線程對(duì)共享變量值的修改,能夠及時(shí)地被其他線程看到,而 volatile 關(guān)鍵字就保證內(nèi)存的可見性,需要的朋友可以參考下
    2023-08-08
  • Java序列化常見的三個(gè)問題

    Java序列化常見的三個(gè)問題

    這篇文章主要介紹了Java序列化常見的三個(gè)問題,幫助大家更好的理解和學(xué)習(xí)JAVA,感興趣的朋友可以了解下
    2020-08-08
  • Spring使用AOP完成統(tǒng)一結(jié)果封裝實(shí)例demo

    Spring使用AOP完成統(tǒng)一結(jié)果封裝實(shí)例demo

    這篇文章主要介紹了Spring使用AOP完成統(tǒng)一結(jié)果封裝,本文通過實(shí)現(xiàn)demo給大家詳細(xì)講解,代碼簡(jiǎn)單易懂,對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-02-02
  • JDBC SQL語法

    JDBC SQL語法

    結(jié)構(gòu)化查詢語言(SQL)是一種標(biāo)準(zhǔn)化的語言,它允許你在數(shù)據(jù)庫(kù)上執(zhí)行操作,如創(chuàng)建項(xiàng)目,讀取內(nèi)容,內(nèi)容更新和刪除條目
    2014-03-03
  • java編程之基于SpringBoot框架實(shí)現(xiàn)掃碼登錄

    java編程之基于SpringBoot框架實(shí)現(xiàn)掃碼登錄

    本文將介紹基于SpringBoot + Vue + Android實(shí)現(xiàn)的掃碼登錄demo的總體思路,文中附含詳細(xì)示例代碼,有需要的朋友可以借鑒參考下,希望能夠有所幫助
    2021-09-09
  • Java Map 通過 key 或者 value 過濾的實(shí)例代碼

    Java Map 通過 key 或者 value 過濾的實(shí)例代碼

    這篇文章主要介紹了Java Map 通過 key 或者 value 過濾的實(shí)例代碼,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2018-06-06
  • springboot整合httpClient代碼實(shí)例

    springboot整合httpClient代碼實(shí)例

    這篇文章主要介紹了springboot整合httpClient代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-12-12
  • java利用StringTokenizer分割字符串的實(shí)現(xiàn)

    java利用StringTokenizer分割字符串的實(shí)現(xiàn)

    利用java.util.StringTokenizer的方法,可以將一個(gè)字符串拆分為一系列的標(biāo)記,本文就來介紹一下java利用StringTokenizer分割字符串的實(shí)現(xiàn),感興趣的可以了解一下
    2023-10-10
  • Java將本地項(xiàng)目部署到Linux服務(wù)器的實(shí)踐

    Java將本地項(xiàng)目部署到Linux服務(wù)器的實(shí)踐

    本文主要介紹了Java將本地項(xiàng)目部署到Linux服務(wù)器的實(shí)踐,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧<BR>
    2022-06-06

最新評(píng)論