Is this you? As a journalist, you can create a free Muck Rack account to customize your profile, list your contact preferences, and upload a portfolio of your best work.
Claim your profile
Articles by import org.springframework.util.Assert
페이징 처리 구현하기
게시판, 쇼핑몰과 같은 필수 서비스를 구현하다보면 페이징 처리는 필수 요소이다. 게시글의 개수가 수없이 많아진다면 페이징 처리 없이 전체 글을 조회하는 것은 로딩 속도도 느려지고, 원하는 페이지를 찾기도 어려울 것이다. public class Post { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String title; private String content; private String tag; private int likeCount = 0; @CreatedDate private LocalDateTime createdAt; @LastModifiedDate private LocalDateTime updatedAt; @ManyToOne(fetch = FetchType.LAZY) private User user; } 다음과 같은 필드를 가지는 Post(게시판)이다.
python 注册nacos 进行接口规范定义
背景: 一般场景 python服务经常作为java下游的 算法服务或者 数据处理服务 但是使用http 去调用比较不灵活,通过注册到nacos上进行微服务调用才是比较爽的 1.定义feginapi的接口定义 java端 定义接口请求和响应 主要关注 CommonResult 结构 和 python要一直 ,不然序列号是有问题的 CommonResult<List<SocialRelationRefDTO>> 和python的 接口的结构要一致 @FeignClient(name = ApiConstants.PYTHON_WEB_SERVER) @Tag(name = "RPC 服务 - 调用py信息分析接口") public interface PythonInfoAnalysisApi { String PREFIX = "analysis"; @PostMapping(PREFIX + "/get_article_similar_relation_ref") CommonResult<List<SocialRelationRefDTO>>...
Springboot 中RedisTemplate使用scan来获取所有的key底层做了哪些事情
直接上代码,围绕着代码来讨论 redisTemplate.execute((RedisCallback<Object>) (connection) -> { Cursor<byte[]> scan = connection .scan(ScanOptions.scanOptions().count(2).match("*").build()); scan.forEachRemaining((bytes) -> { System.out.println(new String(bytes)); }); return null; }); 通过上述代码我们可以看到,可以通过迭代器来获取到redis中单库中所有的key,但这样底层是怎么做的呢?我们现在假定有两种方案去实现这种方案。 ① redis 客户端(jedis、lettuce)scan执行之后返回了所有的数据,迭代器next()每次都从数据集中取出一条消费。但这样有个疑点 => ScanOptions.scanOptions().count(2).match("*").build()...
MD5三种方式加密(16位大小、32位大小),Base64两种方式加解密_wx5a2e77007deac的技术博客_51CTO博客
清醒的人最荒唐 2024-01-02 09:47:04 文章标签 Java MD5 文章分类 Java 后端开发 ©著作权归作者所有:来自51CTO博客作者清醒的人最荒唐的原创作品,请联系作者获取转载授权,否则将追究法律责任 赞 收藏 评论 分享 举报
Spring Boot多级缓存实现方案
缓存,就是让数据更接近使用者,让访问速度加快,从而提升系统性能。工作机制大概是先从缓存中加载数据,如果没有,再从慢速设备(eg:数据库)中加载数据并同步到缓存中。 所谓多级缓存,是指在整个系统架构的不同系统层面进行数据缓存,以提升访问速度。主要分为三层缓存:网关nginx缓存、分布式缓存、本地缓存。这里的多级缓存就是用redis分布式缓存+caffeine本地缓存整合而来。 平时我们在开发过程中,一般都是使用redis实现分布式缓存、caffeine操作本地缓存,但是发现只使用redis或者是caffeine实现缓存都有一些问题: 一级缓存:Caffeine是一个一个高性能的 Java 缓存库;使用 Window TinyLfu 回收策略,提供了一个近乎最佳的命中率。优点数据就在应用内存所以速度快。缺点受应用内存的限制,所以容量有限;没有持久化,重启服务后缓存数据会丢失;在分布式环境下缓存数据数据无法同步;...
SpringBoot整合多数据源,并支持动态新增与切换(详细教程)_springboot多数据源配置和切换_程序猿羊的博客-CSDN博客
推荐文章: 1、springBoot对接kafka,批量、并发、异步获取消息,并动态、批量插入库表; 2、SpringBoot用线程池ThreadPoolTaskExecutor异步处理百万级数据; 3、java后端接口API性能优化技巧 4、SpringBoot+MyBatis流式查询,处理大规模数据,提高系统的性能和响应能力。 一、概述 在项目的开发过程中,遇到了需要从数据库中动态查询新的数据源信息并切换到该数据源做相应的查询操作,这样就产生了动态切换数据源的场景。为了能够灵活地指定具体的数据库,本文基于注解和AOP的方法实现多数据源自动切换。在使用过程中,只需要添加注解就可以使用,简单方便。(代码获取方式:见文章底部(开箱即用)) 二、构建核心代码 2.1、AbstractRoutingDataSource构建 package com.wonders.dynamic;import org.springframework.beans.factory.InitializingBean;import...
Java SpringBoot 加载 yml 配置文件中字典项
将字典数据,配置在 yml 文件中,通过加载yml将数据加载到 Map中 Spring Boot 中 yml 配置、引用其它 yml 中的配置。# 在配置文件目录(如:resources)下新建application-xxx 项目结构文件 application.yml server: port: 8088 application: name: VipSoft Env Demo spring: profiles: include: dic # 在配置文件目录(如:resources)下新建application-xxx 开头的yml文件, 多个文件用 "," 号分隔,不能换行 #性别字典 user-gender: 0: 未知 1: 男 2: 女 application-dic.yml 将字典独立到单独的yml文件中 #支付方式 pay-type: 1: 微信支付 2: 货到付款 在 resources 目录下,创建META-INF目录,创建 spring.factories文件, Spring Factories是一种类似于Java...
springboot websocket 配置超时关闭连接
客户端与服务器在用websocket通信的时候,如果客户端突然关闭网络或者直接关机,此时路由与服务器之间的链接还存在 在服务器端输入查看 netstat -anp | grep 5007 tcp6 0 0 192.168.0.121:5007 119.119.0.0:60944 ESTABLISHED 23585/java 若不给该客户端发信息,除非路由器重启,否则这个链接会一直存在,服务器会一直认为该链接存在,后果就是随着大连无用的tcp连接积累,服务器会报socket too many open files错误导致服务挂掉。 解决方法: 要求websocket客户端定期发送PING,服务器返回PONG,客户端意外断开的时候服务器发现在一段时间内没交互信息关闭该session。 通过读spring-websocket\5.3.24的源码并参考 源码...
Java Web 实现文件上传和下载接口功能
@ResponseBody @PostMapping("/upload") public ResponseVo upload(@RequestParam(value = "file", required = false) MultipartFile multipartFile) { File file=new File("上传到服务器的文件地址"); try { FileUtil.copy(multipartFile.getBytes(), file); } catch (IOException e) { return ResultUtil.error(); } return ResultUtil.success(); } 上传用post或者get请求都可以,这里代码中用post做的示例。 文件下载除了静态访问(及nginx、tomcat等服务器映射到后的文件web路径)下载以外 ,还可以通过流的方式下载,代码如下: /** * 下载 */ @PostMapping("/download") public void download(String fileName,...
Use Both JWT and Opaque Access Tokens With Spring Boot
How can one validate OAuth 2.0 access tokens? This question frequently comes up — along with the topic of validating JSON Web Tokens (JWT) based access tokens— however, this is NOT part of the OAuth 2.0 specification. JWTs are used so commonly that Spring Security supported them before adding support for remotely validating tokens. This article will introduce how to build a simple application that utilizes both types of validation. You can also follow along by watching videos on our YouTube channel.
Show More
loading
Actions
Is this you?
As a journalist, you can create a free Muck Rack account to customize your profile, list your contact preferences, and upload a portfolio of your best work.Get in touch with import
Contact import, search articles and posts on X, monitor coverage, and track replies from one place.
Learn more about Muck Rack