自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

lidamiao

java

  • 博客(37)
  • 资源 (3)
  • 收藏
  • 关注

原创 适合小公司的自动化部署脚本

用烂熟透的jps命令查找到进程,kill后,重启服务。只需要修改 APP_MAINCLASS的变量“XXX-1.0.0.jar”替换为自己jar的名字即可,其它不用动。( 脚本很简单,注释也很详细,就不展开了,感兴趣可以阅读下,不到5分钟,写过代码的你能看懂的)快挖不动了,一件事重复个5次,还在人肉手工,身体和心理就开始不舒服了,并且违背了个人的座右铭:“偷懒”是人类进步的第一推动力。我的诉求很简单,想要一款“一键CI/CD的工具”,然后可以继续偷懒。是的,我想偷懒,想从已陷入到手工部署的沼泽地里走出来。

2023-12-20 12:06:00 377

原创 想读Spring源码,先从这篇「 极简教程」开始

为什么要阅读源码?这是一个有趣的问题,类似的问题还有,为什么要看书?为什么要爬山?这也是一个哲学问题,我想每个人都有不同的答案,下面我是对阅读源码好处的一些思考。 (PS:也欢迎你在评论区留言补充)阅读源码的好处1.知其然知其所以然这是一句 IT 人都很熟悉的话,在开源软件越来越多,并且升级越来越快的今天,如果说还有什么是重要的,那一定是知道它(开源软件)的核心原理和执行流程,这样就能为我们快速定位并修复问题提供宝贵的时间。2.让自己变得更加优秀学习源码可以让我们站在巨人的肩膀上,你

2021-02-20 12:03:19 337

原创 Java8 日期处理的新特性

伴随lambda表达式、streams以及一系列小优化,Java 8 推出了全新的日期时间API。Java处理日期、日历和时间的不足之处:将 java.util.Date 设定为可变类型,以及 SimpleDateFormat 的非线程安全使其应用非常受限。然后就在 java8 上面增加新的特性。全新API的众多好处之一就是,明确了日期时间概念,例如:瞬时(instant)、长短(duration)、日期、时间、时区和周期。同时继承了Joda 库按人类语言和计算机各自解析的时间处理方式。不同于老

2021-01-13 12:30:43 193

转载 理解Java内部类与匿名内部类的区别

内部类:内部类基本概念如果A类需要直接访问B类中的成员,而B类又需要建立A类的对象。这时,为了方便设计和访问,直接将A类定义在B类中。就可以了。A类就称为内部类。内部类可以直接访问外部类中的成员。而外部类想要访问内部类,必须要建立内部类的对象。class Outer { int num = 4; class Inner { void show() { System.out.println("inner s

2020-12-02 18:55:33 3526

原创 4 种高可用 RocketMQ 集群搭建方案,推荐最后一种。

背景笔者所在的业务线,最初化分为三个服务,由于业务初期业务复杂度相对简单,三个业务服务都能很好的独立完成业务功能。随着产品迭代,业务功能越来越多后慢慢也要面对高并发、业务解耦、分布式事务等问题,所以经过团队内部讨论,引入 RocketMQ 消息中间件来更好的处理业务。由于公司内部业务线部署相互独立,我们业务线对引入 RocketMQ 的需求也比较急切,所以打算自己搭建一套高可用的 RocketMQ 集群,同时对于自建的 RocketMQ 集群需要如下特性:高可用 高并发 可伸缩 海量消

2020-11-30 14:46:22 239

转载 Springboot - ElasticSearch 查询总结

官方文档:https://www.elastic.co/guide/cn/elasticsearch/guide/current/full-body-search.htmlpom文件:<!-- elasticsearch --><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-elast...

2020-07-03 12:34:49 916

原创 Github上 10 个开源免费且优秀的后台控制面板~赶紧去收藏!

Web 开发中几乎的平台都需要一个后台管理,但是从零开发一套后台控制面板并不容易,幸运的是有很多开源免费的后台控制面板可以给开发者使用,Github 上收集了一些优秀的后台控制面板,并总结得出 Top 10一、AdminLTEGithub Star 数 24969 ,Github 地址:https://github.com/almasaeed2010/AdminLTE。非常流行的基于 Bootstrap 3.x 的免费的后台 UI 框架。二、vue-Element-AdminG.

2020-05-24 09:28:24 444

转载 Spring Boot 应用在启动阶段执行代码的几种方式

有时候我们需要在应用启动时执行一些代码片段,这些片段可能是仅仅是为了记录 log,也可能是在启动时检查与安装证书 ,诸如上述业务要求我们可能会经常碰到Spring Boot 提供了至少 5 种方式用于在应用启动时执行代码。我们应该如何选择?本文将会逐步解释与分析这几种不同方式CommandLineRunnerCommandLineRunner是一个接口,通过实现它,我们可以在Spring 应用成功启动之后执行一些代码片段@Slf4j@Component@Order(2)publ...

2020-05-13 18:17:18 175

转载 盘点下我用的顺手的那些工具

之前经常有朋友问我一些常用的工具,比如我的架构图是用什么工具做的?我的数据库是用什么工具设计的?今天给大家介绍下我用的顺手的工具!IntelliJ IDEA业界公认最好的Java开发工具,平时用的最多。可以安装大量插件丰富功能,开发前端应用也不在话下!X-shell一款强大的安全终端模拟软件,可以用来连接和管理远程Linux服务器。Postman...

2020-05-08 11:40:51 288

原创 IDEA真牛逼,900行"又臭又长"的类重构,分分钟搞定

最近,在对已有项目进行扩展的时候,发现要改动的一个类它长900行,开放了近40个public接口,我流着泪把它给改完了。为了防止这样的惨剧再次发生在我的身上,我觉得有必要写一篇博客来让广大程序猿同胞知道代码重构的重要性。如果你身边有一个类写上千行的猿,一定要把此文转给ta为什么类不能过长?类过长——读不通,扩展不通 读不通——直接用滚轮滚都得好几秒,就算是...

2020-05-06 10:40:56 267

原创 synchronized 这个关键字是不是耳熟能详

当synchronized关键字,有不少同学已经耳熟能详了,作为作为复习还是要巩固一下,因为面试常问这个东西。第一个是多个线程去访问同一个资源的时候,对这个资源要上锁。为什么要上锁呢?访问某一段代码或者某临界资源的时候是需要有一把锁的概念的。比如:我们对一个数字做递增,两个程序对它一块儿来做递增,递增就是把一个程序往上加1,如果两个线程共同访问的时候,第一个线程读它是0,然后把...

2020-05-02 17:03:01 126

转载 Docker+Jenkins+Nginx+Spring Boot 自动化部署项目

Docker通过linux的namespace实现资源隔离、cgroups实现资源控制,通过写时复制机制(copy-on-write)实现了高效的文件操作,在实际开发中可用于提供一次性的环境、微服务架构的搭建、统一环境的部署。虽然Docker已经是风靡全球的容器技术了,统一环境避免环境问题上是Docker的主要吸引点之一,但使用时详细还是会遇到不少问题的,比如个人搭建时曾思考过这些问题:J...

2020-04-29 16:48:24 157

原创 Spring Boot 中使用一个注解将 List 转换为 Excel 下载

使用示例@ResponseExcel(classFieldNames = {"name", "age", "address"}) @RequestMapping("/list") public List list() { return listUsers(); }其中,使用了 ResponseExcel 注解并指明实体类的字段,轻松的将这些字段转化为了 Excel 文件下载。...

2020-04-28 14:21:04 202

原创 看完这些 Java 代码优秀案例,一定对你有提升,值得关注

程序的性能受到代码质量的直接影响。主要介绍一些代码编写的小技巧和惯例。虽然看起来有些是微不足道的编程技巧,却可能为系统性能带来成倍的提升,而且也能提高自己的基础知识,扎实的基础是成功的基石,因此还是非常值得关注的。慎用异常在Java开发中,经常使用try-catch进行错误捕获,但是try-catch语句对系统性能而言是非常糟糕的。虽然一次try-catch中,无法察觉到她对性能带...

2020-04-26 10:52:44 332

转载 SpringBoot+Mybatis+ Druid+PageHelper 实现多数据源并分页

本篇文章主要讲述的是SpringBoot整合Mybatis、Druid和PageHelper 并实现多数据源和分页。其中SpringBoot整合Mybatis这块,在之前的的一篇文章中已经讲述了,这里就不过多说明了。重点是讲述在多数据源下的如何配置使用Druid和PageHelper 。http://www.cnblogs.com/xuwujing/p/8260935.htmlDruid...

2020-04-24 16:48:17 156

原创 MySQL常用的图形化管理工具

常用的MySQL图形化管理工具MySQL的管理维护工具非常多,除了系统自带的命令行管理工具之外,还有许多其他的图形化管理工具,这里我介绍几个经常使用的MySQL图形化管理工具,供大家参考。MySQL是一个非常流行的小型关系型数据库管理系统,2008年1月16号被Sun公司收购。目前MySQL被广泛地应用在Internet上的中小型 网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源...

2020-04-24 15:39:10 526

原创 Java项目基础构建,统一的结果,统一的异常,统一的日志

1Java项目构建基础:统一结果,统一异常,统一日志统一结果返回目前的前后端开发大部分数据的传输格式都是json,因此定义一个统一规范的数据格式有利于前后端的交互与UI的展示。统一结果的一般形式 是否响应成功; 响应状态码; 状态码描述; 响应数据 其他标识符 结果类枚举前三者可定义结果枚举,如:success,code,mess...

2020-04-23 11:57:13 129

转载 为什么SpringBoot的 jar 可以直接运行

SpringBoot提供了一个插件spring-boot-maven-plugin用于把程序打包成一个可执行的jar包。在pom文件里加入这个插件即可:<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId&...

2020-04-16 17:56:53 283

原创 搭建分布式缓存 Redis 集群

1快速搭建分布式缓存 Redis 集群Redis 集群简介Redis Cluster 即 Redis 集群,是 Redis 官方在 3.0 版本推出的一套分布式存储方案。完全去中心化,由多个节点组成,所有节点彼此互联。Redis 客户端可以直接连接任何一节点获取集群中的键值对,不需要中间代理,如果该节点不存在用户所指定的键值,其内部会自动把客户端重定向到键值所在的节点。Redis 集...

2020-04-13 12:40:16 181

转载 实现微信扫码或关注公众号后网站自动登录

常见方式平常大家见到过最多的扫码登录应该是 开放平台网页登录 大概形式就是:点击微信登录后会出现一个黑页面,页面中有一个二维码,扫码后可以自动获取用户信息然后登录,但是这种方式需要申请开放平台比较麻烦。如图「实用」微信扫码关注公众号号后自动登录利于推广方式另外一种扫码登录方式只需要一个微信服务号就行,大概流程是:点击微信登录,网站自己弹出一个二维码、扫描二维码后弹出公众号的关注...

2020-04-11 15:14:58 3411

原创 33 个 IDEA 最牛配置,程序员写代码少不了

1.设置maven1.在File->settings->搜索maven2.Mavanhome directory--设置maven安装包的bin文件夹所在的位置3.Usersettings file--设置setting文件所在的位置4.Localrepository--设置本地仓库2.IDEA 设置代码行宽度1.在File->setti...

2020-04-10 16:24:52 479

转载 IntelliJ IDEA天天用,这些Debug技巧你得知道

在软件开发的过程中,可以说调试是一项基本技能。调试的英文单词为 debug ,顾名思义,就是去除 bug 的意思。俗话说的好,编程就是制造 bug 的过程,所以 debug 的重要性毋庸置疑,如果能熟练掌握调试技能,也就可以很快的定位出代码中的 bug。要知道,看的懂代码不一定写的出代码,写的出代码不一定能调试好代码,为了能写出没有 bug 的代码,我们必须得掌握一些基本的调试技巧。工欲善其事...

2020-04-08 10:18:08 554

转载 简单了解一些分布式术语,分享给大家

1 I/O优化1、增加缓存,减少磁盘的访问次数。2、优化磁盘的管理系统,设计最优的磁盘方式策略,以及磁盘的寻址策略,这是在底层操作系统层面考虑的。3、设计合理的磁盘存储数据块,以及访问这些数据库的策略,这是在应用层面考虑的。例如,我们可以给存放的数据设计索引,通过寻址索引来加快和减少磁盘的访问量,还可以采用异步和非阻塞的方式加快磁盘的访问速度。4、应用合理的RAID策略提升磁盘I/O。...

2020-04-05 19:26:41 255

原创 IDEA 2020开始为不懂English的程序员服务了

1IDEA 2020前不久 JetBrains 发布了 IntelliJ 平台 2020 年路线图,现在作为 2020 年规划中的另一部分,JetBrains 又发布了基于 IntelliJ 的 IDE 2020 年的功能路线图。前者主要集中在平台的底层功能上,而后者聚焦于更高级别的功能,这些功能将与用户直接交互。# 本土化去年,JetBrains 网站进行了本地化,提供了 8 ...

2020-04-04 10:51:17 1215

转载 基于源码看Tomcat 在 SpringBoot 中的启动

1基于源码看Tomcat 在 SpringBoot 中的启动前言我们知道 SpringBoot 给我们带来了一个全新的开发体验,我们可以直接把 web 程序达成 jar 包,直接启动,这就得益于 SpringBoot 内置了容器,可以直接启动,本文将以 Tomcat 为例,来看看 SpringBoot 是如何启动 Tomcat 的,同时也将展开学习下 Tomcat 的源码,了解 Tomc...

2020-04-03 11:18:54 105

原创 Java写的 将 Word 文档转换 PDF 的工具

1Java 将 Word 文档转换为 PDF 的完美工具在日常工作中,PDF格式良好的视觉阅读性和稳定性使其使用越来越广泛。因此我们常会遇到需要将成型的Word文档转换为PDF格式的情况。本文就将通过使用Java程序来演示如何将Word文档转换成PDF格式。使用工具:https://www.e-iceblue.cn/Downloads/Free-Spire-Doc-JAVA.htm...

2020-04-01 21:43:06 287

转载 Spring Boot 中的热部署方式总结

1Spring Boot 的热部署方式1、模板热部署在 Spring Boot 中,模板引擎的页面默认是开启缓存的,如果修改了页面的内容,则刷新页面是得不到修改后的页面的,因此我们可以在application.properties中关闭模版引擎的缓存,如下:Thymeleaf的配置:spring.thymeleaf.cache=falseFreeMarker的配置:s...

2020-03-30 10:50:24 100

转载 基于Java实现QQ登录和微博登录

1基于Java实现QQ登录和微博登录1. 前言个人网站最近增加了评论功能,为了方便用户不用注册就可以评论,对接了 QQ 和微博这 2 大常用软件的一键登录,总的来说其实都挺简单的,可能会有一点小坑,但不算多,完整记录下来方便后来人快速对接。2. 后台设计在真正开始对接之前,我们先来聊一聊后台的方案设计。既然是对接第三方登录,那就免不了如何将用户信息保存。首先需要明确一点的是,用户...

2020-03-30 10:09:16 297

转载 异地加载 Spring Boot 配置文件

1异地加载 Spring Boot 配置文件平时,项目的yaml格式或者properties格式的配置信息文件都固化在了项目jar包里面,不便于动态更改。之前我写过一小段时间的Go,我都是从Redis里读取了相关的配置之后,再完成项目的启动。于是乎,我想在Spring Boot里也捣鼓一下。要完成配置文件的替换,那么必须在Spring Boot启动之前完成,也就是说像这样子@Spr...

2020-03-30 10:06:39 132

转载 Spring Boot RabbitMQ - 交换器

1fanout exchange发送到该交换器的所有消息,会被路由到其绑定的所有队列。不处理路由键。你只需要简单的将队列绑定到交换机上。一个发送到交换机的消息都会被转发到与该交换机绑定的所有队列上。很像子网广播,每台子网内的主机都获得了一份复制的消息。Fanout交换机转发消息是最快的。如图所示,所有发送到fanout exchange的消息都会路由到QUEUE-1和Q...

2020-03-30 10:04:35 147

原创 基于SpringBoot 使用 Caffeine 本地缓存

目录一、本地缓存介绍二、缓存组件 Caffeine 介绍Caffeine 性能Caffeine 配置说明软引用与弱引用三、SpringBoot 集成 Caffeine 两种方式四、SpringBoot 集成 Caffeine 方式一Maven 引入相关依赖配置缓存配置类定义测试的实体对象定义服务接口类和实现类测试的 Controller 类五、S...

2020-03-28 21:55:57 751

原创 基于Springboot+Dubbo+Nacos 注解方式实现微服务调用

1项目结构​​​​​​​|-- spring-boot-dubbo-demo (父级工程) |-- spring-boot-dubbo-base (基础工程) |-- spring-boot-dubbo-consumer (消费者) |-- spring-boot-dubbo-provider (生产者)SpringBoot版本:2.2.0Dubbo版本:2.7....

2020-03-26 14:30:59 1104

原创 Springboot项目的接口防刷的实例

今天跟大家分享Springboot项目的接口防刷的实例的知识。1Springboot项目的接口防刷的实例说明:使用了注解的方式进行对接口防刷的功能,非常高大上,本文章仅供参考。技术要点:springboot的基本知识,redis基本操作,首先是写一个注解类:import java.lang.annotation.Retention;import java.lang.ann...

2020-03-21 19:11:38 140

原创 必须掌握的 Spring MVC 顶级技巧

今天跟大家分享必须掌握的 Spring MVC 顶级技巧的知识。1Spring MVC 顶级技巧通常,在Spring MVC中,我们编写一个控制器类来处理来自客户端的请求。然后,控制器调用业务类来处理与业务相关的任务,然后将客户端重定向到逻辑视图名称,该名称由Spring的调度程序Servlet解析,以呈现结果或输出。这样就完成了典型的请求-响应周期的往返。今天整理了一下编...

2020-03-21 10:40:45 177

原创 基于Spring整合Quartz集群的定时任务应用

今天跟大家分享基于Spring整合Quartz集群的定时任务应用的知识。1基于Spring整合Quartz集群的定时任务应用概述虽然单个Quartz实例能给予你很好的Job调度能力,但它不能满足典型的企业需求,如可伸缩性、高可靠性满足。假如你需要故障转移的能力并能运行日益增多的 Job,Quartz集群势必成为你应用的一部分了。使用 Quartz 的集群能力可以更好的支持你...

2020-03-20 22:36:52 162

转载 优化你的SpringBoot

介绍在SpringBoot的Web项目中,默认采用的是内置Tomcat,当然也可以配置支持内置的jetty,内置有什么好处呢? 方便微服务部署。 方便项目启动,不需要下载Tomcat或者Jetty 针对目前的容器优化,目前来说没有太多地方,需要考虑如下几个点 线程数 超时时间 jvm优化 针对上述的优化点来说,首先线程数是一个重点,初始线程数和...

2019-07-20 13:13:08 106

转载 怎样搭建SSH框架

搭建SSH框架:Struts1.* + Spring2.5 + Hibernate3.0工具/原料主要就是Java开发所需要的工具、这里不做详细说明步骤/方法1​ 项目结构:Jsp页面省略,主要是一些添删改查的页面2开始搭建项目环境,步

2014-08-28 10:12:17 237

SetupRegexBuddyDemo.exe

正则表达式工具软件RegexBuddy

2021-08-26

博客X WordPress主题_boke-x.zip

WordPress主题

2021-08-14

httpclient

对于HttpClient包并修改字符串的各种处理方法及处理时间的方法

2014-07-30

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除