spring mvc如何读取xml文件数据库配置参数
这篇文章主要为大家展示了“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>
在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文件在class="lazy" data-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、在class="lazy" data-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文件放在class="lazy" data-src下面的时候,可以直接写文件名就可以找到了,但是如果你把它放在其他的目录下面了,要把路径写好,例如:/test/xxx.xml。
以上是“spring mvc如何读取xml文件数据库配置参数”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网行业资讯频道!
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341