- 博客(22)
- 收藏
- 关注
原创 在自媒体微服务中使用过滤器解析header数据并设置到当前线程中
在自媒体微服务中使用过滤器解析header数据并设置到当前线程中过滤器package com.heima.wemedia.filter;import com.heima.utils.WmThreadLocal;import org.springframework.core.annotation.Order;import org.springframework.web.filter.GenericFilterBean;import javax.servlet.FilterChain;impo
2021-08-23 19:29:31
324
原创 FastDFS分布式文件管理工具
FastDFS是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。特别适合以文件为载体的在线服务,如相册网站、视频网站等等。FastDFS为互联网量身定制,充分考虑了冗余备份、负载均衡、线性扩容等机制,并注重高可用、高性能等指标,使用FastDFS很容易搭建一套高性能的文件服务器集群提供文件上传、下载等服务。FastDFS 架构包括 Tracker server 和 Storage server。客户端请求
2021-08-22 15:14:59
1090
原创 springColud分布式事务阿里巴巴seata
Seata Server端环境准备(1)从官网上下载seata server端的程序包下载地址:https://github.com/seata/seata/releases
2021-08-21 17:53:48
182
原创 feign远程调用
修改pom文件,加入依赖 <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-openfeign</artifactId></dependency>修改引导类,添加注解@EnableFeignClients开启远程调用@SpringBootApplication@EnableD
2021-08-20 21:19:17
159
原创 SpringColud全局过滤器实现jwt校验(在网关进行拦截过滤)
流程图思路分析:用户进入网关开始登陆,网关过滤器进行判断,如果是登录,则路由到后台管理微服务进行登录用户登录成功,后台管理微服务签发JWT TOKEN信息返回给用户用户再次进入网关开始访问,网关过滤器接收用户携带的TOKEN网关过滤器解析TOKEN ,判断是否有权限,如果有,则放行,如果没有则返回未认证错误在网关微服务中新建全局过滤器:第一步,准备工具类把heima-leadnews-utils模块中的AppJwtUtil类拷贝到网关模块下,如下图:第二步,编写全局过滤器pack
2021-08-19 18:52:34
525
原创 注册nacos微服务
在微服务中引依赖<dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency>在微服务中的application.yml文件中加入配置spring: cloud: nacos: disco
2021-08-19 18:45:05
100
原创 搭建gatway网关微服务
(1)创建heima-leadnews-admin-gateway微服务引依赖pom文件<dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-gateway</artifactId> </dependency>
2021-08-19 18:38:32
323
原创 BCrypt密码加密
在用户模块,对于用户密码的保护,通常都会进行加密。我们通常对密码进行加密,然后存放在数据库中,在用户进行登录的时候,将其输入的密码进行加密然后与数据库中存放的密文进行比较,以验证用户密码是否正确。 目前,MD5和BCrypt比较流行。相对来说,BCrypt比MD5更安全。BCrypt 官网http://www.mindrot.org/projects/jBCrypt/(1)我们从官网下载源码(2)新建工程,将源码类BCrypt拷贝到工程(3)新建测试类,main方法中编写代码,实现对密码的加密
2021-08-17 18:24:55
388
原创 token(jwt)加密解密工具类
jwt加密解密工具类步骤引jwt依赖<dependency> <groupId>io.jsonwebtoken</groupId> <artifactId>jjwt</artifactId></dependency>调用工具类直接调用方法直接加密解密package com.heima.utils.common;import io.jsonwebtoken.*;import javax.crypto.S
2021-08-17 16:57:58
1241
原创 md5加密
public class Md5 { public static void main(String[] args) { String password="123456"; //盐值 String yan="789"; String s = DigestUtils.md5DigestAsHex((password+yan ).getBytes()); System.out.println(s); //解密就
2021-08-17 16:23:44
139
原创 全局异常处理器
使用原理代码实现package com.heima.common.excption;import com.heima.model.common.dtos.ResponseResult;import com.heima.model.common.enums.AppHttpCodeEnum;import lombok.extern.log4j.Log4j;import lombok.extern.log4j.Log4j2;import org.springframework.web.bind
2021-08-17 12:37:32
109
原创 rocketMq:使用步骤
第一步:引入rocketMq相关依赖<!--RocketMQ相关--><dependency> <groupId>org.apache.rocketmq</groupId> <artifactId>rocketmq-spring-boot-starter</artifactId></dependency><dependency> <groupId>org.apache.
2021-08-10 19:24:40
257
原创 jwt加密,和解密
第一步,定义一个秘钥#秘钥jwt.secret= 76bd425b6f29f7fcc2e0bfc286043df1 //引入秘钥 @Value("${jwt.secret}") private String secret;第二步,加密 //生成tonken //把id加成秘钥 Map<String,Object> claims=new HashMap<>(); claims.put("id",use
2021-08-04 00:09:28
1488
原创 请求第三方阿里发送验证码
第一步,发送验证码 public String sendSms(String mobile) { DefaultProfile profile = DefaultProfile.getProfile(this.aliyunSMSConfig.getRegionId(), this.aliyunSMSConfig.getAccessKeyId(), this.aliyunSMSConfig.getAccessKeySecret()); IA
2021-08-04 00:03:07
337
原创 restTemplate远程连接
定义配置类交给spring管理import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.http.client.ClientHttpRequestFactory;import org.springframework.http.client.SimpleClientHttpRequest
2021-08-03 23:54:17
172
原创 SpringBoot统一校验token,编写拦截器
在之前的开发中,我们会在每一个Service中对token做处理,相同的逻辑一定是要进行统一处理的,该如何处理呢?由于程序是运行在web容器中,每一个HTTP请求都是一个独立线程,也就是可以理解成我们编写的应用程序运行在一个多线程的环境中,那么我们就可以使用ThreadLocal在HTTP请求的生命周期内进行存值、取值操作。说明:用户的每一个请求,都是一个独立的线程图中的TL就是ThreadLocal,一旦将数据绑定到ThreadLocal中,那么在整个请求的生命周期内都可以随时拿到Thread
2021-07-30 20:26:55
1387
原创 SpringBoot采用拦截器进行redis缓存命中(自定义注解+拦截器+向redis中加数据)
实现思路:通过拦截器实现对请求的拦截,在拦截器中实现缓存的命中。通过ResponseBodyAdvice进行对响应的拦截,可以将数据缓存到Redis中。考虑到,不能对于所有的请求都一刀切,所以需要创建@Cache注解进行标记,只有标记的Controller才进行缓存处理。缓存的处理中,仅针对GET请求处理,其他的请求均不做处理。第一步:自定义注解package com.tanhua.server.utils;import java.lang.annotation.*;@Target
2021-07-30 20:13:14
964
原创 No appenders could be found for logger
打开官网:http://logging.apache.org/log4j/1.2/faq.html#noconfig翻译出来大概就是:当找不到默认配置文件log4j.properties和log4j.xml,并且应用程序不执行显式配置时,就会发生这种情况。log4j使用thread.getContextClassLoader().getResource()定位默认配置文件,不直接检查文件系统。了解放置log4j.properties或log4j.xml的适当位置需要了解正在使用的类加载器的搜索策.
2021-07-29 11:02:55
779
原创 SLF4J: Class path contains multiple SLF4J bindings.警告解决
SLF4J: Class path contains multiple SLF4J bindings.SLF4J: Found binding in [jar:file:/G:/repo/repo-mvn-qingmu/ch/qos/logback/logback-classic/1.2.3/logback-classic-1.2.3.jar!/org/slf4j/impl/StaticLoggerBinder.class]SLF4J: Found binding in [jar:file:/G:/re
2021-07-29 10:58:40
6700
原创 报错 com.mongodb.MongoSocketOpenException: Exception opening socket
发现原因 我们的项目是父子项目,父项目是别人建的 里面添加 mongodb 的 starter ,而我的子项目并不需要连接 mongodb我也没有配置 mongodb 的信息。解决办法,修改启动类注解@SpringBootApplication() - > @SpringBootApplication(exclude = MongoAutoConfiguration.class)...
2021-07-29 10:52:18
241
原创 docker错误:Got permission denied while trying to connect to the Docker daemon socket at....
解决方案:
2021-07-21 19:17:04
45
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人