![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
后端
文章平均质量分 71
Mr_xujiee
人在蒙古,刚下航母
展开
-
后端——》使用ThreadPoolExecutor线程池处理并发请求
使用场景本地有一个List,需要把list中的每一条数据传第三方公司的A、B、C、D、E、F共六个接口。那么如果一个数据传给A、再传给B、…最后传给E,那么会耗费很长时间。如果开6个线程,每个线程只访问A-E中的一个接口,那么时间就会缩短6倍。实现方式以及使用定义一个线程池import java.util.concurrent.*;public class CommonThreadPool { private static ExecutorService exec = new T原创 2021-07-14 17:18:04 · 946 阅读 · 0 评论 -
后端——》在centos7上搭建jenkins自动化部署平台并应用
前言:jenkins是一套成熟的自动化部署平台,可以用它在服务器上实现自动化部署,部署的项目可以是咱们常见的springboot、springcloud后台,也可部署vue前端。代码提交git后,只需要在jenkins上点击一个部署按钮,就可以实现部署,非常方便。本文主要讲述了,如何在Linux服务上搭建jenkins平台并部署一个springboot项目jenkins的安装下载jenkins wget -O /etc/yum.repos.d/jenkins.repo https://pkg.原创 2021-07-07 10:48:27 · 2615 阅读 · 4 评论 -
后端——》Java程序推送微信订阅消息
使用场景1:在微信小程序中进行了某种操作后,推送消息告知用户的操作结果使用场景2:微信端办公流程提交给下一个人审批后,得到审批通过或是驳回修改的命令使用场景具体如下图,可用在签到、提醒、通知、警告、催办等方面:上面的实例图片就是通过后台 给微信推送的订阅消息。那具体的应该怎么实现呢,且看下文分解。实现步骤1 微信公众平台的配置1.1 选用公共模板库中的模板登录微信公众平台后台,点击功能》订阅消息(若之前没有使用过,则点击开通)点击公共模板库 的title,可以看到 有很多模板,.原创 2021-05-07 15:13:21 · 3314 阅读 · 4 评论 -
后端——》使用RestTemplate发送自定义header的get请求
在使用RestTemplate访问接口的时候使用普通的getForObject无法修改默认的请求头,这个时候就需要用另一种方式:restTemplate.exchange()例子如下: MediaType type = MediaType.TEXT_PLAIN; HttpHeaders headers = new HttpHeaders(); headers.setContentType(type); //在这里add原创 2021-04-13 16:58:23 · 755 阅读 · 0 评论 -
后端——》 使用redis分布式锁解决集群环境下定时任务重复执行的问题
集群环境下,非幂等操作的定时任务通常只能执行一次。但程序在分布在各个服务器上运行,这个时候就可以使用redis分布式锁来保证定时任务只能被执行一次。以下为demo:我在本地启动了两个程序,每个程序包含一个内容完全相同的定时任务 ,用来模拟在分布式环境。可以看见,以一分钟执行一轮的频率,可以看到 每轮定时任务只有一个程序 在执行。那具体的逻辑就是在定时任务中加入 判断是否执行业务逻辑的操作。这个判断的标准就是 通过redis+key来实现:在业务逻辑被执行之前通过setIfAbsent方.原创 2021-01-22 18:25:54 · 882 阅读 · 0 评论 -
后端——》elasticsearch搜索引擎的分词搜索和高亮显示的应用
ElasticSearch搜索引擎在web页面的应用实例简介使用1,修改logstash的配置2,修改springboot的配置文件3,代码文件总结简介在我的上一篇博文中,详细写到了ElasticSearch的日志服务的应用场景,本文讨论的是另一个场景:ElasticSearch作为搜索引擎在web项目中的使用。ElasticSearch作为搜索引擎最主要的作用是分词,即将一个段文字或一个词组分割成小粒度,并将这些经过分割再组合的小粒度的文字来匹配搜索结果,如有需要,还可以高亮显示。效果如下:我这原创 2020-12-02 18:21:30 · 1322 阅读 · 0 评论 -
后端——》springboot整合elk日志框架的超详细解析(elasticsearch+logstash+kibana)
win10下elk的安装、集成、使用简介安装elasticsearch的安装kibana的安装logstash的安装集成1,添加pom依赖:2,添加logback.xml配置文件:使用1,日志定位2,日志分析1:查看索引管理2:创建索引模式3:创建视图总结简介elk日志框架是elasticsearch、logstash、kibana的这三个技术的简称。elasticsearch是一个搜索引擎,logstash是日志管理平台,kibana是elasticsearch的gui。elk日志框架就是将日志按照我原创 2020-11-26 20:35:18 · 3464 阅读 · 4 评论 -
后端——》coding+webhook实现springcloud配置中心的自动刷新
前言: 问题:1:问:什么是coding?1:答:跟github、码云一样,是一个代码托管平台。2:问:什么是webhook?2:答:webhook是一种通过callback回调,去请求某个接口或是改变page行为的方法。当用户在网站执行某个操作的时候,源网站可以发起一个HTTP请求到webhook配置的URL。配置之后,用户可以通过在一个站点触发事件,之后再调用另一个站点的行为。可以是任何操作。3:问:什么是springcloud配置中心(Spring Cloud Co...原创 2020-09-11 16:17:25 · 576 阅读 · 2 评论 -
后端——》在windows和linux上部署springboot项目到docker上
本文目录在win10下安装docker(非重点): docker的常用命令 在docker上部署项目并且处理遇到的坑1:在win10下安装dockerdocker允许在win10专业版上安装,但是很多电脑都是出厂预装的win10家庭版,这个需要破解安装,网上教程很多,如果安装出问题,此处推荐一篇博客(侵删)https://blog.csdn.net/li_chunlong/article/details/105531124。2:docker的最最最最常用命令1、docker ...原创 2020-08-12 16:47:49 · 554 阅读 · 0 评论 -
后端——》JWT结合swagger进行接口安全认证
JWT(json web token)。1,jwt(全称json web token)。主要是用来生成token的,token是一串加密过的字符串。 流程是这样的用户使用用户名密码请求服务器 服务器进行验证用户信息,并生成一个token存在数据库中 服务器通过验证并把token发送给用户 客户端存储token,一般存在local Storage。并在每次请求时附加这个t...原创 2019-10-18 15:27:52 · 1332 阅读 · 0 评论 -
后端——》记录一个根据模板导出txt文件的demo
本文没什么比较特别的技术点。硬要说有的话,可能是以下三点,最主要的是抽象1,抽象2,反射3,IO操作1,新建一个文件生成对象,主要用来取临时文件路径public class GenteraterRetunData { private String localFilePath; public GenteraterRetunData(String localFi...原创 2019-12-20 12:02:13 · 418 阅读 · 0 评论 -
后端——》shiro系统权限认证完整demo及讲解
shiro是一款很强大的安全管理、权限认证框架。可以做登录权限管理,接口权限管理。如下,可以通过页面权限按钮控制用户是否拥有查询、新增、编辑的权限,完成后功能如下:在管理登录后给普通用户设置权限,可以是菜单权限,也可以是菜单列表查询权限和列表按钮权限。其中菜单的权限可以只通过代码逻辑控制,而列表查询和按钮接口的权限就可以交给shiro来管理。直接上实现步骤吧。大的步骤一:前期需要...原创 2019-12-05 18:35:39 · 1326 阅读 · 2 评论 -
后端——》文件后缀名判断
/*path是文件路径或者文件全名,此处以zip文件为例*/int p = path.lastIndexOf('.');String suffix = path.substring(p+1);String resultStr="";if(!"zip".equals(suffix)){ resultStr="请选择.zip压缩包"; return resultSt...原创 2018-04-20 14:09:53 · 479 阅读 · 0 评论 -
后端——》字符串和int转换(StringUtil.safeToString和safeToInteger)
public static boolean isBlank(String str) { int strLen; if (str == null || (strLen = str.length()) == 0) { return true; } for (int i = 0; i < strLen; i++) { if ((Ch...原创 2019-08-12 12:11:46 · 718 阅读 · 0 评论 -
后端——》关于getResult方法通过for循环筛选查询条件的问题
List list = metaDBQuery.getResult();if (list.size() > 0) { /*要将tablebacth中的条件放到此处才能正确的显示记录数,在此处的筛选条件的for循环与tablebacth不同,正确写法如下*/ for(int i = list.size() - 1; i >= 0; i--){ Map ...原创 2018-07-10 09:12:02 · 1974 阅读 · 0 评论 -
后端——》Java-stream的一些应用
1,将一个list中map的值根据key取出来组成另一个listeg:假如map中有id这个keyList<Map> requirementsList=new ArrayList<>();List<Long> newList=requirementsList.stream().map(paramap -> StringUtil.safeToInteg...原创 2019-08-02 15:12:23 · 187 阅读 · 0 评论 -
后端——》拼音首字母降序
/*根据收首字母拼音降序*/List list= metaDBQuery.getResult();ListComparator lc = new ListComparator("typename", "asc");lc.setPinyinEnabled(true);Collections.sort(list, lc);return list;...原创 2019-08-12 12:12:49 · 123 阅读 · 0 评论 -
后端——》算法训练01---数组非零数顺序不变,将0移动到末尾
public class test { public static void main(String[] args) { /*定义一个数组*/ int[] array = new int[]{0, 0, 5, 7, 2, 1, 0}; for (int i = 0; i < array.length; i++) { ...原创 2019-04-12 18:05:49 · 536 阅读 · 2 评论 -
后端——》sourceTree3.0.17及以上版本免安装教程(这是新版,之前版本的免注册已经失效)
第一步,链接: https://pan.baidu.com/s/1Q7bENDjqTYEXp0t3AjgwSg 提取码: 46kk 。下载新版 企业版 sourcetree。第二步,一路傻瓜式安装,不用更改其中弹出的页面按钮的默认选择项,finish。第三步,安装完成后你可能找不到 软件打开的快捷方式。此时 win+R,输入 %programfiles(x86)%\Atlassian\Sou...原创 2019-03-19 09:51:44 · 4818 阅读 · 5 评论 -
后端——》Java-RestTemplate做接口对接
请求方----------------------------------------------------------------------------------------------------------------------------------------------------------------import org.apache.http.conn.ssl...原创 2019-08-21 14:51:47 · 551 阅读 · 0 评论 -
后端——》Java-自定义注解类记录用户操作日志到数据库
看完本文可能会对你有帮助的点:1,如何记录用户操作日志。2,更加深入了解Spring的面向切面编程。3,更加了解自定义注解类。具体实现步骤大致四步:1,创建日志记录实体和数据表。2,自定义注解类。3,创建切面类用于写日志记录的具体操作逻辑4,在业务方法上添加自定义注解实现功能效果图(本人是基于Springboot+JPA+Layui做的)具体实现如下:...原创 2019-09-20 14:01:31 · 2646 阅读 · 13 评论 -
后端——》java 删除文件夹和文件夹
/*** * 删除文件夹 * * @param 文件路径 */public static void delFolder(String folderPath) { try { delAllFile(folderPath); // 删除完里面所有内容 String filePath = folderPath; filePath = ...原创 2018-04-20 14:07:14 · 250 阅读 · 0 评论