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. 浏览器+控制台验证

在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/520268.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

目标检测算法图解:一文看懂RCNN系列算法

在生活中&#xff0c;经常会遇到这样的一种情况&#xff0c;上班要出门的时候&#xff0c;突然找不到一件东西了&#xff0c;比如钥匙、手机或者手表等。这个时候一般在房间翻一遍各个角落来寻找不见的物品&#xff0c;最后突然一拍大脑&#xff0c;想到在某一个地方&#xff0…

不懂数据库的码农不是好程序员!

毋庸置疑&#xff0c;现在是“一切皆数”的时代&#xff0c;放眼目前炙手可热的大数据、人工智能等创新技术&#xff0c;如果没有数据加以支撑&#xff0c;一切的一切将毫无用武之地&#xff0c;更不必谈信息化、智能化and so on&#xff0c;而数据库作为存储和承载数据的重要场…

基于深度学习模型WideDeep的推荐

本实验选用数据为UCI开源数据集&#xff0c;仅用于学习&#xff0c;请勿商用&#xff09; Wide&Deep推荐算法出自一篇论文《Wide&Deep Learning for RecommenderSystems》&#xff0c;Wide&Deep由两部分组成&#xff0c;分别是Wide和Deep。先来说wide&#xff0c;…

RabbitMQ非root用户安装(Linux环境)

文章目录一、用户操作1. 创建fismq用户并设置密码2. 给fismq用户设置目录权限二、Erlang 操作2.1. Erlang下载2.2. Erlang 上传并解压2.3. 验证rabbitmq依赖是否安装2.4. 安装rabbitmq依赖2.5. Erlang 编译、安装2.6. Erlang 配置环境变量2.7. Erlang 验证三、RabbitMQ3.1. Rab…

深度学习目标检测系列:faster RCNN实现|附python源码

目标检测一直是计算机视觉中比较热门的研究领域&#xff0c;有一些常用且成熟的算法得到业内公认水平&#xff0c;比如RCNN系列算法、SSD以及YOLO等。如果你是从事这一行业的话&#xff0c;你会使用哪种算法进行目标检测任务呢&#xff1f;在我寻求在最短的时间内构建最精确的模…

mysql冷热数据LRU_浅析MySQL的lru链表

一、简述传统的lru链表lru&#xff1a;least recently used相信大家对lru链表是不陌生的&#xff0c;它算是一种基础的数据结构吧&#xff0c;而且想必面试时也被问到过什么是lru链表&#xff0c;甚至是让你手写一个lru链表。想必你已经知道了mysql的buffer pool机制以及mysql组…

报应!GitHub上线围剿Python计划,已有4万人跟进,你呢?

人红是非多&#xff0c;最近Python就遇到了这样的问题。与国际技术社区上一片「形势大好」对比鲜明的是&#xff0c;国内技术圈却一直存在对Python&#xff0c;「力挺」和「吃瓜」两派阵营&#xff0c;针锋相对&#xff0c;最近就悄然上线一个争议性疑问&#xff1a;围剿Python…

生物智能与AI——关乎创造、关乎理解(上)

几百万年前&#xff0c;第一次人类智能的星火出现在非洲大陆&#xff0c;并且持续发展&#xff0c;最终在大约10万年前在智人的大脑中达到顶峰。作为现代人类&#xff0c;我们只能想象我们的古代祖先在窥视夜空时所经历的事情&#xff0c;以思考物理现实的本质&#xff0c;以及…

Spring Cloud Config 规范

Spring Cloud Config 规范 首先Spring Cloud 是基于 Spring 来扩展的&#xff0c;Spring 本身就提供当创建一个Bean时可从Environment 中将一些属性值通过Value的形式注入到业务代码中的能力。那Spring Cloud Config 要解决的问题就是&#xff1a; 如何将配置加载到 Environm…

RabbitMQ开机启动 Centos7环境

文章目录8.1. 创建启动脚本8.2. 赋予启动脚本可执行权限8.3. 加入开机启动并指定用户8.4. 赋予可执行权限8.5. 重启MQ服务器测试8.6. 查看MQ服务运行状态8.7. 浏览器验证MQ管控台8.1. 创建启动脚本 操作说明&#xff1a;使用fismq用户操作&#xff0c;使用root用户权限的地方我…

微信几亿人在线的点赞、取消点赞系统,用Redis如何实现?

戳蓝字“CSDN云计算”关注我们哦&#xff01;作者 | solocoder责编 | 阿秃点赞功能大家都不会陌生&#xff0c;像微信这样的社交产品中都有&#xff0c;但别看功能小&#xff0c;想要做好需要考虑的东西还挺多的&#xff0c;如海量数据的分布式存储、分布式缓存、多IDC的数据一…

年度大盘点:机器学习开源项目及框架

我们先来看看Mybridge AI 中排名靠前的顶级开源项目&#xff0c;再聊聊机器学习今年都有哪些发展&#xff0c;最后探寻下新的一年中会有哪些有值得我们期待的事情。 顶级的开源项目 BERT BERT&#xff0c;全称为Bidirectional Encoder Representations from Transformers&am…

centos7以普通用户开机启动某个服务或者指定脚本

文章目录1. 执行命令格式规范2. 添加到/etc/rc.d/rc.local3. 赋予可执行权限扩展知识&#xff1a;开头添加这句 source /etc/profile 原因为 下面几点1. 执行命令格式规范 #开机切换到fismq用户执行/app/start.sh su fismq -c "/app/rabbitmq_server-3.8.3/sbin/start_ra…

Andrew Ng教你如何引领公司进入AI时代

AI&#xff08;人工智能&#xff09;技术就像100年前的电力一样&#xff0c;正准备改变每个行业。从现在到2030年&#xff0c;它将创造约13万亿美元的GDP增长。虽然它已经在谷歌&#xff0c;阿里巴巴&#xff0c;微软等领先的科技公司中创造了巨大的价值&#xff0c;但其他许多…

IBM Cloud Paks:云端追光者也!

作者&#xff1a;阿秃 现如今&#xff0c;“企业上云”已毫无争议。 据知名云管理服务商RightScale 发布的2019年全球云计算市场调查显示&#xff0c;在众多云平台中混合云的采用率比重最高&#xff0c;达到了惊人的58%。可以想见&#xff0c;市场对混合云的庞大需求正吸引越…

生物智能与AI——关乎创造、关乎理解(下)

无监督学习&#xff0c;迁移学习和工程设计 AI系统与人类学习之间的另一个主要差异在于AI系统所需的大量标记数据才可以达到人类级别的性能。例如&#xff0c;最近的语音识别系统在11940小时的语音训练后才能对齐转录。如果我们每天大声地听到另一个人类阅读文本两个小时&…

如何利用tcpdump抓包?

文章目录一、基本使用1. 安装tcpdump2. 使用方法二、案例实战2.1. 企业案例背景2.2. 抓包实战三、网卡接口获取3.1. centos7.x使用3.2. centos6.x使用一、基本使用 1. 安装tcpdump yum install tcpdump -y2. 使用方法 tcpdump -i 网卡接口 协议 -n 注&#xff1a;协议可以接…

Gartner 发布2019年超融合魔力象限:新增深信服一员!

近日&#xff0c;国际权威研究分析机构Gartner公布了2019全球《超融合基础设施魔力象限》报告。 报告显示国内仅有三家云计算厂商进入2019超融合基础设施魔力象限&#xff0c;分别是深信服、华为、华云数据。其中深信服超融合&#xff08;sangfor aCloud&#xff09;凭借技术优…

深度学习目标检测系列:一文弄懂YOLO算法|附Python源码

在之前的文章中&#xff0c;介绍了计算机视觉领域中目标检测的相关方法——RCNN系列算法原理&#xff0c;以及Faster RCNN的实现。这些算法面临的一个问题&#xff0c;不是端到端的模型&#xff0c;几个构件拼凑在一起组成整个检测系统&#xff0c;操作起来比较复杂&#xff0c…

Keepalived时主备负载均衡器都有VIP的问题:VRRP协议问题

文章目录一、企业案例背景二、异常现象三、分析结论解决思路3.1. 分析结论3.2. 解决思路四、SElinux 处理4.1. 查看SElinux的状态&#xff1a;4.2. 关闭SElinux五、Firewalld防火墙配置5.1. 开启vrrp 协议5.2. 重新启动防火墙5.3. 查看启动日志5.4. 虚拟ip验证5.5. 停止master节…