首页
分类
后端开发
数据库
前端开发
学习笔记
错误合集
标签
Java
MySQL
MongoDB
Linux
IDEA
归档
海尔经典面试题
Linux清理磁盘空间
MySQL查询结果输出到文件
MongoDB数据处理
瞬间
留言板
友情链接
Java学习笔记
Java博客
累计撰写
66
篇文章
累计创建
22
个标签
累计收到
12
条评论
栏目
首页
分类
后端开发
数据库
前端开发
学习笔记
错误合集
标签
Java
MySQL
MongoDB
Linux
IDEA
归档
海尔经典面试题
Linux清理磁盘空间
MySQL查询结果输出到文件
MongoDB数据处理
瞬间
留言板
友情链接
Java学习笔记
目 录
CONTENT
以下是
SpringBoot
相关的文章
2024-12-10
Spring Boot 重试机制@Retryable
**摘要(198字):** `@Retryable` 是 Spring Retry 提供的注解,用于在方法抛出指定异常时自动重试,支持配置最大重试次数、延迟策略和异常类型。`@Recover` 用于处理重试失败后的异常,实现恢复逻辑,可与 `@Retryable` 配合使用,分离重试与恢复逻辑。多个 `@Retryable` 方法可在同一类中定义,各自拥有独立的 `@Recover` 方法,通过异常类型和方法命名匹配对应关系。若未指定 `value`,默认重试所有异常。`@Recover` 方法需与 `@Retryable` 方法抛出的异常类型一致,Spring 通过方法参数类型和命名进行匹配,支持多方法共享相同异常类型但各自独立恢复。
2024-12-10
22
0
0
后端开发
2024-09-09
SpringBoot多数据源集成——MongoDB
本文介绍了在Spring Boot项目中实现根据业务条件动态切换MongoDB数据源的完整方案。首先通过`spring-boot-starter-data-mongodb`引入依赖,并在配置文件中定义多个数据库(如`default`和`csfa`)。通过`MongoParamsConfig`读取配置,`MongoConfig`类创建多个`MongoTemplate`实例,支持用户名密码认证。为避免保存`_class`字段,扩展了`MappingMongoConverter`。动态切换数据源可通过手动设置`ThreadLocal`标识,结合`DynamicMongoTemplate`选择对应模板;或通过AOP切面自动切换,实现无侵入式数据源切换。针对`MongoRepository`的自定义方法无法通过AOP生效的问题,提出了两种解决方案:一是直接使用`MongoTemplate`;二是创建自定义接口及实现类,继承`MongoRepository`,实现动态数据源调用。该方案适用于需多库动态查询的复杂业务场景,兼顾灵活性与可维护性。
2024-09-09
76
0
7
后端开发
数据库
2024-08-31
SpringBoot多数据源集成——MySQL
本文介绍了在Spring Boot项目中实现基于条件动态切换MySQL数据库的完整方案。通过配置多个数据源(如default、csfa),并使用`AbstractRoutingDataSource`结合`ThreadLocal`实现数据源动态路由。配置包括Maven依赖、`application.yml`中多数据源定义、`DataSourceConfig`类中通过`@ConfigurationProperties`加载数据源并构建`DynamicDataSource`。为避免循环依赖,需添加`@Lazy`注解,为指定默认数据源需使用`@Primary`。提供三种切换方式:手动切换、注解+AOP自动切换、拦截器自动切换。注解方式支持类/方法级别指定数据源,AOP切面需注意执行顺序(`@Order(-1)`)并处理事务嵌套问题。拦截器可从请求头获取`bus-tab`动态设置数据源,实现无侵入式切换。三种方式可组合使用,灵活满足不同场景需求。此外,也提及可使用Apache ShardingSphere实现更高级的动态数据源管理。
2024-08-31
29
0
3
后端开发
数据库
2022-12-20
优化SpringBoot项目启动时间和内存占用
作者使用Spring Cloud Alibaba搭建了包含7个微服务的项目,部署在2C4G的阿里云服务器上,采用Docker部署Spring Boot fat jar镜像。每个微服务默认占内存约500M,加上Nacos、Redis、Sentinel、RocketMQ、ELK等中间件,内存压力巨大,仅部署4个微服务便内存不足。为此,作者尝试通过JVM参数优化(如-Xms128m、-Xmx128m、-Xss256k等)将内存占用降至100~200M,但未达预期的几十M目标。经调研,作者计划采用Spring Native技术以实现更低内存占用和更快启动速度,其官方示例镜像仅50M,但构建时间较长(约2分钟),且该技术尚处快速迭代阶段,暂不推荐用于生产环境。文章未完待续。
2022-12-20
36
1
1
后端开发
2022-12-09
在线 yaml(yml)和 properties 互转
该页面提供在线YAML(yml)与Properties配置文件格式之间的相互转换工具,方便开发者在不同框架或系统间进行配置文件格式的快速转换。用户可通过访问指定网址(https://www.toyaml.com/index.html)进入工具界面,直接粘贴或上传文件,一键完成格式转换。页面内置嵌入式框架,支持全屏显示,用户无需下载任何软件,即可在浏览器中实时操作。该工具适用于Java、Spring、微服务等项目中常见的配置文件兼容需求,提升开发效率。整体界面简洁,操作直观,支持常见配置语法转换,是开发人员处理配置文件的实用辅助工具。
2022-12-09
22
0
0
软件推荐
开发工具
2022-12-09
基于SpringBoot拦截所有接口类及实现类中方法上面的自定义注解
本文介绍了在Spring Boot中使用自定义注解同时拦截接口方法和实现类方法的实现方案。通过定义`@Ax`注解、创建`AxMethodPointcutAdvisor`匹配切入点、实现`AxInterceptor`拦截器,并注册`DefaultAdvisorAutoProxyCreator`,实现了对注解方法的统一拦截。关键在于`DefaultAdvisorAutoProxyCreator`会自动为匹配的方法生成CGLIB代理,从而支持接口方法的拦截。测试显示,无论注解在接口或实现类上,均可成功拦截并执行前后逻辑。文章强调,接口必须有实现类,否则Spring启动会报错。该方案借鉴了“keetone”大神的思想,并提供了完整可运行的代码示例,适合在需要灵活使用自定义注解的场景中应用。(198字)
2022-12-09
23
0
0
后端开发
2022-04-08
SprignBoot项目访问数据库报错
本文总结了Spring Boot项目连接MySQL时遇到的两个常见错误及解决方法。第一个错误是因连接重试失败次数过多,触发MySQL的保护机制,导致主机被封锁,需通过`mysqladmin flush-hosts`或删除`user`表中`host='localhost'`的冗余记录解决。第二个错误源于MySQL 5.5.45+版本对SSL连接的强制要求,IDEA提示警告而VSCode直接报错,通过在`application.yml`或配置文件中添加`useSSL=false`即可兼容旧版本应用,避免连接失败。两个问题均涉及数据库连接配置的调整,需结合实际环境和版本兼容性处理。
2022-04-08
17
0
0
错误合集
后端开发
2021-03-26
Spring Boot 异常 X-Frame-Options to DENY
在Spring Boot项目中,默认安全配置会设置响应头`X-Frame-Options: DENY`,用于防止点击劫持攻击,禁止页面被嵌入到iframe中。这会导致使用iframe上传图片或嵌套页面时,浏览器报错“Refused to display in a frame because it set 'X-Frame-Options' to 'DENY'”。解决方案是扩展`WebSecurityConfigurerAdapter`,在配置中添加`http.headers().frameOptions().disable()`,即可禁用该安全策略,使响应头不再包含该选项。此操作虽解决iframe嵌套问题,但需注意可能降低安全性,建议在确保安全上下文的前提下使用,如仅在特定接口或前端页面中禁用。
2021-03-26
15
0
0
后端开发
错误合集
2021-03-26
SpringBoot 初始化执行自定义代码
本文介绍了在Spring Boot应用启动后自动执行初始化代码并将数据存入`ServletContext`的两种方法。由于`ServletContextListener`在Spring未完全初始化时无法注入Spring组件,故不推荐使用。**方法一**推荐使用`ApplicationListener<ContextRefreshedEvent>`,在Spring上下文加载完成后执行,可安全使用Spring注入的Bean。通过`ContextRefreshedEvent`获取`ApplicationContext`,再转换为`WebApplicationContext`以获取`ServletContext`,进而完成数据初始化和存储。**方法二**为理论设想,通过`@Autowired`注入`ServletContext`,并在初始化方法上添加`@PostConstruct`注解,但作者未实践验证其可行性。整体建议优先采用方法一,保证Spring环境完备时执行初始化逻辑。
2021-03-26
19
0
1
后端开发
学习笔记
2021-03-23
启动SpringBoot项目报错"Error running 'xxx项目' Command line is too long"
该文章解决 IntelliJ IDEA 中运行项目时出现的“Command line is too long”错误。错误原因是启动命令过长,导致无法执行。解决方案为:在 IDEA 中进入 Run → Edit Configurations,找到对应项目配置,在 Environment 选项卡中将“Shorten command line”设置为“JAR”。此设置会将启动参数通过 JAR 文件方式传递,从而缩短命令行长度,避免超限问题。文章配有两张截图,分别展示配置入口和具体设置项,操作步骤清晰,适合开发者快速排查和修复该类问题。
2021-03-23
20
0
0
错误合集
鄂ICP备20003961号-3