- 博客(366)
- 收藏
- 关注
原创 SpringBoot学习之ElasticSearch下载安装和启动(Mac版)(三十一)
本篇是接上一篇Windows版本,需要Windows版本的请看上一篇,这里我们继续把Elasticsearch简称为ES,以下都是这样。
2024-03-25 23:40:26 138
原创 SpringBoot学习之ElasticSearch下载安装和启动(Windows版)(三十)
本文先写windows下的下载安装和启动,后续有时间再补充docker版本下的,毕竟docker现在用的公司和个人太多了,这里我们后续对ElasticSearch简称为ES,不做赘叙。
2024-03-25 14:21:41 448
原创 SpringBoot学习之自定义注解和AOP切面统一保存操作日志(二十九)
这个注解是用来控制是否需要保存操作日志的自定义注解(这个类似标记或者开关)
2024-03-08 18:34:24 182
原创 代码整洁之道之优化if-else的8种方案(一)
可以消除if-else。上述方案都可以达到优化if-else的效果,但是采用那种方案还是要看具体的代码逻辑以及业务处理逻辑,重要的是要评估项目的复杂性、维护性和性能需求,选择最适合项目需求的优化方案。我们可以将一些操作(比如一些状态)的一些共性的方法抽象成一个公共接口,然后针对这些操作实现这些接口完成不同的逻辑,在调用时我们只需要传入对应的操作类即可,对外的操作方法都是同一个。我们日常开发的项目中,如果代码中存在大量的if-else语句,阅读起来非常的折磨(直接劝退),维护起来也很难,也特别容易出问题。
2024-02-28 14:17:44 21
原创 解决端口被占用的问题
我们输入: netstat -aon | findstr 8080,返回信息如下,可以看到该端口被20312进程占用。我们输入:taskkill -pid 20312 -f,返回信息如下,可以看到占用该端口的进程已经被杀死了。如果不放心的话,我们还可以在用1中的命令查一遍,可以看到之前监听的两个进程已经被杀掉了。netstat -aon | findstr “端口”taskkill -pid "进程号" -f。2、我们用下面命令杀死这个占用端口的进程。
2023-12-13 11:04:12 72
原创 SpringCloudAlibaba实战入门之Sentinel初体验-流量控制(八)
PS:但是官网下载巨慢而且中途会无故自动终止,这里有个小技巧,可以使用迅雷,复制下载地址到迅雷,迅雷会大概率提供免费使用一分钟超级会员,一般这种几百兆的下载一分钟超级会员是足够下载完或者下载大部分。刷新我们的sentinel开源项目,我们在浏览器中短时间内快速请求上面两个接口请求,刷新页面我们在实时监控页面可以看到如下,至此我们的微服务项目在发送请求时候被sentinel成功监听到了。1、复制之前的项目模块,创建一个新的项目模块,模块名称读者自己设置,这里我们叫cloud-sentinel-1007。
2023-07-06 16:46:16 659
原创 SpringCloudAlibaba实战入门之Dubbo(基于Nacos注册中心)(七)
一、Dubbo介绍Dubbo是阿里巴巴公司开源的一个高性能、轻量级的 Java RPC 框架。致力于提供高性能和透明化的 RPC 远程服务调用方案,以及 SOA 服务治理方案。服务提供者在启动时,向注册中心注册自己提供的服务。服务消费者在启动时,向注册中心订阅自己所需的服务。注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者。服务消费者,从提供者地址列表中,基于负载均衡算法,选择提供者进行调用。
2023-07-05 17:55:42 260
原创 SpringCloudAlibaba实战入门之RocketMQ消息发送(六)
本篇文章是承接上一篇文章《SpringCloudAlibaba实战入门之RocketMQ下载配置和启动(五)》,如果没有看过上一篇文章并按照指导配置和启动Rocket MQ的网友,请先阅读该篇文章以后再阅读本篇。
2023-06-30 18:07:44 689
原创 SpringCloudAlibaba实战入门之RocketMQ下载配置和启动(五)
发送消息时,用户只指定Topic,Producer会根据Topic的路由信息选择具体发到哪个Queue上。RocketMQ 是阿里巴巴集团基于高可用分布式集群技术,自主研发的云正式商用的专业消息中间件,既可为分布式应用系统提供异步解耦和削峰填谷的能力,同时也具备互联网应用所需的海量消息堆积、高吞吐、可靠重试等特性,是阿里巴巴双 11 使用的核心产品。Topic:主题,用于将消息按主题做划分,Producer将消息发往指定的Topic,Consumer订阅该Topic就可以收到这条消息。
2023-06-30 11:35:00 585
原创 SpringCloudAlibaba实战入门之Nacos动态配置(四)
上篇文章介绍了,除此之外,还有一个重要功能就是作为分布式配置中心,那这篇文章就介绍下 Nacos 作为配置中心的基本用法,首先我们先了解下为什么需要使用配置中心。
2023-06-29 09:40:17 245
原创 SpringBoot学习之集成JWT(二十八)
需要创建JWT拦截器,以用来对RestApi接口进行验证是否在提交请求时候带有合法的JWT,当然我们也可以自定义注解用来对没有JWT token的请求直接放行。可以看到,输入正确的token以后拦截器对于除登录注册以外的接口都予以放行通过,关于更多JWT的知识后续我们再补充讲解,我们下回再见。既然JWT需要创建和验证,那么我们需要新建一个工具类,其中包含核心两大方法创建JWT和验证JWT。登录swagger界面,我们直接测试登录和注册以外的接口,比如下面的根据ID获取用户的接口,
2023-05-23 22:28:12 436
原创 SpringBoot学习之集成Swagger3(二十七)
输入token,点击Authorize成功后,Authorize会变成Logout,点击Close即可,后面我们就可以随意访问任何需要验证登录的接口了。地址成功跳转后,界面大致如下,则表示swagger3基本配置成功。通过登录接口(登录数据自己在数据库中创建一些测试用户,userService部分此处不做详细说明),我们可以返回如下token。本篇文章内容较多,读者可以结合自己水平和理解能力酌情学习其中部分内容和代码,今天的内容到此为止,我们下次再见。-- Druid 数据连接池依赖 -->
2023-05-20 22:18:15 644
原创 SpringBoot学习之集成Redis(二十六)
redis的常用使用场景,可以做缓存,分布式锁,自增序列等,使用redis的方式和我们使用数据库的方式差不多,首先我们要在自己的本机电脑或者服务器上安装一个redis的服务器,通过我们的java客户端在程序中进行集成,然后通过客户端完成对redis的增删改查操作。由此可以说明我们的Redis可以成功的存取收据,今天的博客到此为止,如果有疑问的请留言,我们下次再见。如果有不知道怎么下载和安装Redis的网友,请留言我再考虑补充,类似博客网上随手可得,此处不表。
2023-05-20 19:11:55 93
原创 SpringCloudAlibaba实战入门之手把手教你创建第一个SpringCloudAlibaba项目(二)
SpringCloudAlibaba实战入门之手把手创建第一个SpringCloudAlibaba项目(基于Nacos注册)(三)
2022-09-08 18:59:40 1253
原创 SpringBoot学习之事件监听ApplicationListener和@EventListener(二十三)
事件监听是Spring提供的一种重要的通讯技术,他可以最大限度的解耦对象之间的关系,通过事件监听来实现对象之间的通讯一、内置事件序号 Spring 内置事件 & 描述 1 ContextRefreshedEvent ApplicationContext 被初始化或刷新时,该事件被发布。这也可以在 ConfigurableApplicationContext接口中使用 refresh() 方法来发生。此处的初始化是指:所有的Bean被成功装载,后处理Bean被检
2022-05-21 01:43:32 270
原创 解决maven出现“连接到http://repo.maven.apache.org被拒绝”的问题
1、原因这个问题的原因就是无法连接到http://repo.maven.apache.org/maven2镜像2、解决办法修改maven默认镜像仓库地址为国内可用的镜像地址,比如这里推荐阿里的镜像仓库地址http://maven.aliyun.com/nexus/content/groups/public/该镜像仓库地址亲测可用,而且速度极快,强烈推荐3、操作步骤1、找到你IDEA配置的maven位置2、检查你的maven对应的settings.xml文件到底是使用的哪一
2022-05-18 02:11:26 15489 2
原创 SpringBoot学习之Mybatis-Plus实现多数据源(二十二)
用过Mybatis-Plus的小伙伴一定对其炫技般的功能赞叹不已,今天我们来实战讲解他的另一个非常重要的功能:多数据源切换功能。所谓多数据源切换就是我们的项目用到了至少两个以上的数据库,我们希望可以随时随地自由的切换我们想要操作的数据库,自己利用AOP或者其他方式自己实现是一项比较麻烦的事情,但是今天看看利用MyBatis-Plus只需要简单的几步就能完美的让我们实现该功能。一、添加对应的starter<dependency> <groupId>c...
2022-05-18 01:59:20 252
原创 Java设置系统日期和时间
需求:利用java实现设置系统的日期和时间一、代码Demo1package com.xu.demo.test;import java.io.IOException;public class SetDateTime { public static void main(String[] args) { //Operating system name String osName = System.getProperty("os.name");
2022-05-06 02:10:02 6224 2
原创 SpringCloudAlibaba实战入门之Nacos下载安装和启动(三)
SpringCloudAlibaba实战入门之注册中心Nacos(二)一、什么是 NacosNacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。 Nacos 是构建以“服务”为中心的现代应用架构 (例如微服务范式、云原生范式) 的服务基础设施。服务(Service)是 Nacos 世界的一等公民。Nacos 支持几乎所有主流类型的“服务”
2022-04-08 02:16:36 225
原创 SpringCloudAlibaba实战入门之入门介绍(一)
一、什么是SpringCloud在介绍Spring Cloud Alibaba之前,我们先简单的说一下Spring Cloud。提起微服务,不得不提 Spring Cloud全家桶系列,SpringCloud 是一系列框架的有序集合。Spring Cloud 通过 Spring Boot 风格的封装,屏蔽掉了复杂的配置和实现原理,简化了分布式系统集成设施的开发。Spring Cloud提供了服务治理、服务网关、智能路由、负载均衡、断路器、监控跟踪、分布式消息队列、配置管理等领域的解决方案。
2022-03-28 01:37:48 623
原创 SpringBoot学习之EasyExcel2.2.3导入导出Excel(二十一)
项目中经常需要解析Excel表格并读取数据,之前很多人用过POI,但是POI技术明显有点老旧,存在的问题很多,比如当文件较大时候就会存在内存溢出,而且代码臃肿设计落后,不支持注解式编程,这些问题都严重影响了POI的学习和使用。为了解决POI的不足,阿里巴巴推出了开源Excel解析工具EasyExcel,并且现在已经升级到EasyExcel2.x版本【关于EasyExcel1.x版本实例请看我之前的一篇文章或者网上其他网友】,2.x版本进一步优化精简了代码提高了易用性,加强...
2022-01-09 14:55:59 473
原创 SpringBoot学习之统一异常处理(二十)
异常处理是Java程序员最头痛的问题之一,存在的问题如下:有些异常是可以预料的,有些异常是无法及时预料到的,能预料的异常可以处理,那不能预料的异常怎么办? 预料到的异常每个人处理方式不一样,有的程序员会选择向上抛出,抛出了还要考虑有没有上层代码处理呢? 有的程序员选择自己手动处理异常,即使自己手动处理,每个程序员处理方式和处理结果也不一样返回的异常提示也不一样?那有没有办法呢,有!今天我们就来讲一下Java开发中的统一异常处理,彻底解决这上面三个恼火的问题。在学习本...
2021-12-17 02:10:13 711
原创 SpringBoot学习之统一JSON结构自动封装(十九)
SringBoot开发中经常涉及到前后端接口对接,后端需要把数据封装成固定JSON结构以方便前端更好的解析和使用,比如这样:常规操作是我们定义一个统一返回结构,在拿到数据以后自己手动封装一下,比如用下面这个结构:package com.xu.wemall.commons.utils;import com.xu.wemall.commons.enums.ResultEnum;import lombok.Data;import java.io.Serializa...
2021-12-03 01:45:47 629
原创 SpringBoot学习之Swagger3和开源升级界面(十八)
一、创建一个spring boot 项目二、 pom.xml里引入包<dependency> <groupId>io.springfox</groupId> <artifactId>springfox-boot-starter</artifactId> <version>3.0.0</version></dependency>三、创建SwaggerConfig配置.
2021-12-02 03:45:27 679
原创 SpringCloud学习之新一代网关Gateway实战体验(十五)
1.1SpringCloud Gateway 简介SpringCloud Gateway 是 Spring Cloud 的一个全新项目,该项目是基于 Spring 5.0,Spring Boot 2.0 和 Project Reactor 等技术开发的网关,它旨在为微服务架构提供一种简单有效的统一的 API 路由管理方式。SpringCloud Gateway 作为 Spring Cloud 生态系统中的网关,目标是替代 Zuul,在Spring Cloud 2.0以上版本中,没有对新版本的Zuu.
2021-11-27 00:11:02 126
原创 Springboot学习之线程池任务调度类ThreadPoolTaskScheduler(十七)
springboot中有一个bean,ThreadPoolTaskScheduler,可以很方便的对重复执行的任务进行调度管理;相比于通过java自带的周期性任务线程池ScheduleThreadPoolExecutor,此bean对象支持根据cron表达式创建周期性任务。...
2021-08-26 03:04:11 842
原创 SpringBoot学习之基于Log4j2的自定义日志初体验(三十)
对于一个Java程序员来说,创建一个SpringBoot项目重要性不言而喻,但是对于某些小白来说,仍然可能面临一些不可想象的困难,这里将所有我知道的总结如下。一、IDEA旗舰版【IDEA Ultimate Edtion】当你有办法搞到IDEA旗舰版j激活码或者买到正版的License时候,创建一个SpringBoot见会变得无比荒谬的简单1、File ----> New ------> Prject2、找到Spring Initializer,填写右边项...
2021-08-23 01:27:56 775
原创 SpringBoot学习之手把手教你怎么用IDEA实现远程调试(十六)
一般时候我们都是选择在本地打断点,然后启动debug调试程序,但是有时候可能本地调试没有毛病,但是远程运行就出现一些奇奇怪怪的问题,所以我们这个时候必须用到远程调试。以下操作是基于2021版IDEA和JDK1.8版本,项目是一个标准的SpringBoot项目。一、配置远程调试配置1、点击图中位置,打开Edit Configuration2、点击这里的+号,找到Remote JVM Debug3、配置远程调试二、启动你的项目通过SSH远程工具登...
2021-08-14 23:30:08 523
原创 CountDownLatch的介绍和使用
1、类介绍java.util.concurrent.CountDownLatch一个同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待。用给定的计数 初始化 CountDownLatch。由于调用了 countDown() 方法,所以在当前计数到达零之前,await 方法会一直受阻塞。之后,会释放所有等待的线程,await 的所有后续调用都将立即返回。这种现象只出现一次——计数无法被重置。如果需要重置计数,请考虑使用 CyclicBarrier。...
2021-06-18 02:50:52 337
原创 Java8-ThreadLocal的Lambda构造方式:withInitial
Java8中ThreadLocal对象提供了一个Lambda构造方式,实现了非常简洁的构造方法:withInitial。这个方法采用Lambda方式传入实现了 Supplier 函数接口的参数。写法如下:
2021-06-10 02:41:36 1058
原创 Java高级技术之List线程不安全的一点说明
1、List 是线程不安全的学过Java的朋友都知道List是线程不安全的,什么是线程不安全,多个线程同一时刻对同一个全局变量(同一份资源)做写操作(读操作不会涉及线程安全)时,如果跟我们预期的结果一样,我们就称之为线程安全,反之,线程不安全。...
2021-06-10 02:14:39 2062
原创 SpringBoot学习之Spring消息事件处理机制(十五)
1. 使用ApplicationEventPublisher 发布事件复制下面全部代码,右键包名,粘贴即可生成java类,执行即可看到效果。事件机制:需要自定义一个事件类继承ApplicationEvent;需要自定义一个监听器类实现ApplicationListener接口,或普通类的方法中使用@EventListener注解;使用默认发布器ApplicationEventPublisher发布即可;事件类不需要注入到IOC;监听器需要注入到IOC;ApplicationEventPubl
2021-06-04 03:11:03 681 1
原创 Spring Boot学习之Profile多环境的配置(十四)
Profile是Spring对不同环境提供不同配置功能的支持,可以通过激活 ,制定参数等方式快速切换环境多profile文件形式:--格式:application - {profile}.properties :eg :application-test.propertiesapplication-pro.properties多profile文档块模式:...
2021-06-01 03:52:48 455
原创 SpringBoot学习之四种读取properties和yml文件的方式(十三)
一、使用`@ConfigurationProperties`注解将配置文件属性注入到自定义配置对象类中(1)、首先定义配置对象
2021-05-30 02:39:07 246
转载 IDEA使用activiti bpmn流程设计器camunda-modeler
一、前言大家都知道,在开发工作流项目的时候,需要先画好.bpmn流程图文件,Activiti官方对Eclipse工具提供了默认的流程图设计插件,支持效果较好,但是如今大多数人都使用的IDEA开发工具,难道在做工作流项目的时候,为了设计流程图文件就要换成Eclipse去实现这个项目吗?或者说一个项目画图用Eclipse、编码用IDEA,不过确实有人这么干过,其实没必要啦。另外说明一下IDEA并不是没有流程设计图的插件,其实IDEA也有一款流程图设计器插件叫actiBPM,不过这个太不好用了,问题很多,有乱
2021-04-15 00:37:34 5483 2
原创 List<Map<Object, Object>>转Map<Object, List<Object>>代码实例
package chap1;import java.util.*;import java.util.stream.Collectors;public class MapDiffUtil { public static void main(String[] args) { /* *List<Map<String, Object>> 转Map<Object, Object> */ Lis.
2021-03-26 23:17:02 964
转载 spring 知识大纲
课程内容面向接口(抽象)编程的概念与好处 IOC/DI的概念与好处a)inversion of controlb)dependency injectionAOP的概念与好处 Spring简介 Spring应用IOC/DI(重要)a)xmlb)annotationSpring应用AOP(重要)a)xmlb)annotationStruts2.1.6 + Spring2.5.6 + Hibernate3.3.2整合(重要)a)opensessionInvi...
2021-01-28 00:54:42 218
转载 Java8常用新特性
一、Lamdba表达式 二、方法引用 三、Stream流 四、并行API Java8概述。Java8,也就是jdk7.8,是意义深远的一个新版本,是Java5之后一个大的版本升级,让Java语言和库仿佛获得了新生。新版本包含: 随着大数据的兴起,函数式编程在处理大数据上的优势开始体现,引入了Lambada函数式编程 使用Stream彻底改变了集合使用方式:只关注结果,不关心过程 .新的客户端图形化工具界面库:JavaFX 良好设计的日期/时间API 增强的并发/并行API
2020-12-27 02:28:58 184
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人