spring boot
文章平均质量分 60
闪耀的瞬间
漫漫程序路:路漫漫其修远兮 吾将上下而求索
展开
-
在idea环境里打包docker镜像
4.打包:mvn clean package docker:build -DskipTests。1.先在docker服务所在的服务器 编辑docker文件。3.Dockerfile文件内容。5.查看镜像和启动容器。原创 2023-06-27 16:32:38 · 2009 阅读 · 1 评论 -
Java OkHttp发送网络请求与上传文件公用方法
okhttp原创 2022-08-12 10:35:06 · 1707 阅读 · 1 评论 -
IDEA使用maven插件生成protobuf实体类
idea使用maven插件生成protobuf java实体类原创 2022-04-05 20:21:22 · 1721 阅读 · 0 评论 -
用Java注解对结果集中包含身份证号码的数据进行脱敏处理
1.目标,期望对响应到客户端结果集中的用户身份证号码、手机号码等敏感信息进行脱敏处理,如身份证号码中间8位用 * 星号代替,手机号码中间4位用 * 星号代替2.SpringBoot项目,常用的web依赖3.处理思路:1.定义枚举类,处理不同类型的数据(身份证号、手机号、邮件等)2.定义注解,用在要处理的字段上,关键是该注解上使用 @JacksonAnnotationsInside 主键,因为springboot项目默认使用 jackson 序列化数据(题外话:如果使用FastJsonHttpMes原创 2020-09-27 09:15:04 · 3451 阅读 · 3 评论 -
SpringBoot集成Elasticsearch
建议使用 Elasticsearch Bboss我们使用SpringBoot基于es7.6.2版本进行开发,部署服务时,客户要使用阿里云es服务,阿里云es服务现在最高版本6.3.2,因此代码需要降级处理,而使用了Bboss客户端后,所编译的查询代码基本无改动,很好的兼容了6.3.2版本。注意点:es6.x与7.x版本最大的不同是,7.x默认使用type=_doc,所以建索引时要指定type=_docbboss elasticsearch是一套基于query dsl语法操作和访问分布式搜索引擎ela原创 2020-08-27 10:01:39 · 732 阅读 · 0 评论 -
Java核心知识点之注解简介和最佳实践
111转载 2020-06-30 09:36:17 · 369 阅读 · 0 评论 -
JetCache多级缓存
1.JetCache,阿里巴巴开源多级缓存框架JetCache是一个基于Java的缓存系统封装,提供统一的API和注解来简化缓存的使用。 JetCache提供了比SpringCache更加强大的注解,可以原生的支持TTL、两级缓存、分布式自动刷新,还提供了Cache接口用于手工缓存操作。 当前有四个实现,RedisCache、TairCache(此部分未在github开源)、CaffeineCache(in memory)和一个简易的LinkedHashMapCache(in memory),要添加新的实原创 2020-06-24 21:53:33 · 3562 阅读 · 2 评论 -
SpringBoot集成单元测试
Spring基本单元测试pom.xml 引入依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope></dependency>在测试目录添加测试类1.注入服务直接测试@原创 2020-06-22 15:32:59 · 2814 阅读 · 0 评论 -
SpringBoot MySql读写分离-多数据源集成
1.业务场景客户给了3台MySQL数据库服务器,一主二从,程序需要集成读写分离,充分提升数据处理能力数据层使用了MyBatis-Plus,它有一个多数据源的中间件 dynamic-datasource-spring-boot-starter参考:MyBatis-Plus2.MySql主从一主二从,搭建方式参考:docker搭建mysql读写分离3.SpringBoot快速集成1.新建SpringBoot项目,核心依赖<dependency> <groupId&g原创 2020-06-10 14:44:16 · 2510 阅读 · 0 评论 -
Prometheus+Grafana项目实战
项目上线后,需要对服务器资源,MySql,JVM,业务系统总请求数等,进行监控,通过监控找到系统盲区,反过来优化系统,比如服务器资源使用情况,Mysql慢sql等,JVM的GC情况,某个业务某段时间的总请求数下面的文章是Prometheus与Grafana的基础文章,请参考Prometheus - 时间序列数据库Grafana - 监控信息可视化工具Spring Boot Metrics监控之Prometheus1.整体逻辑1.需要监控的目标有:服务器资源使用情况,MySQL,JVM,业务原创 2020-05-25 21:02:26 · 1873 阅读 · 0 评论 -
SpringBoot日志框架使用指南
市面上常见的日志框架有很多,比如:JCL、SLF4J、Jboss-logging、jUL、log4j、log4j2、logback等等通常情况下,日志是由一个抽象层+实现层的组合使用的抽象层实现层JCL、SLF4J、jboss-loggingjul、log4j、log4j2、logbackSpring默认使用 JCL,所以以前的项目大多要依赖 commons-log...原创 2019-12-03 09:57:16 · 482 阅读 · 0 评论 -
SpringBoot项目启动时自动配置原理
本篇说说SpringBoot项目启动时的原理,是按个人理解,说的不好请谅解1.创建好项目后有个主类,上面有@SpringBootApplication注解package com.yizheng.api;@SpringBootApplicationpublic class ApiAcceptApplication {}在idea中按住Ctrl点击进去,会看到下面两个关键注解(其他注解没...原创 2019-12-02 12:00:49 · 998 阅读 · 0 评论 -
各种类型文件对应文件的 Content-Type
各种类型文件对应文件的 Content-Type { ".load":"text/html", ".123":"application/vnd.lotus-1-2-3", ".3ds":"image/x-3ds", ".3g2":"video/3gpp", ".3ga":"video/3gpp", ".3gp":"video/3gpp", ...原创 2019-03-21 14:22:17 · 24431 阅读 · 6 评论 -
SpringCloud实战十九:Pometheus 集成 Alertmanager 服务告警(邮件通知)
1.在前面四篇博客基础上,基础Alertmanager组件,对监控信息实现告警处理,已发送邮件、企业微信等方式通知接收人1.前三篇博客分别介绍了 Prometheus 、Grafana、与 SpringBoot 集成1.prometheus介绍与安装2.Grafana可视化图形界面3.Spring Boot 集成 Prometheus4.Pometheus 集成 Consul 动态拉取...原创 2019-03-17 21:14:05 · 2457 阅读 · 0 评论 -
Spring Boot Metrics监控之Prometheus
前两篇博客分别介绍了 Prometheus 与 Grafana,都是为与 SpringBoot 集成做准备的prometheus介绍与安装Grafana可视化图形界面有了前面的基础准备工作,本篇直接上代码,起启动好 prometheus 与 grafana要实现的目的:1.监控SpringBoot应用程序 JVM 情况2.模仿天猫双十一,有个电子大屏,实时显示请求总次数、下单总金...原创 2019-03-10 20:13:23 · 10038 阅读 · 9 评论 -
SpringCloud实战:docker部署项目
Docker 技术发展为微服务落地提供了更加便利的环境,docker配合kubernetes,可以编排容器,通俗来说,就是通过kubernetes,可以监控微服务的响应情况,请求多服务响应慢时自动拉起docker服务,来缓解服务压力,且不需要人工干预本篇的目的是记录系统上线时,把项目打包为容器服务器需要用到的环境与软件centos7.3java jdk8_191maven3.5.3d...原创 2018-12-18 14:36:46 · 3029 阅读 · 1 评论 -
Ueditor 跨域图片上传
ueditor 文档官方地址:http://fex.baidu.com/ueditor/我在项目中使用Java,所以用ueditor的后台配置为 JSP如何自定义请求地址,官方文档也有说明,要跨域上传图片需要明白个东西,例如localhost:8080是ueditor页面localhost:2000是图片上传服务在localhost:8080项目下的 ueditor.all.js ...原创 2018-10-26 19:19:23 · 1907 阅读 · 1 评论 -
SpringBoot项目开发(二十四):支持跨域请求JSONP
在SpringMVC4.1版本以后,Spring为我们提供了一个AbstractJsonpResponseBodyAdvice的类用来支持jsonp的数据,SpringBoot接收解析web请求是依赖于SpringMVC,所以也可以继承此类看代码@ControllerAdvice(basePackages = "com.lkh.tour.controller")public class Js...原创 2018-10-26 15:51:40 · 918 阅读 · 0 评论 -
SpringBoot @Async异步并行执行任务
说@Async注解时,得先说说异步任务的由来,按我的理解,从Java5版本就提供 Future 接口,Future接口可以充分利用多核CPU处理能力,它允许任务在一个新的核上开启一个新的子线程,子线程和原来的任务同时运行,因为Future 的局限性Java8对Future进行重新实现,实现类 CompletableFuture,而Spring对Future接口进行了封装,使用 @Async 注解可...原创 2019-08-21 20:42:48 · 8214 阅读 · 0 评论 -
SpringBoot项目开发(二十二):SpringBoot MongoDB实现副本集(读写分离)
1.MongoDB可以单库、主从(官方现已不推荐)、副本集、分片加副本集,通过分片加副本集可以组成庞大的数据存储集群,而大部分项目使用副本集就能满足需求了2.MongoDB副本集(Replica Set):有自动故障恢复功能的主从集群,有一个Primary节点和一个或多个Secondary节点组成。3.副本集环境搭建,请参考 Mongodb安装与设置副本集4.SpringBoot实现 Mon...原创 2018-10-10 15:41:11 · 16797 阅读 · 15 评论 -
SpringBoot Mongodb文件存储服务器
1.Mongodb简介MongoDB是一个高性能,开源,无模式的文档型数据库Mongodb可以通过副本集、分片来扩展数据库性能GridFS:Mongo主要解决的是海量数据的访问效率问题。因为Mongo主要是支持海量数据存储的,所以Mongo还自带了一个出色的分布式文件系统GridFS,可以支持海量的数据存储。由于Mongo可以支持复杂的数据结构,而且带有强大的数据查询功能2.为什么使用...原创 2019-03-24 15:57:25 · 8416 阅读 · 3 评论 -
Sharding-Sphere:Sharding-JDBC读写分离,docker搭建mysql主从
读写分离可以提高系统吞吐量,在网上看了很多java springboot去做读写分离的文章,大部分是基于spring aop 硬编码java代码去实现的,代码侵入性较大,原理是:如果调用select、get开头的方法,就调用从库,否则调用主库,本篇将基于当当开源的sharding-jdbc来做读写分离,看名字就知道它是在jdbc上,代码零入侵,配置文件配置主从库地址。1.搭建读写分离环境l...原创 2019-04-28 20:29:10 · 2340 阅读 · 2 评论 -
分布式事务之Seata(Fescar)
1.背景Seata是阿里开源的一款高性能分布式事务解决方案,在2019年1月初阿里分布式事务框架GTS开源了一个免费社区版Fescar,也就是说在阿里内部叫GTS,后面开源版本叫Fescar,后面再改名为Seata,GitHub地址:https://github.com/seata/seata2.事务我的理解是,一次操作(不管几次远程调用),要么一起成功,要么失败。说到事务就不得不说数据库...原创 2019-04-20 09:57:45 · 5116 阅读 · 1 评论 -
nginx作为css,js,image静态资源服务器
1.传统的web项目,一般都将静态资源存放在 webroot 的目录下,这样做很方便获取静态资源,但是如果说web项目很大,用户很多,静态资源也很多时,服务器的性能 或许就会很低下了。这种情况下一般都会需要一个静态资源的服务器。2.在Centos7.4中安装 nginx 服务,然后修改配置文件,如下upstream www.ykh6.com{ server localho...原创 2018-05-13 17:23:58 · 15686 阅读 · 0 评论 -
SpringBoot使用ELK做日志收集
https://www.elastic.co/cn/1.ELK是有Elastic公司的三个组件配合进行日志收集,分别是:ElasticSearch:用于存储日志信息。Logstash:用于收集、处理和转发日志信息。Kibana:提供可搜索的Web可视化界面。当然,现在很多都配合着Beats进行使用,这里不做过多描述,感兴趣的可以查看官网 https://www.elastic.co/...原创 2019-09-17 16:08:56 · 1053 阅读 · 0 评论 -
Linux安装Kibana
centos7.6 安装kibana,依赖 JDK,可参考 jdk安装安装Kibana1.地址:https://www.elastic.co/cn/downloads/kibana,选择历史版本,选择6.8.1下载,和上篇 Elasticsearch 版本一致2.下载:wget https://artifacts.elastic.co/downloads/kibana/kibana-6.8...原创 2019-09-17 15:47:47 · 383 阅读 · 0 评论 -
Linux安装Logstash
centos7.6 安装logstash,依赖 JDK,可参考 jdk安装安装 Logstash1.地址:https://www.elastic.co/cn/downloads/logstash,选择历史版本,选择6.8.1下载,和上篇 Elasticsearch 版本一致2.下载:wget https://artifacts.elastic.co/downloads/logstash/l...原创 2019-09-17 15:38:26 · 948 阅读 · 0 评论 -
Linux安装Elasticsearch
centos7.6 安装elasticsearch1 安装JDK下载 jdk-8u191-linux-x64.tar,解压打开 vi /etc/profile ,输入jdk地址 export JAVA_HOME=/usr/local/jdk1.8.0_191 export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.ja...原创 2019-09-17 15:20:45 · 319 阅读 · 0 评论 -
SpringBoot打成jar运行后无法读取resources里的文件
在开发一个word导出、替换内容功能时,因替换内容功能需要一个 word 模版,就把 word_replace_tpl.docx 模版文件放到 resources 下在开发环境中通过下面的方法能正确读取word_replace_tpl.docx文件,但是打成jar包在 linux下运行后无法找到文件了File file = ResourceUtils.getFile(ResourceUti...原创 2019-08-01 16:31:50 · 32431 阅读 · 15 评论 -
Sharding-Sphere:Sharding-Proxy分库分表
前两篇文章分享了Sharding-Sphere的第一款产品—Sharding-JDBC分库分表、读写分离,原创 2019-05-10 10:02:48 · 8015 阅读 · 3 评论 -
Sharding-Sphere:Sharding-JDBC分库分表
上一章分享了 Sharding-JDBC 搭建读写分离,本章将用sharding-jdbc实现分库分表功能1.为什么要分库分表?举个栗子:当单表数据量超过1000万后,查询的速度将会慢下来,利用索引,读写分离等优化,如果当数据量超过5000万时,一些常见的优化方法将失去作用,此时把单表水平划分到多库多表中,提升查询速度,而sharding-jdbc可以帮你完成水平拆分,而我们只需添加一些配置即...原创 2019-05-05 23:07:17 · 5086 阅读 · 0 评论 -
SpringBoot项目开发(二十三):Ajax Post数据到控制器方法,参数自动转换为对象
往往有这么个需求,在新增用户时,页面以 ajax 方式把 user 对象数据提交到后台控制器上,控制器方法中的参数以对象形式进行接收,这时就需要把json字符串自动转换为对象了在SpringBoot或SpringMvc中,有@ResponseBody 、@RequestBody 两个注解@ResponseBody 注解是把数据已json字符串的方式传给客户端@RequestBody 注解...原创 2018-10-18 19:51:41 · 2689 阅读 · 0 评论 -
SpringBoot War包形式部署到外部Tomcat
1.SpringBoot 项目打包时能打成 .jar 与 .war包形式的文件,打成 .jar 的最多,使用 java -jar xx.jar 就可以启动,而 .war 可以部署到tomcat的 webapps 中,随tomcat的启动而启动。2.打包成什么文件进行部署,与项目有关,就像提供 rest 服务的项目需要打包成 jar文件,用命令搭建成集群很方便。。。而有大量css、js、html需...原创 2018-09-28 15:36:57 · 26837 阅读 · 0 评论 -
SpringBoot项目开发(二十一):Gzip压缩
为了减少数据在网络中的传输量,从而减少传输时长,增加用户体验,浏览器大都是支持Gzip压缩技术的,http的请求头 Accept-Encoding:gzip, deflate 就表示这次请求可以接受Gzip压缩后的数据,压缩会有一定的CPU性能损耗1.SpringBoot开启Gzip压缩在application.properties中加入如下配置:server.compressio...原创 2018-09-05 09:33:40 · 20815 阅读 · 0 评论 -
SpringBoot项目开发(一):开篇
新开了一个 SpringBoot 项目开发系列博客,在开发互联网项目中遇到的问题和好的东西分享给大家。为什么叫感谈? &amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;nbsp;&am原创 2018-07-16 17:00:58 · 2747 阅读 · 0 评论 -
RabbitMQ 延迟队列的实现
1.为什么需要使用延迟队列?适用于什么场景? &nbsp;&nbsp;&nbsp;场景一:订单下单之后30分钟后,如果用户没有付钱,则系统自动取消订单。 &nbsp;&nbsp;&nbsp;这样类似的需求是我们经常会遇见的问题。最常用的方法是定期轮训数据库,设置状态。在数据量小的时候并没有什么大的问题,但是数据量一大轮训数据库的方式就会变得特别耗资源。当面对千万级、上亿级数据量时,本身写...原创 2018-06-11 19:13:59 · 7680 阅读 · 10 评论 -
Java 开发js、css批量压缩工具
开发这个小工具的缘由是:网上提供的压缩服务,大部分是单个文件压缩,而项目中需要压缩的文件太多,一个个的压缩占用了太多时间,还是一个手工活,容易出错。为什么需要压缩?为了快,速度。让用户更快的打开页面,减少系统网络流量。网上有yuicompressor-2.4.8.jar包下载,使用命令可以压缩单个文件,但我想要的是批量压缩多个文件,而yuicompressor包提供了压缩的类和方法,那我只...原创 2018-06-04 11:30:51 · 2808 阅读 · 4 评论 -
SpringBoot项目开发(十五):redisson实现分布式锁
1.为什么要使用分布式锁? &amp;amp;amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;amp;amp;nbsp;在分布式场景下为了保证数原创 2018-05-23 12:13:40 · 15657 阅读 · 9 评论 -
css3自定义滚动条
开发项目时,感觉浏览器自带的滚动条样式不太美观,也看到过微信公众号等一些网站对滚动条做了美化,今天就百度了一下,写篇自定义 滚动条的文章供大家参考 直接看代码:给整个body区域的滚动条改变样式body::-webkit-scrollbar {/*滚动条整体样式*/ width: 10px; /*高宽分别对应横竖滚动条的尺寸*/ height: 1px;}body...原创 2018-05-21 16:24:14 · 398 阅读 · 0 评论 -
SpringBoot项目开发(十三):文件上传,监听、过滤非自身网站的请求,对资源进行防盗链等
引用上面一张图片,可能有A、B、C三个项目需要上传文件,如.zip、excel、images等文件,常用的方法是在各自项目中编写上传的后台代码,文件上传到项目的当前服务器路径下,其他项目需要时又复制一次,这种类似是单体式架构,不好扩展,那么开发一个统一的资源服务就很有必要,由这个资源服务统一管理,其他项目只要使用即可,资源服务器提供上传、下载、访问等功能。当然如果有很大量的文件资源,可以使用 ...原创 2018-05-14 11:44:28 · 2754 阅读 · 1 评论