您好,登录后才能下订单哦!
这篇文章主要为大家展示了“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进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。