首页 > 编程知识 正文

springboot接收json,springboot api

时间:2023-05-03 16:11:12 阅读:19964 作者:4804

要求:启动springboot项目后,可以自动查询业务词典表,将查询结果保存到缓存中,并由其他代码模块调用。 如果在数据库中更新了词典表,则必须重新启动项目才能完成更新。)

实现方法:

将类配置为将命令行运行程序接口实现为项目启动条目类

2 .业务词典缓存处理系统从前面的步骤中调用,并将数据存储在缓存中

3 .其他相关工具类

package org.je ECG.modules.config; importorg.spring framework.boot.command line runner; importorg.spring帧. core.annotation.order; importorg.spring framework.stereotype.com ponent; import lombok.extern.slf4j.slf4j;/* * * @描述词典缓存初始化* pre *缓存业务词典表中的数据*/pre * * * @ authors GC * @ date 2021-07-13 */@SLF4j@component@order (() @ order () ) ) ) ) ) slf4j publicclassresdictrunnerimplementscommandlinerunnner { @ overridepopt log.info ('初始化完成. '; } package org.je ECG.modules.config; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import Java.util.stream.collectors; importorg.je ECG.module.POJO.service.RES dict; importorg.je ECG.modules.resources.mapper.resdictmapper; importorg.spring framework.util.collection utils; import lombok.extern.slf4j.slf4j; /** * @Description业务词典缓存工具类* pre *在项目启动时处理词典表,然后将其添加到缓存中,提供给业务代码逻辑调用*注意:数据库修改后*/pre * * * @ authhod @ sl F4要更新jpublicclassresdictcache {专用静态映射,}必须重新启动项目/**初始化词典表* * @ authors GC * @ date 2021-07-13 */publicstaticvoidload (({ cache.clear ) }; resdict mapper=spring utils.get bean (resdict mapper.class; listresdictall=resdictmapper.select list (null; cache=all.stream((.collect ) collectors.groupingby ) RESdict33603360getdicttype ); //if(log.isinfoenabled () ) {//log.info ('初始化完成.'); //log.info (获取示例: {} )、getdictsbytype(sign_type ) ); }/***list数据格式* * @ authors GC * @ date 2021-07-13 */publicstaticlistresdictgetdictsbytype { stringfindtype } { listraty } return cache.get (查找类型; } }打包

e org.jeecg.modules.config;import org.springframework.beans.BeansException;import org.springframework.beans.factory.NoSuchBeanDefinitionException;import org.springframework.beans.factory.config.BeanFactoryPostProcessor;import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;import org.springframework.stereotype.Component;/** * @Description 字典表初始化工具类 * * @author sgc * @date 2021-07-13 */@SuppressWarnings("unchecked")@Componentpublic class SpringUtils implements BeanFactoryPostProcessor { private static ConfigurableListableBeanFactory beanFactory; // Spring应用上下文环境 @Override public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException { SpringUtils.beanFactory = beanFactory; } /** * 获取对象 * * @param name * @return Object 一个以所给名字注册的bean的实例 * @throws BeansException * */ @SuppressWarnings("unchecked") public static <T> T getBean(String name) throws BeansException { //首字母默认小写 name=lowerCaseInit(name); if (containsBean(name)) { return (T) beanFactory.getBean(name); }else{ return null; } } /** * 获取类型为requiredType的对象 * * @param clz * @return * @throws BeansException * */ public static <T> T getBean(Class<T> clz) throws BeansException { @SuppressWarnings("unchecked") T result = (T) beanFactory.getBean(clz); return result; } /** * 如果BeanFactory包含一个与所给名称匹配的bean定义,则返回true * * @param name * @return boolean */ public static boolean containsBean(String name) { return beanFactory.containsBean(name); } /** * 判断以给定名字注册的bean定义是一个singleton还是一个prototype。 * 如果与给定名字相应的bean定义没有被找到,将会抛出一个异常(NoSuchBeanDefinitionException) * * @param name * @return boolean * @throws NoSuchBeanDefinitionException * */ public static boolean isSingleton(String name) throws NoSuchBeanDefinitionException { return beanFactory.isSingleton(name); } /** * @param name * @return Class 注册对象的类型 * @throws NoSuchBeanDefinitionException * */ public static Class<?> getType(String name) throws NoSuchBeanDefinitionException { return beanFactory.getType(name); } /** * 如果给定的bean名字在bean定义中有别名,则返回这些别名 * * @param name * @return * @throws NoSuchBeanDefinitionException * */ public static String[] getAliases(String name) throws NoSuchBeanDefinitionException { return beanFactory.getAliases(name); } /** * 首字母小写 * * @param str 小写的首字母 * @return */ private static String lowerCaseInit(String str) { if (str.length()>0) { char c = str.charAt(0); if (c >= 65 && c <= 90) { int i = c + 32; return ((char)i)+str.substring(1); }else{ return str; } }else{ return null; } }}

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。