您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“spring mvc如何讀取xml文件數據庫配置參數”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“spring mvc如何讀取xml文件數據庫配置參數”這篇文章吧。
spring mvc 4.2.6項目
SQL Server 2008數據庫
本文介紹的主要使用ApplicationContext以及其實現類實現。主要用到的是ClassPathXmlApplicationContext。
ClassPathXmlApplicationContext:從類路徑ClassPath中尋找指定的XML配置文件,找到并裝載
完成ApplicationContext的實例化工作。例如:
//裝載單個配置文件實例化ApplicationContext容器 ApplicationContext cxt = new ClassPathXmlApplicationContext ("applicationContext.xml"); //裝載多個配置文件實例化ApplicationContext容器 String[] configs = {"bean1.xml","bean2.xml","bean3.xml"}; ApplicationContext cxt = new ClassPathXmlApplicationContext(configs);
下面是具體步驟:
一、屬性注入
屬性注入即通過 setAttribute 方法注入Bean 的屬性值或依賴的對象。屬性注入使用 元素, 使用 name 屬性指定 Bean 的屬性名稱,value 屬性或 子節點指定屬性值。
1、創建一個bean類DBParaProperty
package com; public class DBParaProperty { //jdbc sqlserver 驅動類 String sqlServerDriverClassName; //sqlserver 連接地址 String sqlServerUrl; //sqlserver 用戶名 String sqlServerUserName; //sqlserver 密碼 String sqlServerPassword; public String getSqlServerDriverClassName(){ return this.sqlServerDriverClassName; } public void setSqlServerDriverClassName(String sqlServerDriverClassName){ this.sqlServerDriverClassName = sqlServerDriverClassName; } public String getSqlServerUrl(){ return this.sqlServerUrl; } public void setSqlServerUrl(String sqlServerUrl){ this.sqlServerUrl = sqlServerUrl; } public String getSqlServerUserName(){ return this.sqlServerUserName; } public void setSqlServerUserName(String sqlServerUserName){ this.sqlServerUserName = sqlServerUserName; } public String getSqlServerPassword(){ return this.sqlServerPassword; } public void setSqlServerPassword(String sqlServerPassword){ this.sqlServerPassword = sqlServerPassword; } }
2、創建一個xml文件
文件內容如下
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <bean id="DBParaProperty" class="com.DBParaProperty"> <property name="sqlServerDriverClassName" value="com.microsoft.sqlserver.jdbc.SQLServerDriver"></property> <property name="sqlServerUrl" value="jdbc:sqlserver://127.0.0.1:1433;databaseName=test;"></property> <property name="sqlServerUserName" value="saDBParaProperty"></property> <property name="sqlServerPassword" value="admin123"></property> </bean> </beans>
3、在Controller中使用
package test; import com.DBParaConstructor; import com.DBParaProperty; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; @Controller @RequestMapping("/test2") public class test2 { @RequestMapping("/test") @ResponseBody public Object test2() { //如果xml文件在src下面的話,直接寫文件名就行 ApplicationContext cpxac = new ClassPathXmlApplicationContext("DBParaProperty.xml"); //根據bean節點的標識獲取對象,id DBParaProperty dbParaProperty = (DBParaProperty) cpxac.getBean("DBParaProperty"); System.out.println(dbParaProperty.getSqlServerUserName()); return dbParaProperty.getSqlServerUserName(); } }
二、構造器注入
通過構造方法注入Bean 的屬性值或依賴的對象,它保證了 Bean 實例在實例化后就可以使用。構造器注入在 元素里聲明屬性。
步驟如下:
1、創建DBParaConstructor類
package com; public class DBParaConstructor { //jdbc sqlserver 驅動類 public String sqlServerDriverClassName; //sqlserver 連接地址 public String sqlServerUrl; //sqlserver 用戶名 public String sqlServerUserName; //sqlserver 密碼 public String sqlServerPassword; public DBParaConstructor(){} public DBParaConstructor(String sqlServerDriverClassName,String sqlServerUrl,String sqlServerUserName,String sqlServerPassword){ this.sqlServerDriverClassName = sqlServerDriverClassName; this.sqlServerUrl = sqlServerUrl; this.sqlServerUserName = sqlServerUserName; this.sqlServerPassword = sqlServerPassword; } }
2、在src下面的文件夾test下創建一個xml文件。
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <bean id="DBParaConstructor" class="com.DBParaConstructor"> <constructor-arg name="sqlServerDriverClassName" value="com.microsoft.sqlserver.jdbc.SQLServerDriver"></constructor-arg> <constructor-arg name="sqlServerUrl" value="jdbc:sqlserver://127.0.0.1:1433;databaseName=test;"></constructor-arg> <constructor-arg name="sqlServerUserName" value="saDBParaConstructor"></constructor-arg> <constructor-arg name="sqlServerPassword" value="admin456"></constructor-arg> </bean> </beans>
3、在Controller中使用
package test; import com.DBParaConstructor; import com.DBParaProperty; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; @Controller @RequestMapping("/test2") public class test2 { @RequestMapping("/test") @ResponseBody public Object test2() { ApplicationContext cpxac = new ClassPathXmlApplicationContext("DBParaProperty.xml"); DBParaProperty dbParaProperty = (DBParaProperty) cpxac.getBean("DBParaProperty"); System.out.println(dbParaProperty.getSqlServerUserName()); ApplicationContext acc = new ClassPathXmlApplicationContext("/test/DBParaConstructor.xml"); DBParaConstructor dbParaConstructor = (DBParaConstructor)acc.getBean("DBParaConstructor"); System.out.println(dbParaConstructor.sqlServerUserName); return dbParaProperty.getSqlServerUserName()+"*****"+dbParaConstructor.sqlServerUserName; } }
項目目錄如下:
關于那個路徑的,Java會把java文件編譯成.class文件放到classes目錄下,這個也是項目Java代碼運行的根目錄。所以當你把xml文件放在src下面的時候,可以直接寫文件名就可以找到了,但是如果你把它放在其他的目錄下面了,要把路徑寫好,例如:/test/xxx.xml。
以上是“spring mvc如何讀取xml文件數據庫配置參數”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。