Spring项目启动加载xml配置文件替换数据库提高响应速度
文章目录
- 1. pom依赖
- 2. xml配置文件
- 3. 获取参数工具类
- 4. 根据beanId从SpringBootIOC获取类实例工具类
- 5. 测试类
- 6. 浏览器+控制台验证
1. pom依赖
<properties><!--全局版本控制--><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><spring.version>4.3.10.RELEASE</spring.version><lombok.version>1.18.8</lombok.version></properties><!-- Spring MVC support Start--><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-web</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-test</artifactId><version>${spring.version}</version><scope>provided</scope></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-tx</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-context-support</artifactId><version>4.2.6.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc</artifactId><version>${spring.version}</version></dependency><!-- Spring MVC support End-->
2. xml配置文件
applicationContext-wscontainer.xml
web.xml中记得写上,通配符*.xml可跳过
这里面constructor-arg标签就是参数,根据需要定义需要的参数即可
<?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/beanshttp://www.springframework.org/schema/beans/spring-beans.xsd"><!--纽约交易所接口 保单查询 --><bean id="beanId" class="com.gblfy.order.utils.WSContainer" scope="singleton"><constructor-arg value="http://192.168.0.27:8080/services/webservice?wsdl"/><constructor-arg value="NamespaceURI"/><constructor-arg value="Method"/><constructor-arg value="QUEUE_NAME"/><constructor-arg value="QUEUE_TYPE"/><constructor-arg value="QUEUE_DESC"/></bean>
</beans>
3. 获取参数工具类
package com.gblfy.order.utils;import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;@Data
@AllArgsConstructor
@NoArgsConstructor
public class WSContainer {private String url;//请求地址private String namespaceURI;//方法的命名空间private String method;//调用的方法private String queueName; //队列名称private String queueType;//队列类型private String queueDesc;//队列描述
}
4. 根据beanId从SpringBootIOC获取类实例工具类
SpringContextUtils
package com.gblfy.order.utils;import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.stereotype.Component;/*** @author gblfy 2020-04-29* @apiNote spring上下文工具类,用于普通类调用springIOC中的对象*/
@Component
public class SpringContextUtils implements ApplicationContextAware {private static ApplicationContext applicationContext = null;@Overridepublic void setApplicationContext(ApplicationContext applicationContext) throws BeansException {if (SpringContextUtils.applicationContext == null) {SpringContextUtils.applicationContext = applicationContext;}}/*** @apiNote 获取applicationContext*/public static ApplicationContext getApplicationContext() {return applicationContext;}/*** @apiNote 通过name获取 Bean.*/public static Object getBean(String beanId) {return getApplicationContext().getBean(beanId);}/*** @apiNote 通过class获取Bean.*/public static <T> T getBean(Class<T> clazz) {return getApplicationContext().getBean(clazz);}/*** @apiNote 通过name, 以及Clazz返回指定的Bean*/public static <T> T getBean(String name, Class<T> clazz) {return getApplicationContext().getBean(name, clazz);}
}
5. 测试类
package com.gblfy.order.controller;import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.gblfy.order.confirm.ConfirmCallBackListener;
import com.gblfy.order.utils.SpringContextUtils;
import com.gblfy.order.utils.WSContainer;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;/*** 项目启动,将接口配置文件加载到spring的IOC容器中,* 通过接口的BeanId从配置文件中获取指定接口的信息配置参数*/
@Controller
public class WSContainerController {//日志输出private final static Logger log = LoggerFactory.getLogger(ConfirmCallBackListener.class);//引入json工具类private static final ObjectMapper MAPPER = new ObjectMapper();@RequestMapping("/getWSParams")@ResponseBodypublic String getWSParams() throws JsonProcessingException {//这个beanId 建议是接口名 能够标识区分是哪一支接口String serviceBeanId = "beanId";/*** 1.在xml文件中声明接口的beanId* 2.把需要的参数配置到xml文件中* 3.通过接口的beanId获取指定接口的配置信息*/WSContainer wsContainer = (WSContainer) SpringContextUtils.getBean(serviceBeanId);log.info("接收请求的Url : {}", wsContainer.getUrl());log.info("接收请求的命名空间: {}", wsContainer.getNamespaceURI());log.info("接收请求的方法名称: {}", wsContainer.getMethod());log.info("接收请求的队列名称: {}", wsContainer.getQueueName());log.info("接收请求的队列类型: {}", wsContainer.getQueueType());log.info("接收请求的队列描述: {}", wsContainer.getQueueDesc());
// Gson gson= new Gson();//把对象转换成 jsonStr 类型便与解析return MAPPER.writeValueAsString(wsContainer);}
}
6. 浏览器+控制台验证
Spring项目启动加载xml配置文件替换数据库提高响应速度相关推荐
- Spring中加载xml配置文件的六种方式
Spring中加载xml配置文件的六种方式 博客分类: Spring&EJB XMLSpringWebBeanBlog 因为目前正在从事一个项目,项目中一个需求就是所有的功能都是插件的形式装 ...
- tomcat启动的时候,没加载xml配置文件
tomcat启动项目的时候,发现没加载xml配置文件,解决办法是:选中conf文件夹右键选择"Build Path"-->"use as Source Folder ...
- spring加载xml配置文件
spring 中加载xml配置文件的方式 spring 中加载xml配置文件的方式,好像有3种, xml是最常见的spring 应用系统配置源. Spring中的几种容器都支持使用xml装配bean, ...
- mybatis加载xml配置文件
<build><finalName>bizcloud-tcb2b</finalName><!-- mybatis加载xml配置文件的配置 -->< ...
- spring项目中加载配置文件
spring配置properties或其他文件的方式: 1.通过spring的自带配置 <!-- properties配置文件加载 --><bean class="org. ...
- Spring Boot 启动加载数据 CommandLineRunner
实际应用中,我们会有在项目服务启动的时候就去加载一些数据或做一些事情这样的需求. 为了解决这样的问题,Spring Boot 为我们提供了一个方法,通过实现接口 CommandLineRunner ...
- springboot根据环境装配配置文件、启动加载外置配置文件
目录 一.profile功能 1.简介 2.application-profile功能 3.profile条件装配 4.profile分组 二.外部化配置 1.官方文档 2.获取系统的环境变量.属性( ...
- 23. Spring Boot启动加载数据CommandLineRunner【从零开始学Spring Boot】
2019独角兽企业重金招聘Python工程师标准>>> 102. Spring Boot之CommandLineRunner和ApplicationRunner[从零开始学Sprin ...
- Web项目启动加载数据至内存--SpringApplicationListener实现
需求: 1.项目开发中会有一些平凡使用的数据需要加载到内存中;以减少数据库交互次数.降低服务器和数据库压力. 思路: 1.在系统启动时,将监听web容器创建完成事件; 2.创建一个用于存储相关数据的D ...
最新文章
- React Native知识
- linux进程被中断打断,linux – 当中断处理程序被另一个中断中断时,中断上下文如何“恢复”?...
- 他人评审18篇SCI文章的一点感受
- 响应面法求可靠度指标代码_基于可靠度理论的既有桥梁结构承载能力评估——结构可靠度理论若干基本概念...
- 2014全国计算机等级考试四级数据库工程师考试大纲,4月全国计算机等级考试四级数据库工程师笔试试卷(1)...
- windows 7 help 帮助文件无法打开的解决
- vue 同步加载_如何在vue里实现同步阻塞请求,请求完成之前不加载页面或组件?...
- Python中显示图片
- Mac pro微信开发者工具无法显示登录的二维码解决方案
- [二] X 名称空间
- GNS3 安装图解 简单易学 多操作几遍就能记住
- 生成酷炫代码注释(根据图片生成)
- 计算机网络基础-1-绪论
- 普吉岛最后的黄昏,中文字幕
- Python实现汉诺塔代码
- 如何用Python爬取LOL官网全英雄皮肤
- unity 使用扫描仪和红外线框制作项目--热带草原
- Flash Builder快捷键
- OPPO开放平台上架APP
- 学python多大年龄可以学车_考驾照的有年龄限制吗?