spring mvc 读取xml文件数据库配置参数的方法
本文主要介绍怎么通过属性注入与构造器注入实现把我们项目中要用到的数据库参数放到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文件数据库配置参数的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- React-Router 5.0 制作导航栏+页面参数传递
- Vue3.0快速入门(速查)
- 憧憬博客Nginx到Tengine的迁移
- SpringCloud微服务构建浅析
- 宋宝华:Linux设备与驱动的手动解绑与手动绑定
- ELK7.x日志系统搭建 1. elk基础搭建
- 腾讯云直播开发日记 (二)附近直播-直播礼物-直播回放
- 腾讯云直播开发日记(三) 聊天室-直播转码-连麦混流
- c#类(class)
- es 7.2 生产集群 index 无数据写入故障定位
- HashMap都在用,原理你真的了解吗?
- Android必知必会--事件分发机制
- 又被逼着优化代码,这次我干掉了出入参 Log日志
- C#委托进阶,事件和委托,一次就看明白,附源码
- 树莓派爬虫多平台热搜榜轮播展示