- 博客(18)
- 收藏
- 关注
原创 Java基础(三)
而从实现线程变量传递的原理上来看,TTL做的实际上就是将原本与Thread绑定的线程变量,缓存一份到TtlRunnable对象中,在执行子线程任务前,将对象中缓存的变量值设置到子线程的ThreadLocal中以供run()方法的代码使用,然后执行完后,又恢复现场,保证不会对复用线程产生影响。:要注意线程池的复用问题,线程被回收后,再次使用时,线程之前的内容会一起带过去,造成数据污染,文中这种new线程的方式可以避免这个问题,不走线程池中提取线程。:使用子线程可以使用父线程的数据。:适合线程隔离场景使用。
2025-03-21 10:02:23
125
原创 Java基础(一)
使用HashMap的entrySet方法获取所有元素集合,再进行循环遍历,判定value值是否需要删除,再移除对应的key,但是需要注意的是for循环的底层使用的是迭代器Iterator,而HashMap是fail-fast原则的错误机制,所以遍历时删除元素会出现并发异常,可以使用CopyOnWriteArraySet封装一层,避免出现并发修改异常。问题:写操作性能较低,每一次写操作,都需要复制一份,内存占用成本增加,由于是并发遍历操作读取,可能会读到旧数据,没有时效性。compareTo为0表示相同。
2025-03-20 17:35:47
656
原创 Spring Cloud Gateway + Oauth2 实现统一认证和鉴权!
接下来我们就可以搭建网关服务了,它将作为Oauth2的资源服务、客户端服务使用,对访问微服务的请求进行统一的校验认证和鉴权操作。我们首先来搭建认证服务,它将作为Oauth2的认证服务使用,并且网关服务的鉴权功能也需要依赖它。最后我们搭建一个API服务,它不会集成和实现任何安全相关逻辑,全靠网关来保护它。接下来我们来演示下微服务系统中的统一认证鉴权功能,所有请求均通过网关访问。
2023-12-29 11:43:59
4194
5
原创 搭建一个简单的微服务
https://blog.youkuaiyun.com/m0_37951794/article/details/128221822
2023-12-04 22:07:37
469
原创 Springboot集成MyCat
地址:http://dl.mycat.org.cn/1.6.7.4/Mycat-server-1.6.7.4-release/Mycat-server-1.6.7.4-release-20200105164103-linux.tar.gz。转载自:https://blog.youkuaiyun.com/chinoukin/article/details/107182491。多插入几条数据,可以发现数据分散到db1、db2、db3的user表了。2、创建实体类,以操作数据库。4.编写Controller。
2023-11-12 14:31:43
373
1
原创 Springboot集成WebSocket
1、启动类上加上websocket启动注解。4、客户端发送ws协议数据控制器。2、websocket 配置。3、服务端监听消息处理器。2.注册ws请求处理器。
2023-11-11 15:15:41
205
1
原创 Springboot使用ftp传输文件
spring:ftp:/*** FTP服务器配置*/@Data@Slf4j/*** FTP IP地址*//*** FTP端口号*//*** FTP登录账号*//*** FTP登录密码*//*** FTP工作路径*//*** 连接 FTP 服务*/try {// 设置编码// 设置连接超时时间(单位:毫秒)// 连接// 登录if (!log.error("未连接到FTP,用户名或密码错误");// 拒绝连接。
2023-11-10 16:54:52
967
2
原创 JAVA项目中的IO流
pring框架在spring-web包中对文件上传进行了封装,大大简化了服务端代码,二、将前端的文件信息返回后端处理。一、将文件发返回给前端。
2023-11-10 16:28:00
69
1
原创 Springboot中线程池的配置与使用
一、application.yml中定义属性,启动类开启异步。二、创建配置的实体类,以备使用。四.Service的使用。
2023-11-10 15:42:18
951
1
原创 Springboot集成Redis
当标记在一个类上时表示其中所有的方法的执行都会触发缓存的清除操作。在支持Spring Cache的环境下,对于使用@Cacheable标注的方法,Spring在每次执行前都会检查Cache中是否存在相同key的缓存元素,如果存在就不再执行该方法,而是直接从缓存中获取结果进行返回,否则才会执行并将返回结果存入指定的缓存中。与@Cacheable不同的是使用@CachePut标注的方法在执行前不会去检查缓存中是否存在之前执行过的结果,而是每次都会执行该方法,并将执行结果以键值对的形式存入指定的缓存中。
2023-11-10 14:45:29
98
1
原创 Springboot集成RabitMQ
生产者写完之后,就写消费者端的代码,消费者很简单。maven依赖,yml文件配置和生产者一样。由于队列不存在,启动消费者报错的这个问题。然后根据业务放在需要用的地方,比如定时任务,或者接口。2.创建一个公共项目common,共享一些配置,比如队列主题,交换机名称,路由匹配键名称等等。这样启动生产者就会自动创建交换机和队列,不用等到发送消息才创建。这样,无论生产者还是消费者先启动都不会出现问题了~消费者需要加一点代码。
2023-11-08 22:20:37
158
1
原创 项目中Nginx的使用
我认为整理的不错的链接:https://blog.youkuaiyun.com/hyfsbxg/article/details/122322125。
2023-11-08 19:07:01
98
1
原创 Springboot集成Spring Security
其前身是Acegi Security,后来被收纳为Spring的一个子项目,并更名为了Spring Security。Spring Security的底层主要是 基于 Spring AOP 和 Servlet 过滤器 来实现安全控制,它提供了全面的安全解决方案,同时授权粒度可以在 Web请求级和方法调用级 来处理身份确认和授权。认证: 解决 "你是谁" 的问题-->解决的是系统中是否有这个“用户”(用户/设备/系统)的问题,也就是我们常说的“登录”。加密功能: 对密码进行加密、匹配等。
2023-11-08 12:47:45
104
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人