導航:首頁 > 版本升級 > spring42配置文件

spring42配置文件

發布時間:2023-05-27 21:17:40

⑴ 二、SpringBoot的配置--yaml

SpringBoot使用一個全局的配置文件,配置文件名是固定的;

配置文件的作用:修改SpringBoot自動配置的默認值;SpringBoot在底層都給我們自動配置好;

YAML 是一個標記語言

標記語言:

以前的配置文件;大多都使用的是xxx.xml文件

YAML:以數據為中心,比json、xml等更適合做配置文件

YAML:配置例子

XML:

k:(空格)v : 表示一對鍵值對(空格必須有)

以空格的縮進來控制層級關系;只要是左對齊的一列數據,都是同一個層級的

屬性和值也是大小寫敏感;

k: v :字面直接來寫;

字元串默認不用加上單引號或者雙引號;

"" :雙引號;不會轉義字元串裡面的特殊字元; 特殊字元會作為本身想表示的意思

name : "zhangsan lisi" :輸出 : zhangsan 換行 lisi

'' :單引號;會轉義特殊字元,特殊字元最終只是一個普通的字元串數據

name: 'zhangsan lisi' : 輸出 ; zhangsan lisi

k: v : 在下一行來寫對象的屬性和值的關系 ;注意縮進

對象還是 k: v 的方式

行內寫法:

用- 值表示數組中的一個元素

行內寫法

配置文件

javaBean:

我們可以導入配置文件處理器,以後編寫配置就有提示了

調整 圖示:

配置文件yml還是properties他們都能獲取到值;

如果說,我們只是在某個業務邏輯中需要獲取一下配置文件中的某項值,使用@Value

如果說,我們專門編寫一個javaBean來和配置文件進行映射,我們就直接使用@ConfigurationProperties

@ImportResource:導入Spring的配置文件,讓配置文件裡面的內容生效

SpringBoot裡面沒有Spring的配置文件,我們自己編寫的配置文件,也不能自動識別;

想讓Spring的配置文件生效,載入進來;@ImportResource標注在一個配置類上

不來編寫Spring的配置文件

Spring Boot推薦給容器添加組件的方式;推薦全註解的方式

1、配置類@Configuration------>Spring配置文件

2、使用@Bean給容器中添加組件

我們在主配置文件編寫的時候,文件名可以是application-{profile}.properties/yml

默認使用application.properties的配置

1、在配置文件中指定spring.profiles.active=dev

2、在命令行:

java -jar spring-boot-02-config.jar --spring.profiles.active=dev;

可以直接在測試的時候,配置傳入命令行參數

3.虛擬機參數

-Dspring.profiles.active=dev

springboot 啟動會掃描以下位置的application.properties或者application.yml文件作為Spring Boot的默認配置文件

-file:./config/

-file:./

-classpath:/config/

-classpath:/

優先順序由高到低,高優先順序的配置會覆蓋低優先順序的配置

SpringBoot會從這四個位置載入主配置文件:互補配置

==我們還可以通過spring.config.location來改變默認的配置文件位置==

項目打包好以後,我們可以使用命令行參數的形式,啟動項目的時候來指定配置文件的新位置;指定配置文件和默認載入的這些配置文件共同起作用互補配置;

java -jar spring-boot-02-config.jar --spring.config.location=G:/application.properties

==SpringBoot也可以從以下位置載入配置;優先順序從高到低;高優先順序的配置低優先順序的配置,所有的配置會形成互補配置==

1.命令行參數

2.來自java:comp/env的JNDI屬性

3.java系統屬性

4.操作系統環境變數

5.RandomValuePropertySource配置的random.*屬性值

==有jar包外箱jar包內進行尋找==

==優先載入帶profile==

6.jar包外部的application-{profile}.properties 或 application.yml(帶spring.profile)配置文件

7.jar包內部的application-{profile}.properties 或 application.yml(帶spring.profile)配置文件

==再來載入不帶profile==

8.jar包外部的application.properties或者application.yml(不帶spring.profile)配置文件

9.jar包內部的application.properties或者application.yml(不帶spring.profile)配置文件

精髓:

1》springboot啟動會載入大量的自動配置類

2》我們看我們需要的功能有沒有springboot默認寫好的自動配置類

3》我們再來看這個自動配置類中到底配置了那些組件;(只要我們要用的組件有,我們就不需要再來配置了)

4》給容器中自動配置類添加組件的時候,會從properties類中獲取某些屬性,我們就可以在配置文件中指定這些屬性的值

⑵ spring配置文件在web.xml中怎麼配的

<context-param>標簽的意思當然是初始化啟動了.
classpath:applicationContext.xml的意思就是從classpath:路徑中找到SPRING的配置文件並載入上..classpath:也可以改成/WEB-INF/.就看配置文件放哪了
監聽器會幫你新建BeanFactory介面的實例.然後就可以大膽的用IOC了.SPRING中配置的依賴關系都會生效.

⑶ SpringBoot的默認配置文件是什麼

對SpringBoot來說,雖然application.yml配置文件更加常見,但是其實默認配置文件是application.properties,當然其格式專可屬以是properties也可以是yaml格式;

除此之外,其配置文件也可以是bootstrap.yml。這個配置文件是SpringCloud新增的啟動配置文件,它的特點和用途:

- bootstrap比application優先載入
- 由於bootstrap比application更早載入,所以application不會被它覆蓋
- 使用配置中心Spring Cloud Config時,需要在bootstrap中配置一下配置中心地址,從而實現從配置中心拉取配置項到當前服務中

如果你對默認配置文件是什麼不理解,就去黑馬程序員官網視頻庫看免費視頻。

⑷ spring如何動態載入配置文件,就是配置文件修改了,application.xml如何能讀取到

項目,需要訪問多個資料庫,而且需要在伺服器運行不重新啟動的情況下,動態的修改spring中配置的數據源datasource,在網上找了很多資料,最後找到了適合我的方法,下面總結一下。
spring的配置文件是在容器啟動的時候就載入到內存中的,如果手動改了application.xml,我們必須要重新啟動伺服器配置文件才會生效。而在spring中提供了一個類WebApplicationContext,這個類可以讓你獲得一些bean,可以修改內存中的信息,我就是通過這個類來實現的。下面是我具體的代碼

package com.southdigital.hospital;

import java.io.IOException;

import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.web.context.WebApplicationContext;
import org.springframework.web.context.support.WebApplicationContextUtils;

import com.mchange.v2.c3p0.ComboPooledDataSource;

public class ChangeSpringConfig extends HttpServlet
{

private String ipAddress = "127.0.0.1";

/**
* The doGet method of the servlet. <br>
*
* This method is called when a form has its tag value method equals to get.
*
* @param request the request send by the client to the server
* @param response the response send by the server to the client
* @throws ServletException if an error occurred
* @throws IOException if an error occurred
*/

public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
doPost(request, response);
}

/**
* The doPost method of the servlet. <br>
*
* This method is called when a form has its tag value method equals to post.
*
* @param request the request send by the client to the server
* @param response the response send by the server to the client
* @throws ServletException if an error occurred
* @throws IOException if an error occurred
*/
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
//先取得servleContext對象,提供給spring的WebApplicationUtils來動態修改applicationContext.xml

ipAddress = request.getParameter("ipAddress");
System.out.println(ipAddress);

ServletContext servletContext = this.getServletContext();
WebApplicationContext applicationContext = WebApplicationContextUtils.getWebApplicationContext(servletContext);
ComboPooledDataSource cpds = (ComboPooledDataSource) applicationContext.getBean("dataSource");
cpds.setJdbcUrl("jdbc:mysql://"+ipAddress+":3306/ssh");

}

}
注意:通過這種方法修改applicationContext.xml文件的時候用c3p0,而不可以用dbcp,dbcp不支持動態修改讀取到內存裡面的數據。
spring 3.1已經支持了。

⑸ spring中mysql多數據源切換 怎麼配置(配置文件)

由於項目需要,需要為我的springMCV項目配置mysql+oracle兩種數據源,運行時進行切換。由於技術水平有限,斷斷續續用了一周時間解決了這個小問題(比較懶),特來發篇博客,為以後需要的朋友提供參考。

首先,這個項目的多數據源配置建立在mysql已經搭建完成的基礎上,這部分的源代碼github上都有,網上也有不少教程,我就不作說明了,直接講如何配置oracle。

oracle我用的版本是11g,具體版本是11.2.0.1.0。下載及安裝,建表過程省略(詳情請網路,建表推薦用pl/sql)

我的項目中,資料庫的賬號密碼都是通過properties文件配置的,首先你需要配置好spring項目中的oracle的url,賬號以及密碼。

dataSource2.driver=oracle.jdbc.driver.OracleDriver
dataSource2.url=jdbc\:oracle\:thin\:@localhost\:1521\:orcl
dataSource2.username=sys as sysdba
dataSource2.password=a123456

driver表示驅動名,username表示登錄oracle的用戶名,這里需要注意的是oracle非常注重資料庫管理員的許可權,因此在登錄時需要指明登錄者的身份,pl/sql以及navicat會讓你選擇以什麼角色登錄,而在spring項目中訪問時,直接輸入 用戶名 + as sysdba 的形式作為用戶名,密碼就是先前安裝oracle時設置的密碼。
接下來配置spring的配置文件,來配置2個數據源,我主要是參考了網上的文章,大致原理是為不同數據源配置不同的sqlSessionFactory以及sqlSessionTemplate,為項目編寫工具類,通過設置不同的鍵值切換數據源。

⑹ 如何在eclipse上配置Spring

在建立單純的spring項目時,web.xml文件如下:

<?xmlversion="1.0"encoding="UTF-8"?>
<!doctypeweb-apppublic"-//SunMicrosystems,inc.//dtdWebApplication2.3//en""http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<servlet>
<servlet-name>spring</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<init-param>
吵讓<param-name>contextConfigLocation</param-name>升隱局
<param-value>/WEB-INF/application.xml</param-value>
</init-param>
上面加框的一段是用來指定spring配置文件的(可以為任意名,如上),也可以不寫,不寫時spring的配置文件默認名為:「<servlet-name>」名-servlet.xml。(如此處的<servlet-name>的值為「spring」,則配置文件名為:springt-servlet.xml)
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>spring</servlet-name>
攜胡<url-pattern>*.do</url-pattern>
</servlet-mapping>
</web-app>

⑺ spring連接池配置詳解

資料庫連接池概述

資料庫連接是一種關鍵的有限的昂貴的資源 這一點在多用戶的網頁應用程序中體現得尤為突出 對資料庫連接的管理能顯著影響到整個應用程序的伸縮性和健壯性 影響到程序的性能指標 資料庫連接池正是針對這個問題提出來的

資料庫連接池負責分配 管理和釋放資料庫或碰毀連接 它允許應用程序重復使用一個現有的資料庫連接 而再不是重新建立一個 釋放空閑時間超過最大空閑時間的資料庫連吵返接來避免因為沒有釋放資料庫連接而引起的資料庫連接遺漏 這項技術能明顯提高對資料庫操作的性能

資料庫連接池在初始化時將創建一定數量的資料庫連接放到連接池中 這些資料庫連接的數量是由最小資料庫連接數來設定的 無論這些資料庫連接是否被使用 連接池都將一直保證至少擁有這么多的連接數量 連接池的最大數據庫連接數量限定了這個連接池能佔有的最大連接數 當應用程序向連接池請求的連接數超過最大連接數量時 這些請求將被加入到等待隊列中 資料庫連接池的最小連接數和最大連接數的設置要考慮到下列幾個因素

) 最小連接數是連接池一直保持的資料庫連接 所以如果應用程序對資料庫連接的使用量不大 將會有大量的資料庫連接資源被浪費

) 最大連接數是連接池能申請的最大連接數 如果資料庫連接請求超過此數 後面的資料庫連接請求將被加入到等待隊列中 這會影響之後的資料庫操作

) 如果最小連接數與最大連接數相差太大 那麼最先的連接請求將會獲利 之後超過最小連接數量的連接請求等價於建立一個新的資料庫連接 不過 這些大於最小連接數的資料庫連接在使用完不會馬上被釋放 它將被放到連接池中等待重復使用或是空閑超時後被釋放

目前常用的連接池有 C P DBCP Proxool

網上的評價是

C P 比較耗費資源 效率方面可能要低一點

DBCP在實踐中存在BUG 在某些種情會產生很多空連接不能釋放 Hibernate 已經放棄了對其的支持

Proxool的負面評價較少 現在比較推薦它 而且它還提供即時監控連接池狀態的功能 便於發現連接泄漏的情況

配置如下

在spring配置文件中 一般在applicationContext xml中

<bean id= DataSource class= logicalcobwebs proxool ProxoolDataSource destroy method= shutdown >

<衫備property name= driver >

<value>oracle jdbc driver OracleDriver</value>

</property>

<property name= driverUrl >

<value>jdbc:oracle:thin:xxxx/xxxx@ XX: :server</value>

</property>

<property name= user >

<value>xxxx</value>

</property>

<property name= password >

<value>xxxx</value>

</property>

<property name= alias >

<value>server</value>

</property>

<property name= houseKeepingSleepTime >

<value> </value>

</property>

<property name= houseKeepingTestSql >

<value>select from al</value>

</property>

<property name= testBeforeUse >

<value>true</value>

</property>

<property name= testAfterUse >

<value>true</value>

</property>

<property name= prototypeCount >

<value> </value>

</property>

<property name= maximumConnectionCount >

<value> </value>

</property>

<property name= minimumConnectionCount >

<value> </value>

</property>

<property name= statistics >

<value> m m d</value>

</property>

<property name= statisticsLogLevel >

<value>ERROR</value>

</property>

<property name= trace >

<value>true</value>

</property>

<property name= verbose >

<value>false</value>

</property>

<property name= simultaneousBuildThrottle >

<value> </value>

</property>

<property name= maximumActiveTime >

<value> </value>

</property>

<property name= jmx >

<value>false</value>

</property>

</bean>

然後注入到sessionFactory中

<bean id= sessionFactory class= springframework orm hibernate LocalSessionFactoryBean >

<property name= dataSource ref= DataSource />

</bean>

屬性列表說明:

fatal sql exception: 它是一個逗號分割的信息片段 當一個SQL異常發生時 他的異常信息將與這個信息片段進行比較 如果在片段中存在 那麼這個異常將被認為是個致命錯誤(Fatal SQL Exception ) 這種情況下 資料庫連接將要被放棄 無論發生什麼 這個異常將會被重擲以提供給消費者 用戶最好自己配置一個不同的異常來拋出

fatal sql exception wrapper class:正如上面所說 你最好配置一個不同的異常來重擲 利用這個屬性 用戶可以包裝SQLException 使他變成另外一個異常 這個異常或者繼承QLException或者繼承字RuntimeException proxool自帶了 個實現: logicalcobwebs proxool FatalSQLException 和 logicalcobwebs proxool FatalRuntimeException 後者更合適

house keeping sleep time: house keeper 保留線程處於睡眠狀態的最長時間 house keeper 的職責就是檢查各個連接的狀態 並判斷是否需要銷毀或者創建

house keeping test sql: 如果發現了空閑的資料庫連接 house keeper 將會用這個語句來測試 這個語句最好非常快的被執行 如果沒有定義 測試過程將會被忽略

injectable connection interface: 允許proxool實現被代理的connection對象的方法

injectable statement interface: 允許proxool實現被代理的Statement 對象方法

injectable prepared statement interface: 允許proxool實現被代理的PreparedStatement 對象方法

injectable callable statement interface: 允許proxool實現被代理的CallableStatement 對象方法

jmx: 如果屬性為true 就會注冊一個消息Bean到jms服務 消息Bean對象名: Proxool:type=Pool name=<alias> 默認值為false

jmx agent id: 一個逗號分隔的JMX代理列表(如使用MBeanServerFactory findMBeanServer(String agentId)注冊的連接池 )這個屬性是僅當 jmx 屬性設置為 true 才有效 所有注冊jmx伺服器使用這個屬性是不確定的

jndi name: 數據源的名稱

maximum active time: 如果housekeeper 檢測到某個線程的活動時間大於這個數值 它將會殺掉這個線程 所以確認一下你的伺服器的帶寬 然後定一個合適的值 默認是 分鍾

maximum connection count: 最大的資料庫連接數

maximum connection lifetime: 一個線程的最大壽命

minimum connection count: 最小的資料庫連接數

overload without refusal lifetime: 這可以幫助我們確定連接池的狀態 如果我們已經拒絕了一個連接在這個設定值(毫秒) 然後被認為是超載 默認為 秒

prototype count: 連接池中可用的連接數量 如果當前的連接池中的連接少於這個數值 新的連接將被建立(假設沒有超過最大可用數) 例如 我們有 個活動連接 個可用連接 而我們的prototype count是 那麼資料庫連接池將試圖建立另外 個連接 這和 minimum connection count不同 minimum connection count把活動的連接也計算在內 prototype count 是spare connections 的數量

recently started threshold: 這可以幫助我們確定連接池的狀態 連接數少還是多或超載 只要至少有一個連接已開始在此值(毫秒)內 或者有一些多餘的可用連接 那麼我們假設連接池是開啟的 默認為 秒

simultaneous build throttle: 這是我們可一次建立的最大連接數 那就是新增的連接請求 但還沒有可供使用的連接 由於連接可以使用多線程 在有限的時間之間建立聯系從而帶來可用連接 但是我們需要通過一些方式確認一些線程並不是立即響應連接請求的 默認是

statistics: 連接池使用狀況統計 參數 s m d

statistics log level: 日誌統計跟蹤類型 參數 ERROR 或 INFO

test before use: 如果為true 在每個連接被測試前都會服務這個連接 如果一個連接失敗 那麼將被丟棄 另一個連接將會被處理 如果所有連接都失敗 一個新的連接將會被建立 否則將會拋出一個SQLException異常

test after use: 如果為true 在每個連接被測試後都會服務這個連接 使其回到連接池中 如果連接失敗 那麼將被廢棄

trace: 如果為true 那麼每個被執行的SQL語句將會在執行期被log記錄(DEBUG LEVEL) 你也可以注冊一個ConnectionListener (參看ProxoolFacade)得到這些信息

lishixin/Article/program/Java/ky/201311/28572

⑻ Spring配置文件 找不到http://www.springframework.org/schema/beans/spring-beans-3.0.xsd

spring的配置文件與spring-**.jar不匹配,你先看看spring*.jar的版本

⑼ spring里的配置文件property name 和 ref 有什麼用

property name是屬性名,就是當前類的名字,後一個是引用的類的屬性。

⑽ 如何動態修改spring配置文件

這個很好實現啊,把這個表達式存資料庫,當然每次啟動的時候(伺服器啟動的時候)讀一下配置文件
寫個重啟的方法:cronExpression這個從外面傳進來

// 更新表達式把資料庫的欄位更新了

appTimeTaskConfigDAO.updateCronExpression(cronExpression);

String[] triggerNames = stdScheler.getTriggerNames(stdScheler.DEFAULT_GROUP);
String triggerName = triggerNames[0];
CronTrigger trigger = (CronTrigger) stdScheler.getTrigger(triggerName, stdScheler.DEFAULT_GROUP);
//設置trigger新的表達式

trigger.setCronExpression(cronExpression);
//重新啟動新的trigger

stdScheler.rescheleJob(triggerName, stdScheler.DEFAULT_GROUP, trigger);

閱讀全文

與spring42配置文件相關的資料

熱點內容
韓國電影國語發音 瀏覽:423
第365章天資榜葉凌天 瀏覽:864
大胸乳房電影 瀏覽:200
開網路醫院需要什麼手續 瀏覽:595
2014世界500強word 瀏覽:867
羅蘭曾志偉主演鬼電影全集 瀏覽:961
jsregexpmatch替換 瀏覽:848
飛盧小說vip章節破解方法 瀏覽:497
主角叫陳凡外號屠夫 瀏覽:305
列印文件隱藏軟體 瀏覽:431
js中時分秒正則表達式 瀏覽:569
excel文件查看器 瀏覽:718
電影理發師殺死女友 瀏覽:419
word2003剪貼板 瀏覽:208
手機微信文件已過期或已被清理怎麼辦 瀏覽:997
免費看會員電影網站 瀏覽:639
女生去找在北京送快遞的男朋友的電影 瀏覽:67
子非魚網路技術有限公司 瀏覽:119
適合二人看的愛情片怦然心動 瀏覽:830
Linux安裝軟體還是文件啊 瀏覽:322

友情鏈接