- 博客(154)
- 资源 (6)
- 收藏
- 关注
原创 Maven指定JDK
在使用 Maven 管理 Java 项目时,有时需要指定使用特定的 JDK 版本。这通常是因为项目需要与特定版本的 JDK 兼容,或者在不同的开发环境中需要确保使用正确的 JDK 版本。通常来说在IDEA工具中设置了正确的JDK版本,使用IDEA编译也不会有任何异常,但是使用mvn命令编译时则会出现异常。
2025-03-10 11:51:40
265
原创 Spring Security + OAuth2.0
协议为用户资源的授权提供了一个安全的、开放而又简易的标准(开放授权标准)。它允许用户授权第三方应用访问他们存储在另外的服务提供者上的信息,而不需要将用户名和密码提供给第三方应用或分享他们数据的所有内容。
2025-03-03 23:09:02
1167
1
原创 Spring Security+JWT 动态鉴权(6)
Component@Slf4j@Autowired@Override@Override> clazz) {@Overridelog.info("{} 对应的角色。//如果通过url关联权限为空,统一按没权限处理return 0;throw new AccessDeniedException("权限不足,无法访问");return 0;// 获取用户拥有的权限信息// 这里判断用户拥有的角色和该url需要的角色是否有匹配break;
2025-02-22 22:57:00
316
原创 Spring Security+JWT (5)
JWT字符串,字符之间通过"."分隔符分为三个子串。 每一个子串表示了一个功能块,总共有以下三个部分:JWT 头、有效载荷和签名。头部:JWT 头部分是一个描述 JWT 元数据的 JSON 对象,主要设置一些规范信息,签名部分的编码格式就在头部中声明。载荷:token中存放有效信息的部分,是 JWT 的主体内容部分,是一个 JSON 对象,包含需要传递的数据。比如用户名,用户角色,过期时间等,但是不要放密码,会泄露!1. 基本流程 认证:通过自定义一个用户名和密码登录的过滤器JwtT
2025-02-21 23:12:11
470
原创 SpringBoot中@Import和@ImportResource和@PropertySource
PropertySource是引入自定义配置文件(yml或properties),用于spring boot 配置文件(yml或properties)与实体属性映射。@ImportResource是引入spring配置文件.xml,它导入的是使用xml配置文件注入的对象。
2024-12-04 23:33:03
365
原创 Eureka和Zookeeper
特性ZooKeeperEureka主要功能分布式协调服务(锁、配置、同步等)服务发现和注册数据一致性强一致性(CP)弱一致性(AP)使用场景分布式系统的协调、配置管理、锁服务,它为 Hadoop、Hbase、Kafka 等知名分布式系统提供支持。云原生微服务架构中的服务发现。主要用于服务发现,它是 Spring Cloud 体系中的核心组件之一,与 Spring Boot 微服务应用框架紧密集成,提供服务注册与发现的功能。高可用性多副本数据复制多实例同步,自我保护机制。
2024-10-28 22:33:46
466
原创 Linux 命令集合
linux系统,主要分Debian系和RedHat系,还有其它自由的发布版本。1、Debian系主要有Debian,Ubuntu,Mint等及其衍生版本;2、RedHat系主要有RedHat,Fedora,CentOs等,3、其它有Slackware,Gentoo,Arch linux,LFS,SUSE等。4、如果开发用,推荐redhat系,业内公司的服务器多用centos,考虑到平时使用,那么就选择fedora,可以选择最新的发行版。
2024-08-24 18:04:03
963
原创 JAVA 异步编程(线程安全)二
多线程以及多进程改善了系统资源的利用率并提高了系统 的处理能力。然而,并发执行也带来了新的问题——死锁。所谓死锁是指多个线程因竞争资源而造成的一种僵局(互相等待),若无外力作用,这些进程都将无法向前推进。死锁是指两个或两个以上的线程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。
2024-07-19 22:33:09
1224
原创 JAVA 异步编程(异步,线程,线程池)一
虽然Thread可以创建线程,但是线程的创建销毁不能很好的控制,就会导致资源耗尽的风险,所以线程资源尽量通过线程池提供,不在应用中自行显示的创建线程,一方面是线程的创建更加规范,可以合理控制开辟线程的数量;另一方面线程的细节管理交给线程池处理,优化了资源的开销。
2024-07-16 22:32:15
2800
原创 docker 容器设置中文环境
默认情况下: 如果没有zh_CN.utf8就安装。方式2:1.3 写入 bash.bashrc 文件1.4 写入 profile 文件1.5 重启容器2. dockerfile中设置
2024-06-24 01:03:25
5670
原创 认证和授权详解
:用来验证某个用户是否具有访问系统的权限。如果认证通过,该用户就可以访问系统,从而创建、修改、删除、查询平台支持的资源。):用来验证某个用户是否具有访问某个资源的权限。如果授权通过,该用户就能对资源做 CRUD 等操作。
2024-06-19 23:01:16
449
原创 SpringCloud Netflix和SpringCloud Alibaba核心组件
流量控制就是限制业务访问的 qps(每秒处理请求数量),避免服务因流量突增而故障.比如有一个微服务能承受的最大 qps 是 2,也就是每秒钟最多处理两个请求,但是现在有一百个请求涌过来了,那他不得被达成筛子了,但是 sentinel 会根据这个 qps 的限制,去处理请求然后释放(这就像是有大量的水要涌入的时候,会先经过一个漏斗,通过这个漏斗,将水的流量限制住),这个时候,就可以有效的避免出现故障(超出的请求会被拦截,默认会报错,但也可以配置成 排队等待、预热)。如果断言为true,则匹配该路由。
2024-06-19 22:44:04
1312
2
原创 Python环境搭建
在原来的site-packages下添加一个mypath.pth文件,文件名没有要求,只要保证文件后缀是.pth就行,并且增加我们自定义配置的site-packages的路径。index-url是设置第三方库的镜像源,设置镜像是为了更快下载,这里设置为阿里云镜像,当然也可以不设置或使用其他镜像。target是第三方库的目标安装路径,这个必须自己设置否则通过pip安装的第三方库依然安装在默认路径下。查看site.py存放路径,site.py一般存放在Lib目录,并且修改site.py的文件。
2024-05-30 23:22:28
398
原创 JS实现远程请求
XMLHttpRequest 用于在后台与服务器交换数据。支持的数据类型:所有类型的数据资源,并不局限于 XML。XMLHttpRequest 支持的协议:HTTP,file,FTP。
2024-05-18 16:56:02
381
原创 Java文件写入的方式
Java 中的“流”是一种抽象的概念,也是一种比喻,就好比水流一样,水流是从一端流向另一端的,而在 Java 中的“水流”就是数据,数据会从一端“流向”另一端。根据流的方向性,我们可以将流分为输入流和输出流,当程序需要从数据源中读入数据的时候就会开启一个输入流,相反,写出数据到某个数据源目的地的时候也会开启一个输出流,数据源可以是文件、内存或者网络等。
2024-05-17 23:21:08
511
原创 SpringBoot全局设置请求路径增加前缀
1.增加自定义注解ApiRestController2. 替换@RestController到注解@ApiRestController3. 配置WebMvcConfigurer@Component@Overrideconfigurer。
2024-05-17 22:56:18
2779
原创 OpenApi 接口文档
Bean.name("许可协议").description("csdn博客")@Bean.build();秒懂SpringBoot之如何集成SpringDoc(全网目前最新最系统最全面的springdoc教程) - 知乎。
2024-05-17 21:20:36
1073
原创 正向代理与反向代理
正向代理是客户端的代理,服务器不知道真正的客户端是谁;反向代理是服务器的代理,客户端不知道真正的服务器是谁正向代理一般是客户端架设的;反向代理一般是服务器架设的正向代理主要是用来解决访问限制问题;反向代理则是提供负载均衡、安全防护等作用。二者都能提高访问速度。百度安全验证百度安全验证。
2024-04-22 23:07:50
888
原创 Python基础
1、顶层的包(类似文件夹)。2、各个模块(Python file)。3、类(class 定义类)。4、变量和方法(函数)。其中,方法中也可以定义变量(方法中的变量)
2024-04-02 22:42:53
2270
原创 正则表达式
匹配除"\r\n"之外的任何单个字符。若要匹配包括"\r\n"在内的任意字符,请使用诸如"[\s\S]"之类的模式。[]字符集。例如,"[abc]"匹配"plain"中的"a"。[^]反向字符集。匹配未包含的任何字符。例如,"[^abc]"匹配"plain"中"p","l","i","n"。[-]字符范围。匹配指定范围内的任何字符。例如,"[a-z]"匹配"a"到"z"范围内的任何小写字母。[^a-z反向范围字符。匹配不在指定的范围内的任何字符。
2024-04-02 22:15:05
1023
原创 Linux 反引号、单引号以及双引号的区别
单引号中所有的字符包括特殊字符($,'',`和\)都将解释成字符本身而成为普通字符。它不会解析任何变量,元字符,通配符,转义符,。
2024-03-28 22:29:39
1004
原创 Linux Sftp和Scp
1 scp 能将远程文件复制到另一个远程机,sftp 不能。sftp为 SSH的其中一部分,是一种传输档案至 Blogger 伺服器的安全方式2.scp 没有删除/创建远程目录功能,sftp 有。scp 在需要进行验证时会要求你输入密码或口令。3. FTP服务器用来存储文件,用户可以使用FTP客户端通过FTP协议访问位于FTP服务器上的资源。scp = secure copy (remote file copy program) ,是openssh带的,也是加密的。
2024-03-23 19:59:35
758
原创 查找jdk的安装
a :显示所有文件即目录(ls内定将文件名或目录名称开头为“.”的视为隐藏档,不会列出)-l: 除文件名称外,亦将文件形态、权限、拥有者、文件大小等资讯详细列出。-F: 在列出的文件名称后加一符号;例如可执行档则加“*”,目录则加“/”-A: 同-a,但不列出“.” (当前目录)及“…首先which java 然后将查找出来的结果ls -lrt。-r: 将文件以相反次序显示(原定依英文字母次序)。-R: 若目录下有文件,则以下之文件亦皆依序里列出。-t: 将文件依次建立时间之先后次序列出。
2024-03-13 23:35:21
304
原创 SpringBoot中的HttpServletRequest
javax..http.HttpServletRequest是SUN制定的Servlet规范,是一个接口,表示请求, 其父接口是 javax.servlet.ServletRequest。“ HTTP 请求协议”的完整内容都被封装到 request对象中。
2024-03-13 23:16:33
2662
原创 SpringBoot 过滤器,Servlet,拦截器,监听器
在实现上,基于Java的反射机制,属于面向切面编程(AOP)的一种运用,就是在service或者一个方法前,调用一个方法,或者在方法后,调用一个方法。拦截器是一个Spring的组件,归Spring管理,配置在Spring文件中,因此能使用Spring里的任何资源、对象,例如 Service对象、数据源、事务管理等,通过IoC注入到拦截器即可。在Spring构架的程序中,要优先使用拦截器。监听器用于监听web应用中某些对象、信息的创建、销毁、增加,修改,删除等动作的发生,然后作出相应的响应处理。
2024-02-29 22:51:49
955
原创 SpringBoot 使用Mock单元测试
测试一般分为两种黑盒测试和白盒测试。黑盒测试又称为功能测试或数据驱动测试,测试过程中,程序看作成一个黑色盒子,看不到盒子内部代码结构。白盒测试又称为结构测试或逻辑驱动测试,测试过程中,程序看作一个透明盒子,能够看清盒子内部的代码和结构,这样测试人员对程序代码的逻辑有所知晓。
2024-02-29 20:25:06
1953
原创 Security详解—自定义认证AuthenticationProvider(4)
MyAuthenticationProvider类主要用于用户的登录认证@Slf4j@Autowired@Autowired@Override//获取输入用户名//获取输入明文密码//根据用户名查询匹配用户//判断用户账户状态if (!throw new DisabledException("该账户已被禁用,请联系管理员");throw new LockedException("该账号已被锁定");
2023-06-18 22:38:24
391
原创 Security详解—自定义登录页面(3)
新建一个配置类WebSecurityConfig,并且继承WebSecurityConfigurerAdapter(如果WebSecurityConfigurerAdapter。@Autowired/*** formLogin() 默认使用了UsernamePasswordAuthenticationFilter* 默认使用了DaoAuthenticationProvider认证逻辑,使用configure可以配置UserDetailsService*/@Override。
2023-06-18 22:04:41
386
原创 Security 详解—实现原理(1)
Spring 是非常流行和成功的 Java 应用开发框架,Spring Security 正是 Spring 家族中的成员。Spring Security 基于 Spring 框架,提供了一套 Web 应用安全性的完整解决方案。
2023-06-18 21:50:26
3415
原创 JAVA 加密算法
公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。Base64 编码是从二进制到字符的过程,用 64 个字符来表示任意的二进制数据,常用于在 HTTP 加密,图片编码传输等。MD5、SHA、HMAC这三种加密算法,是非可逆加密,不可解密的加密方法。只能进行简单的加密。对称加密的意思就是信息收发都有相同的一把钥匙,消息的加密解密都用这进行。高级加密标准,是下一代的加密算法标准,速度快,安全级别高;
2023-06-17 19:47:34
1480
原创 jwt工具类
、Payload(数据体)、验证签名(Verify Signature)组成。其中,Header中的内容为加密信息以及Token的类别,Payload为用户数据、Verify Signature为校验数据。,是一种令牌生成算法。使用JWT能够保证Token的安全性,且能够进行Token时效性的检验。JWT共由三部分组成,分别是数据头(新建JwtUtil的工具类。
2023-06-10 23:46:03
1307
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人