
Springboot
文章平均质量分 61
heromps
这个作者很懒,什么都没留下…
展开
-
Spring 的三级缓存机制
创建过程中为了解决循环依赖的一种策略。通过三级缓存,Spring 可以提前暴露未完全初始化的对象,避免循环依赖导致的无限递归错误。Spring 的核心实现位于 DefaultSingletonBeanRegistry。三级缓存机制帮助 Spring 处理。Spring IOC 容器的。引发的循环依赖问题,但对于。Spring 在处理。的循环依赖无能为力。原创 2024-10-21 16:57:36 · 933 阅读 · 0 评论 -
ubantu中nacos启动报错
[是bash的扩展特性,而不是所有 shell 的标准特性。为了避免修改 shebang 行:将/bin/sh替换为/bin/bash。使用 POSIX 兼容的:将[[替换为,确保脚本在任何 POSIX 兼容的 shell 中都能正常运行。明确使用bash来执行脚本:直接使用来运行脚本。根据你的具体需求和环境选择合适的解决方案,可以有效避免该错误的发生。原创 2024-08-30 21:02:24 · 668 阅读 · 0 评论 -
探索微服务架构中的动态服务发现与调用:使用 Nacos 与 Spring Cloud OpenFeign 打造高效订单管理系统
本文通过一个完整的电商系统示例,展示了如何使用 Spring Cloud Alibaba Nacos 进行服务注册与发现,使用 OpenFeign 进行声明式服务调用,以及使用 Spring Cloud LoadBalancer 实现负载均衡。通过 Nacos、OpenFeign 和 LoadBalancer 的协同工作,我们能够轻松构建一个稳定、可靠且可扩展的微服务架构。希望本文的示例能够为你在实际项目中应用这些技术提供参考。原创 2024-08-26 17:31:45 · 1290 阅读 · 0 评论 -
高效生成短链接:利用 MurmurHash 和 Base62 编码的实践指南
MurmurHash是一种非加密的高效哈希函数,由 Austin Appleby 开发。它主要用于哈希表和数据分布等场景。Base62编码是一种将数据压缩成更短字符串的编码方式,它使用 62 个字符:0-9、A-Z 和 a-z。Base62 编码广泛用于生成简短、可读性强的标识符。通过结合使用MurmurHash和Base62编码,我们可以高效生成短链接,解决长 URL 带来的不便。这种方法不仅适用于 URL 缩短,还可以广泛应用于生成唯一标识符和缓存键等场景。原创 2024-08-26 10:57:50 · 1182 阅读 · 0 评论 -
解锁 Redis 力量:深入了解 RedissonClient 的高效用法
Redisson是 Java 语言中功能最全面的 Redis 客户端之一,支持 Redis 的各种数据结构操作,同时提供了丰富的分布式功能,如分布式锁、分布式集合和分布式队列。它旨在使 Redis 的集成变得更简单高效。是一个功能强大的 Redis 客户端库,支持 Redis 的各种基本操作和高级功能。通过合理配置和使用Redisson,你可以在 Java 应用中高效地利用 Redis 提供的服务,并解决分布式环境中的复杂问题。希望本文提供的详细示例和注释能够帮助你更好地理解和应用。原创 2024-08-26 10:56:37 · 3017 阅读 · 0 评论 -
巧用延迟队列:高效解决电商订单超时难题
订单超时处理在电商平台中至关重要,而延迟队列为我们提供了一种高效、简洁的解决方案。通过使用延迟队列,我们可以有效降低系统复杂性,提升处理性能,并更好地满足用户体验。延迟队列的应用不仅限于订单超时处理,它还可以被广泛应用于需要定时执行任务的各种场景。希望本文能帮助你更好地理解和应用延迟队列,从而提升系统的稳定性和性能。原创 2024-08-25 10:50:15 · 603 阅读 · 0 评论 -
Redis Stream 助力:打造实时用户行为日志处理平台
是 Redis 5.0 引入的一种新数据结构,旨在处理日志类消息。它不仅支持消息的生产与消费,还允许创建消费组,使得多个消费者可以共同处理消息。这使 Redis Stream 适用于实时数据流处理场景,如用户行为日志的收集和分析。通过这篇博客,我们展示了如何利用 Redis Stream 实现一个简易的用户行为日志收集与处理系统。虽然这个示例较为简单,但它展示了 Redis Stream 在实时数据流处理中的强大功能。原创 2024-08-24 11:55:56 · 1091 阅读 · 0 评论 -
从输入 URL 到页面显示:深入解析浏览器加载过程
从输入 URL 到最终页面显示,整个过程涉及 DNS 解析、TCP 连接建立、HTTP 请求与响应、页面渲染等多个环节。每一步都需要多个协议与机制的协调工作,以确保页面能够准确无误地呈现给用户。这篇博客详细解读了每个环节的技术细节,帮助你深入理解浏览器与服务器之间的互动过程。希望通过这篇文章,你对 Web 的工作原理有了更清晰的认识。如果你有更多问题或想进一步探讨,欢迎在评论区交流!原创 2024-08-20 10:32:19 · 480 阅读 · 0 评论 -
深入理解Kafka消费者偏移量管理:如何确保事件已处理
本文将深入探讨Kafka中消费者如何通过偏移量机制确认事件已被处理,并介绍不同的偏移量提交策略及其优缺点。根据具体需求选择合适的偏移量提交策略,可以在提高处理性能的同时保证消息的可靠处理。当消费者重新启动时,Kafka会根据最后提交的偏移量继续消费未处理的消息。通过批量处理消息并在处理完成后一次性提交偏移量,可以减少提交次数,提高性能,同时避免在处理单条消息失败时丢失多条消息。在每条消息处理完成后立即提交其偏移量,可以确保消息处理与偏移量提交紧密关联,即使在系统崩溃后也不会丢失已处理的消息。原创 2024-08-20 00:20:13 · 1034 阅读 · 0 评论 -
深入理解Spring Boot中的AOP应用:从基础组件到高级功能的实现
通过本文对静态代理、动态代理以及AOP在Spring Boot中的应用的详细介绍,可以看出代理模式在Java编程中的广泛应用。从静态代理的显式代码实现,到动态代理的运行时生成代理对象,再到AOP的高度模块化设计,代理模式不仅提升了代码的可维护性,还为横切关注点的处理提供了有效的手段。日志记录是AOP的典型应用,通过在方法执行前后插入日志记录,开发者可以避免重复的日志代码,提高代码的整洁度。Spring的事件驱动模型通过AOP实现,允许开发者定义事件监听器,并在特定事件发生时自动调用相应的方法。原创 2024-08-20 00:09:47 · 1259 阅读 · 0 评论 -
代理模式与AOP实现原理:从静态代理到动态代理再到AOP
静态代理是指在代码中显式地创建代理类,代理类与目标对象实现相同的接口,并通过代理类的方法对目标对象进行增强。静态代理的优点在于可以在不修改目标对象的前提下扩展其功能,然而其缺点是需要实现与目标对象相同的接口,导致代理类繁多,增加了维护成本。动态代理与静态代理不同,它是在运行时动态生成代理对象,而不是在编译时静态生成。动态代理有两种主要实现方式:基于JDK的动态代理和基于CGLIB的动态代理。JDK动态代理:适用于目标对象实现了接口的情况,通过和Proxy类实现。CGLIB动态代理。原创 2024-08-19 23:54:05 · 1020 阅读 · 0 评论 -
Mybatis <if>标签使用报错 ### Error querying database. Cause: java.lang.NumberFormatException: For input st
会报错### Error querying database. Cause: java.lang.NumberFormatException: For input string: xxxx。在标签的test中,不能写成“name!原创 2024-06-13 13:09:58 · 160 阅读 · 0 评论 -
解决 There is no getter for property named ‘null‘ in ‘class 报错
mybatis-plus在更新删除操作时报错。原创 2024-06-08 21:06:25 · 858 阅读 · 0 评论 -
springboot整合shiro安全框架
shiro快速开始1.导入依赖<dependencies> <!-- https://mvnrepository.com/artifact/org.apache.shiro/shiro-core --> <dependency> <groupId>org.apache.shiro</groupId> <artifactId>shiro-core<原创 2022-01-06 21:17:57 · 2455 阅读 · 0 评论 -
springboot集成mybatis(注解)
mybatis简介MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生类型、接口和 Java 的 POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。springboot集成mybatis,swagger依赖引入数据库依赖 <dependency>原创 2021-04-22 10:40:15 · 272 阅读 · 0 评论 -
springboot读取properties文件(读取jdbc.properties)
spring配置添加druid依赖 <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.1.10</version>编写jdbc.properties配置文件jdbc.driverClassName=com.mysql.jdbc原创 2021-04-20 14:17:53 · 738 阅读 · 0 评论 -
maven启动spring-boot 项目报错(Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.2.)
已经写好的**spring-boot(2.4.2)**项目使用mvn spring-boot:run,结果报错,错误如下所示:[INFO] Scanning for projects...[INFO][INFO] -----------------------< hero.mps:mybatis_plus >------------------------[INFO] Building mybatis_plus 0.0.1-SNAPSHOT[INFO] ----------------原创 2021-03-17 09:01:29 · 368 阅读 · 0 评论 -
springboot(9)restful风格接口开发
restful风格表现层状态转换(英语:Representational State Transfer,缩写:REST)是Roy Thomas Fielding博士于2000年在他的博士论文[1]中提出来的一种万维网软件架构风格,目的是便于不同软件/程序在网络(例如互联网)中互相传递信息。表现层状态转换是根基于超文本传输协议(HTTP)之上而确定的一组约束和属性,是一种设计提供万维网络服务的软件构建风格。符合或兼容于这种架构风格(简称为 REST 或 RESTful)的网络服务,允许客户端发出以统一资源标原创 2021-03-01 15:41:29 · 256 阅读 · 1 评论 -
springboot集成redis服务(8) 对redis基本操作进行封装并进行测试
封装redis基本操作写入Redis缓存(不设置expire存活时间)public boolean set(final String key, Object value){ boolean result = false; try { ValueOperations<String, Object> ops = redisTemplate.opsForValue(); ops.set(key, value);原创 2021-02-25 09:05:54 · 142 阅读 · 0 评论 -
springboo(7)集成redis
Redis是一种开放源代码(BSD许可)的内存中数据结构存储,用作数据库,缓存和消息代理。Redis提供数据结构,例如字符串,哈希,列表,集合,带范围查询的排序集合,位图,超日志,地理空间索引和流。Redis具有内置的复制,Lua脚本,LRU驱逐,事务和不同级别的磁盘持久性,并通过Redis Sentinel和Redis Cluster自动分区提供了高可用性。springboot集成redis引入依赖 <!-- Redis --> <dependency>原创 2021-02-24 15:53:49 · 93 阅读 · 0 评论 -
springboot整合mybatis-plus(6)代码生成器
AutoGenerator 是 MyBatis-Plus 的代码生成器,通过 AutoGenerator 可以快速生成 Entity、Mapper、Mapper XML、Service、Controller 等各个模块的代码,极大的提升了开发效率。具体实实现以及配置解析如下:package mybatis_plus;import com.baomidou.mybatisplus.annotation.DbType;import com.baomidou.mybatisplus.annotatio原创 2021-02-23 22:04:13 · 161 阅读 · 6 评论 -
springboot整合mybatis-plus(5)条件构造器
通过条件构造器可以实现一些复杂sql实现的功能查询name不为空的用户,并且邮箱不为空的用户,年龄大于等于12 @Test void conditionSelect(){ QueryWrapper<User> wrapper = new QueryWrapper<>(); wrapper.isNotNull("name") .isNotNull("email") .ge(原创 2021-02-20 22:21:01 · 121 阅读 · 0 评论 -
springboot整合mybatis-plus(4)逻辑删除
物理删除:直接从数据库删除逻辑删除:在数据库中没有删除,而是通过一个变量让他失效在数据库中添加字段deleted在实体类中添加配置属性@TableLogic private Integer deleted;配置逻辑删除组件导入拓展依赖 <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus.原创 2021-02-19 20:58:23 · 557 阅读 · 0 评论 -
springboot整合mybatis-plus(3)条件查询
根据指定id查询 @Test void findUserById(){ User user = userMapper.selectById(2l); System.out.println(user); }测试批量查询 @Test void testBatchId(){ List<User> users = userMapper.selectBatchIds(Arrays.asList( 2, 3,4));.原创 2021-02-10 19:08:39 · 549 阅读 · 0 评论 -
springboot整合mybatis-plus(2) 乐观锁
乐观锁当要更新一条记录的时候,希望这条记录没有被别人更新乐观锁实现方式:取出记录时,获取当前version更新时,带上这个version执行更新时, set version = newVersion where version = oldVersion如果version不对,就更新失败在mysql中添加version字段,并设置默认值1在user实体类中进行填充 @Version //乐观锁version注解 private Integer version;在m原创 2021-02-09 21:53:11 · 279 阅读 · 0 评论 -
springboot整合mybatis-plus(1)实现增删该查
创建springboot项目打开文件,新建项目,选择spring项目,选择组名,填写项目名,选择java版本点击下一步,引入MySQL Driver依赖以及lombok依赖在生成的maven文件中引入mybatis-plus依赖, <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-sta原创 2021-02-08 00:12:22 · 437 阅读 · 0 评论 -
Springboot入门(一)
利用idea创建项目spring-boot-starter-web:核心模块,包括自动配置支持,日志和yamlspring-boot-starter-test:测试模块,包括JUnit、Hamcrest、Mockito。编写Controllerimport org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController原创 2020-08-08 09:57:58 · 141 阅读 · 0 评论