![](https://img-blog.csdnimg.cn/20210127162716340.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
大后端
文章平均质量分 65
后端相关
解忧杂货铺Q
但行好事,莫问前程
展开
-
Spring Boot手把手教学(22): 如何从零搭建一个FastDFS分布式文件系统
1、前言在实际项目中,上传下载文件是很平常的事情,大多都是上传到项目本地,每个项目都是如此,繁琐且不方便。那么是否应该考虑建立一个独立的文件系统,供所有项目共用呢?这个章节我们介绍如何搭建一个FastDFS分布式文件系统。FastDFS 是一个开源的高性能分布式文件系统(DFS)。 它的主要功能包括:文件存储,文件同步和文件访问,以及高容量和负载平衡。主要解决了海量数据存储问题,特别适合以中小文件(建议范围:4KB < file_size <500MB)为载体的在线服务。FastDFS原创 2021-02-27 09:27:56 · 480 阅读 · 0 评论 -
【启动报错】Unable to start ServletWebServerApplicationContext due to missing ServletWebServerFactory bean
报错信息说的很清楚,找不到名叫ServletWebServerFactory的bean。线上代码肯定是没问题的,应该是本地运行问题解决原创 2022-06-14 23:43:09 · 5399 阅读 · 2 评论 -
SpringBoot java.lang.NoClassDefFoundError: org/eclipse/jetty/server/RequestLog$Writer
引入hive-jdbc之后,测试环境没问题,线上发布报错查询资料后发现应该是引入hive-jdbc的依赖里面带进了jetty-all的依赖导致冲突所以我们要排除掉冲突的依赖原创 2022-06-01 14:39:11 · 1060 阅读 · 1 评论 -
mybatis传入Integer类型的参数,当参数为0时,发现直接被过滤,问题解决
mybatis传入Integer类型的参数,当参数为0是,会被看做空字符串,所以不能空值判断不能用 !=”“之前是这么写的<sql id="where_condition"> <where> 1=1 <if test="isComplaint != null and isComplaint=''"> and is_complaint = #{isComplaint} <原创 2022-05-12 23:29:17 · 720 阅读 · 0 评论 -
java -jar data.jar 报错
☁ data [master] ⚡ java -jar data-1.0.0.jarException in thread "main" java.lang.UnsupportedClassVersionError: com/server/data/DataApplication has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the J原创 2022-04-27 17:07:31 · 499 阅读 · 0 评论 -
mvn dependency:tree zsh: command not found: mvn
☁ server [master] ⚡ mvn dependency:treezsh: command not found: mvnmvn 命令找不到,应该是maven指向问题方法一然后执行:☁ server [master] ⚡ source ~/.bash_profile☁ server [master] ⚡ mvn clean[INFO] Scanning for projects...[INFO][INFO] --------------------------&原创 2022-04-27 15:21:55 · 453 阅读 · 0 评论 -
mvn package报错: ‘dependencies.dependency.(groupId:artifactId:type:classifier)‘ must be unique: org.ap
'dependencies.dependency.(groupId:artifactId:type:classifier)' must be unique: org.apache.hive:hive-jdbc:jar -> version 1.1.0 vs 2.1.0 @ line 134, column 21这种情况就是提示org.apache.hive:hive-jdbc:jar 在pom里重复了,删除一个就行...原创 2022-04-27 14:16:14 · 3555 阅读 · 0 评论 -
Cannot access alimaven (http://maven.aliyun.com/nexus/content/repositories/central/) in offline
mvn clean 出现以下错误:Cannot access alimaven (http://maven.aliyun.com/nexus/content/repositories/central/) in offline原创 2022-04-26 21:38:28 · 878 阅读 · 0 评论 -
JAVA如何连接Hive
pom.xml<!-- https://mvnrepository.com/artifact/org.apache.hadoop/hadoop-common --><dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-common</artifactId> <version>2.7.3</version&.原创 2022-04-25 07:23:32 · 5732 阅读 · 0 评论 -
springBoot根据数据库一键生成Controller、Service、ServiceImpl和mapper
pom.xml <!-- 生成器 --> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-generator</artifactId> <version>3.3.2</version> </dependency> <!-- 生成器默认模版 --> <.原创 2022-04-24 21:52:34 · 1487 阅读 · 0 评论 -
SpringBoot:@DS解决动态数据源问题
动态切换数据源引入maven<!-- https://mvnrepository.com/artifact/com.baomidou/dynamic-datasource-spring-boot-starter --><dependency> <groupId>com.baomidou</groupId> <artifactId>dynamic-datasource-spring-boot-starter</arti原创 2022-04-24 21:43:45 · 10690 阅读 · 1 评论 -
Springboot 2.6.5 配置 Knife4j 报错 Failed to start bean ‘documentationPluginsBootstrapper‘
<!-- Knife4j接口文档 --><dependency> <groupId>com.github.xiaoymin</groupId> <artifactId>knife4j-spring-boot-starter</artifactId> <version>2.0.7</version></dependency>package com.server原创 2022-04-01 18:03:04 · 419 阅读 · 0 评论 -
LeetCode: 第二高的薪水
编写一个 SQL 查询,获取 Employee 表中第二高的薪水(Salary) 。+----+--------+| Id | Salary |+----+--------+| 1 | 100 || 2 | 200 || 3 | 300 |+----+--------+例如上述 Employee 表,SQL查询应该返回 200 作为第二高的薪水。如果不存在第二高的薪水,那么查询应返回 null。+---------------------+| SecondHig原创 2021-05-03 22:34:16 · 192 阅读 · 0 评论 -
LeetCode: 组合两个表
问题表1: Person+-------------+---------+| 列名 | 类型 |+-------------+---------+| PersonId | int || FirstName | varchar || LastName | varchar |+-------------+---------+PersonId 是上表主键表2: Address+-------------+---------+| 列名 .原创 2021-05-03 21:43:47 · 118 阅读 · 0 评论 -
Spring Boot手把手教学(21):返回数据给前端,后端如何过滤不需要的对象属性?
1、前言在实际的项目中,我们从数据库查出的数据并不是所有的字段要返回到前台,但是一般都是统一的实体,这个时候,就需要过滤一些不需要返回的对象属性。2、实现2.1、@JsonIgnore在实体中字段添加@JsonIgnore可以注释不需要的字段;@JsonIgnore注解用来忽略某些字段,可以用在变量或者Getter方法上,用在Setter方法时,和变量效果一样。这个注解一般用在我们要忽略的字段上@Data@EqualsAndHashCode(callSuper = false)publi原创 2021-02-26 10:46:26 · 3721 阅读 · 2 评论 -
Spring Boot手把手教学(20):统一参数校验,统一异常处理,让你摆脱大篇幅的if-else
1、前言在业务系统,参数校验是比较头疼的事情,有些实体类长达几十个字段,大篇幅的if-else,不仅让写代码的童鞋头疼,后续接收这个项目的人, 看到这些代码,估计更加头疼。那么如何避免这些冗余的代码呢?在Spring Boot我们可以使用Validation校验参数;<!-- 参数校验 --><dependency> <groupId>org.springframework.boot</groupId> <artifactId&原创 2021-02-26 10:43:59 · 694 阅读 · 0 评论 -
Spring Boot手把手教学(19):如何缓存数据, 减少数据库的访问频率?
1、前言在实际项目中,我们不仅需要实现应用的功能,也需要考虑整个应用的性能问题。当大量用户访问相同数据时,对数据库是个很大的考验。这时候如果使用数据缓存技术了,同样的数据就不需要通过访问数据库获取处理,在应用层面就可以拿到缓存数据,可以减轻数据库的压力、同时也能提高数据的响应速度。那么在Spring Boot中提供哪些缓存支持呢?Spring Framework中提供了对缓存数据的支持,核心是通过在方法中应用缓存方法,然后根据缓存中的已有可用信息来减少大量的执行次数。Spring Boot自动携带原创 2021-02-26 10:38:46 · 1532 阅读 · 0 评论 -
Spring Boot手把手教学(18):基于Redis和Redisson实现用户互踢功能,一个用户只能在一个浏览器登录
1、前言在项目中,同一个账户有时候会在多个地方登录,这个时候需要限制一个账户只能在一个客户端/浏览器登录,并在被踢出的浏览器/客户端作出消息通知;比如用户A在浏览器A登录成功后,他又在浏览器B登录该账户,这个情况,我们需要在浏览器A提示“当前账户已在别的地方登录”,并退出登录。消息通知是基于websocket的,互踢功能基于Redis+Redisson消息队列;那么该如何实现呢?2、实现思路思路消息通知消息通知是基于websocket的,具体代码可参考上一篇文章:Spring Bo原创 2021-02-26 10:32:57 · 2822 阅读 · 0 评论 -
Spring Boot手把手教学(17):websocket分析和前后端如何接入websocket
1、前言websocket一般用途为消息提醒,股票行情数据推送等等,有很多用途。我们这里简单举例理解websocket和如何前后端接入websocket;使用网络抓包分析软件。主要是截取网络封包,并尽可能显示出最为详细的网络封包资料。2、TCP三次握手TCP建立连接时,会有三次握手过程。下图是截获到的三次握手的三个数据包(虽然叫数据包,但是三次握手包是没有数据的)SYN:同步比特,建立连接;ACK:确认比特,置1表示这是一个确认的TCP包,0则不是;PSH:推送比特,当发送端PSH=1时,原创 2021-02-26 10:30:57 · 3317 阅读 · 0 评论 -
Spring Boot手把手教学(16):mysql8限制IP远程登录
1、前言mysql的连接,为了安全,一般都需要限制IP登录,无论是内网IP端,或者某些固定的IP;接下来让我们说下 如何限制IP登录;我们这里使用的Mysql8.0版本,其他版本的命令或许有所不同2、操作2.1 服务器登录mysql[root@10 /]# mysql -u root -p输入你的密码切换到mysql库mysql> use mysql;查看用户mysql> select user,host from user;这里可以看到所有用户原创 2021-02-26 10:26:01 · 1247 阅读 · 0 评论 -
Spring Boot手把手教学(15):RESTful api接口如何开启登录鉴权拦截和放行
1 前言在常规的业务开发中,切记不可把接口服务暴露给任何人都可以访问,不然别人可以任意查看或者修改你的数据,这是很严重的事情。除了常规从网段IP方面限制固定客户端IP的范围,接口本身也要增加安全验证,这里我们使用基于JWT的Token登录认证;问题是我们如果自定义控制,哪些接口是需要经过验证,哪些接口是不需要通过验证的呢?有人可能会说,直接全部验证不就可以了,何苦纠结。但是在真实的业务中,有些接口是不能强制校验的,比如一些用户分享到微信的那种接口,是不能增加验证,否则分享的页面无法正常显示这个时候我们原创 2021-02-26 10:23:02 · 4059 阅读 · 2 评论 -
Spring Boot手把手教学(14):如何对Spring Boot配置文件加密
文章目录1、前言2、`jasypt`加密3、安全性3.1 本地运行3.2 服务器部署4、踩坑指南1、前言如果Spring boot 的配置文件大多是明文 ,这样是不安全的;如果Mysql数据库的账号密码都是明文,安全性就降低了,就像是在裸奔一样,所以有必要对相关比较隐秘的数据进行加密,这样的话相对安全性高一点;这里我们采用jasypt对数据库的连接、账号和名称进行加密处理;2、jasypt加密依赖<!-- 配置文件内容加密--><dependency>原创 2021-02-26 10:20:03 · 1389 阅读 · 1 评论 -
Spring Boot手把手教学(13):如何自定义开启定时任务
文章目录1、前言2、添加自定义属性3、定时任务开关4、切换不同环境4.1、 dev4.2、test4.3、prod1、前言前面我们讲了定时任务,并且实例说明如何利用爬虫获取天气信息并定时发邮件提醒;那么假设我们有三种环境分别是:dev(本地开发环境)、test(UAT测试环境) 和 prod(生产环境);那么如何根据不同环境决定是否激活定时任务呢?如果不知道如何自定义三种环境,请参考之前的文章;2、添加自定义属性Pom.xml默认Dev环境<profiles>原创 2021-02-26 10:13:23 · 784 阅读 · 0 评论 -
Spring Boot手把手教学(12): 搭建文件服务器如何解决同时上传多个图片和下载的问题
文章目录1 后端上传图片接口逻辑2 前端多个文件上传如何传参在平时的业务场景中,避免不了,要搭建文件上传服务器,作为公共服务。一般情况,只做了单个文件的上传,实际业务场景中,却发现单个文件上传,并不能满足一些业务需求,因此我们需要解决如何写一个同时上传多个文件的接口,并返回可下载的文件地址;废话不多讲,不再从头建立一个Spring boot项目,如果不知道的话,请直接前往官网查看实例。下面我们以上传图片为例,示例相对简单,仅供参考:1 后端上传图片接口逻辑UploadController.jav原创 2021-02-23 08:37:04 · 421 阅读 · 1 评论 -
Spring Boot手把手教学(11):生成动态验证码并前后端校验
文章目录1 生成动态验证码图片2 前端调取接口3 返回 base64 字符串3 验证验证码最近需要生成一个动态的验证码,在登录页面使用,并在前后端进行校验;实现原理:后端生成动态二维码,存储在 session 里面;前端调取接口,展示在登录页面;前端登录时候,把验证码传给后端,后端和 session 里面的值进行对比。1 生成动态验证码图片新建一个 class类 ValidateCode:package hello;import org.apache.commons.io.File原创 2021-02-23 08:26:31 · 2653 阅读 · 3 评论 -
Spring Boot 多模块项目创建与配置
文章目录1、前言2、创建多模块2.1、创建父模块2.2、创建子模块3、多模块配置3.1、父pom3.2、子pom4、打包1、前言如果一个项目由一个父模块和若干个子模块构成,每个模块都对应着一个pom.xml。它们之间通过继承相互关联,都是maven管理的,那么这种就是多模块项目。多模块适用于一些比较大的项目,通过合理的模块拆分,实现代码的复用,便于维护和管理。比如有一些是common、utils等子模块提供公共服务。2、创建多模块2.1、创建父模块左上角选择File->New->P原创 2021-02-03 09:20:15 · 1340 阅读 · 0 评论 -
jenkins部署springBoot项目
原创 2021-02-02 11:35:40 · 460 阅读 · 0 评论 -
Docker-compose一键部署nginx、mysql 和 spring boot项目
文章目录1、前言2、安装3、配置1、前言Docker-Compose项目是Docker官方的开源项目,负责实现对Docker容器进行统一编排。可以统一对同一个项目所需要的多个容器进行管理发布,避免了一个个去发布的繁琐过程。一个工程当中可包含多个服务,每个服务中定义了容器运行的镜像,参数,依赖。一个服务当中可包括多个容器实例。比如:现在有一个项目使用,包括nginx、spring boot 和 mysql。一般部署:分别部署三个容器,nginx容器,jdk容器部署spring boot的jar包和原创 2021-02-01 15:56:24 · 1709 阅读 · 0 评论 -
Ubuntu/Debian系统,执行sh ./servise.sh出现:Syntax error: “(“ unexpected
最近部署docker-compose,引用的jdk是ascdc/jdk8。当前系统版本是ubuntu执行sh servise.sh 总是报错语法错误几经查找,终于知晓,原来Ubuntu/Debian为了加快开机速度,用dash代替了传统的bash,是dash默认执行了,解决方法就是取消dash。dpkg-reconfigure dash在选择项中选No再次执行没有问题了扩展怎么区分 CentOS|Ubuntu|DebianCentOS:[root@ /]# cat /etc/redh原创 2021-02-01 11:32:25 · 814 阅读 · 0 评论 -
Docker-compose提示server_1 exited with code 0
部署server[root@ /]# docker-compose up\...Starting server_1 ...Starting server_1 ... done...server_1 exited with code 0...docker容器执行任务完成后就会处于exited状态加上 stdin_open: true , tty: true 这两行参数,代码如下,其中 stdin_open 相当于 run 命令中的 -d, 其中 tty 相当于 run 命令中的 -i原创 2021-01-29 17:13:35 · 4305 阅读 · 0 评论 -
CentOS一键安装jdk1.8
#!/bin/sh# 从源码安装jdk108# 解压后包名App=jdk1.8.0_281# 安装包名称AppTar=jdk-8u281-linux-x64.tar.gz# 安装目录AppInstallBase=/opt# 安装目录下包名AppName=jdk# 脚本目录ScriptDir=$AppInstallBase/script# 安装包保存目录AppTarDir=$AppInstallBase/soft# build目录AppBuildBase=$AppInstallB原创 2021-01-21 16:05:39 · 835 阅读 · 0 评论 -
免登陆Oracle下载jdk
现在每次去oracle下载jdk, 都需要登录,并勾选同意协议,比较麻烦右键要下载的版本,然后复制链接如下:以jdk-8u281-linux-i586.tar.gz为例:https://download.oracle.com/otn/java/jdk/8u281-b09/89d678f2be164786b292527658ca1605/jdk-8u281-linux-i586.tar.gz# 需要把otn改成otn-pub[root@ script]# wget --no-cookies -原创 2021-01-21 13:27:14 · 3484 阅读 · 5 评论 -
Git提交代码提示1080 Failed Access
取消Git代理设置git config --global --unset http.proxygit config --global --unset https.proxy设置代理git config --global https.proxy https://127.0.0.1:1080原创 2021-01-06 13:28:00 · 191 阅读 · 0 评论 -
如何使用Docker容器安装FastDFS
文章目录1、前言2、Docker部署2.1、 `安装tracker容器`2.2 、`安装storage容器`2.3、部署顺序2.4、Storage测试2.5、总结1、前言之前有一篇文章,是在centos上从零搭建一个FastDFS分布式文件系统, 包括集群部署和java客户端连接。这里就不再赘述相关理论知识;感兴趣,可进传送门-如何从零搭建一个FastDFS分布式文件系统;通过以上文章可知,如果跨机器需要再部署一个FastDFS,似乎看起来有些许的麻烦,所以考虑使用Docker容器来部署一个Fast原创 2020-12-30 12:38:39 · 850 阅读 · 0 评论 -
Spring Boot手把手教学(22): 如何从零搭建一个FastDFS分布式文件系统
1、前言在实际项目中,上传下载文件是很平常的事情,大多都是上传到项目本地,每个项目都是如此,繁琐且不方便。那么是否应该考虑建立一个独立的文件系统,供所有项目共用呢?这个章节我们介绍如何搭建一个FastDFS分布式文件系统。FastDFS 是一个开源的高性能分布式文件系统(DFS)。 它的主要功能包括:文件存储,文件同步和文件访问,以及高容量和负载平衡。主要解决了海量数据存储问题,特别适合以中小文件(建议范围:4KB < file_size <500MB)为载体的在线服务。FastDFS原创 2020-12-30 09:54:03 · 672 阅读 · 0 评论 -
Spring Boot Thymeleaf模板引擎使用项目上下文ServletContext ,session,request等传递数据
com.docker.demo.controller.BaseController@Componentpublic class BaseController { /** * 获取request * * @return request */ public HttpServletRequest getRequest() { ServletRequestAttributes requestAttributes = (ServletR.原创 2020-12-17 17:48:05 · 973 阅读 · 0 评论 -
IDEA spring boot中 thymeleaf 语法不提示
分两步操作1、安装thymeleaf插件2、配置 html 文件 头部<!DOCTYPE html><HTML xmlns:th="http://www.thymeleaf.org">原创 2020-12-17 16:16:21 · 854 阅读 · 0 评论 -
Spring Boot项目html修改自动刷新
原创 2020-12-17 14:52:17 · 1470 阅读 · 0 评论 -
spring-boot使用thymeleaf html模板并传值
在springboot中@RestController注解相当于@ResponseBody + @Controller;如果只是使用@RestController注解Controller,则Controller中的方法无法返回jsp页面,或者html。使用@Controller 注解,在对应的方法上,视图解析器可以解析return 的jsp,html页面,并且跳转到相应页面若返回json等内容到页面,则需要加@ResponseBody注解模板配置在pom.xml中配置 <!-- thym原创 2020-12-17 14:33:04 · 1830 阅读 · 0 评论 -
spring Boot手把手教学(10): 前后端传参接收的N种方式
1、前言2、请求参数3、实例分析3.1 GET 路径参数3.2 GET 单个参数3.3 GET 接收参数为List3.4 POST单个接收参数3.5 POST参数为List4、完整代码1、前言实际项目中,大多数项目,前后端是分离的。前端发HTTP请求到后端Server,然后后端接收参数做相应业务逻辑。❝首先先说下请求类型:❞GETGET方法请求一个指定资源的表示形式. 使用GET的请求应该只被用于获取数据.HEADHEAD方法请求一个与GET请求的响应相同的响应,但没有响应体.POST原创 2020-12-09 13:17:54 · 1541 阅读 · 0 评论