java

SpringBoot Web详解静态资源规则与定制化处理

2022-06-26
目录 1.相关概念 2.静态资源目录 3.静态资源访问前缀 4.欢迎页支持 5.自定义favicon 6.源码分析 1.相关概念 Spring Boot 默认为我们提供了静态资源处理,使用 WebMvcAutoConfiguration 中的配置各种属性. 建议使用Spring Boot的默认配置方式,如果需要特殊处理的再通过配置文件进行修改. 如果想要自己完全控制WebMVC,就需要在@Configuration注解的配置类上增加@EnableWebMvc, 增加该注解以后WebMvcAuto

SpringBoot参数校验之@Validated的使用详解

2022-06-26
目录 简介 依赖 用法1:不分组 代码 测试 用法2:分组 代码 测试 简介 说明 本文用示例说明SpringBoot的@Validated的用法. 依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-validation</artifactId> </dependency> 它里边依赖了hibernat

Java实现优雅的参数校验方法详解

2022-06-26
目录 一.引子 二.如何优雅地校验参数 2.1 官方指导意见 2.2 注解用法说明 一.引子 要对方法的参数进行校验,最简单暴力的写法是这个样子: public static void utilA(String a,BigDecimal b){ if (StringUtils.isEmpty(a)){ System.out.println("a不可为空"); return; } if (b == null){ System.out.println("b不可为空");

SpringBoot详细讲解yaml配置文件的用法

2022-06-26
目录 1.基本语法 2.数据类型 3.代码测试 4.开启补全提示 1.基本语法 key: value:kv之间有空格 大小写敏感 使用缩进表示层级关系 缩进不允许使用tab,只允许空格 缩进的空格数不重要,只要相同层级的元素左对齐即可 '#'表示注释 字符串无需加引号,如果要加,单引号’'.双引号""表示字符串内容会被 转义.不转义 2.数据类型 1.字面量:单个的.不可再分的值.date.boolean.string.number.null k: v 2.对象:键值对的集合.map.

FeignClient如何通过配置变量调用配置文件url

2022-06-26
目录 通过配置变量调用配置文件url 调用指定的动态URL 1 创建demo1服务 2 创建demo2服务 测试 通过配置变量调用配置文件url 1.application.yml 配置文件配置参数 feign:   sys: http://127.0.0.1:8777 2.ISysFeignClient.java 使用@FeignClient时配置 @FeignClient(value = "sys",url = "${feign.sys}") public in

SpringBoot整合Mybatis-plus的具体过程使用

2022-06-26
目录 1.MyBatisX插件 2.引入依赖 3.编写配置 4.编写接口 5.运行测试 6.完整代码 1.MyBatisX插件 在使用mybatis或者mybatis-plus时,我们可以安装IDEA的MyBatis的插件 - MyBatisX, 这样我们就可以实现点击接口跳转到sql文件, 点击sql文件可以跳转到接口的功能, 很方便.这个插件的功能还有很多, 可以查看MyBatis-Plus官网 安装方法:打开 IDEA,进入 File -> Settings -> Plugins -&g

SpringBoot通过@MatrixVariable进行传参详解

2022-06-26
目录 1.相关概念 2.开启矩阵变量 3.代码测试 1.相关概念 语法: 请求路径:/person/info;name=lisi;hobbies=basketball,football,tennis不同变量用分号相隔, 一个变量有多个值则使用逗号隔开 SpringBoot默认是禁用了矩阵变量的功能 手动开启原理: 对于路径的处理, UrlPathHelper的removeSemicolonContent设置为false,让其支持矩阵变量的. 矩阵变量必须有url路径变量才能被解析, 也就是/pe

利用Java连接Hadoop进行编程

2022-06-26
目录 实验环境 实验内容 测试Java远程连接hadoop 实验环境 hadoop版本:3.3.2 jdk版本:1.8 hadoop安装系统:ubuntu18.04 编程环境:IDEA 编程主机:windows 实验内容 测试Java远程连接hadoop 创建maven工程,引入以下依赖: <dependency> <groupId>org.testng</groupId> <artifactId>testng</artifactId> <

Java递归实现评论多级回复功能

2022-06-26
目录 评论实体 添加非回复评论 递归添加回复评论 结果展示: github 源码 最近工作需要做一个评论功能,除了展示评论之外,还需要展示评论回复,评论的回复的回复,这里就用到了递归实现评论的多级回复. 评论实体 数据库存储字段: id 评论id.parent_id 回复评论id.message 消息.其中如果评论不是回复评论,parent_id 为-1. 创建一个评论实体 Comment: public class Comment { /** * id */ private Integer i

MybatisPlus之likeRight的用法

2022-06-26
目录 likeRight的用法 使用like与likeright方法查询信息的踩坑 案例 likeRight的用法 在使用Mybatis-plus的时候,使用like方法发现匹配的方法和自己想的相反,特此记录下: 使用场景: 我想要查询分类的某一层级下的订单,如下图,我想查询所有“男装”订单 那么,如果是写SQL查询就是这样 select xx,xx from order_info where category_id like '10,20%'; 可是,项目如果使用的是Mybatis-plus,

JAVA实现Base64编码的三种方式

2022-06-25
目录 定义: 二进制文件可视化 sun 包下的 BASE64Encoder apache 包下的 Base64 util 包下的 Base64 (jdk8) 定义: 二进制文件可视化 Base64 是一种能将任意二进制文件用 64 种字元组合成字串的方法, 彼此之间是可以互相转换的. 也常用来表示字串加密后的内容, 例如电子邮件 (很多文本混杂大量 加号./.大小写字母.数字和等号,一看就知道是 Base64) Base64 编码步骤: 第一步,将每三个字节作为一组,一共是24个二进制位 第二步

SpringBoot项目部署到阿里云服务器的实现步骤

2022-06-25
目录 一.申请阿里云服务器 二.Xshell 的安装使用 三.云服务器上jdk的安装 四.linux云服务器安装mysql 五.部署SpringBoot项目 SpringBoot项目部署到阿里云linux服务器全流程 文章里所有需要的软件.jdk.mysql.xshell等下载地址: Xshell 5 下载地址:https://www.jb51.net/softs/56322.html jdk下载地址:https://www.jb51.net/softs/698365.html tomcat下载

详解Spring&nbsp;Security如何在权限中使用通配符

2022-06-25
目录 前言 1. SpEL 2. 自定义权限该如何写 3. 权限通配符 4. TienChin 项目怎么做的 前言 小伙伴们知道,在 Shiro 中,默认是支持权限通配符的,例如系统用户有如下一些权限: system:user:add system:user:delete system:user:select system:user:update … 现在给用户授权的时候,我们可以像上面这样,一个权限一个权限的配置,也可以直接用通配符: system:user:* 这个通配符就表示拥有针对用户的

教你一步到位部署运行MyBatis3源码(保姆级)

2022-06-25
目录 源码部署 下载 编译安装 idea导入 demo测试 总结 源码部署 下载 mybatis3中文网址:mybatis.org/mybatis-3/z… mybatis3下载地址:github.com/mybatis/myb… mybatis父工程下载地址:github.com/mybatis/par… 点击链接下载zip包,注意对应版本(本文为稳妥起见下载了前人趟过坑的mybatis3的3.5.3版本). 该项目pom文件中有引入mybatis-parent工程,需按照对应版本下载,切记!

FeignClient中name和url属性的作用说明

2022-06-25
目录 name和url属性的作用 定义 场景 解释 @FeignClient注解属性 vaule和name 其实是一个属性 关于调用目前有两种 name和url属性的作用 定义 feign是声明式的web service客户端,它让微服务之间的调用变得更简单了,类似controller调用service. Spring Cloud集成了Ribbon和Eureka,可在使用Feign时提供负载均衡的http客户端. 场景 通过feign调用Eureka上注册的服务,需要指定什么属性? 解释 nam

Mybatis-Plus条件构造器select方法返回指定字段方式

2022-06-25
目录 条件构造器select方法返回指定字段 条件构造器select用法 实例 问题解决 Mybatis-Plus修改指定字段 通用解决方案 条件构造器select方法返回指定字段 条件构造器select用法 1.返回特定的几个字段 select(字段…) 2.排除某几个字段 select(entiyClass,predicate判断) 3.分组聚合函数 select(“聚合函数”) 搭配service的.listMaps方法,将返回的数据封装到map中避免了多余字段的返回 实例 说明 :以下代

Feign利用自定义注解实现路径转义详解

2022-06-25
目录 背景 解决方案 最后 背景 近期由于项目中需要,所以需要通过Feign封装一个对Harbor操作的sdk信息. 在调用的过程中发现,当请求参数中带有"/"时,Feign默认会将"/"当成路径去解析,而不是当成完整的一个参数解析,实例如下 请求路径为:api/v2.0/projects/{projectName}/repositories 注解参数为:@PathVariable("projectName") 正常请求为:api/v2.0/pr

SpringBoot图文并茂讲解依赖管理的特性

2022-06-25
目录 1.父依赖parent介绍 2.修改默认版本号 3.starter场景启动器 1.父依赖parent介绍 pom文件中含有父依赖 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.3.4.RELEASE</version> </pa

springboot实现mock平台的示例代码

2022-06-25
目录 一.实现场景: 1.1请求同一个接口,不同的传参/ip返回的结果不一样. 1.2 返回的结果不是写死的,是动态数据,需要对数据进行处理 1.3 回调能力 1.4响应时间 1.5 hook参数 1.6 透传请求 二.依赖 三.开始写 3.1 新建一个controller,简单的建一个服务,试试是否能ping通 3.2   新建MockController1,/** 这里指的是任意的URI 一.实现场景: 1.1请求同一个接口,不同的传参/ip返回的结果不一样. 数据的匹配 以create_a

Java中的Semaphore如何使用

2022-06-25
目录 简介 简述实现原理 方法介绍 案例分析 适用场景 简介 semaphore中文意思既是信号量,它的主要功能就是用来控制某个资源同时被访问的线程数. 为了控制某块资源的并发访问量时,可以使用Semaphore对象中的acquire()方法获取访问令牌,如果Semaphore对象访问令牌已发完,那么当前获取令牌的线程将会进入阻塞,带其他线程进行release()释放令牌时,当前线程才有机会获得令牌从而拥有访问权限. 简述实现原理 Semaphore实际上是一种共享锁,因为它允许多个线程并发获取