Spring Boot 多实现类选择性注入实战:从基础注解到条件装配
在Spring Boot开发中,同一接口存在多个实现类时会导致Bean注入歧义。本文对比了@Primary、@Resource和@Qualifier等基础手动切换方案与基于@ConditionalOnProperty的条件自动装配方案。通过配置项动态控制实现类的实例化,实现了无需修改代码即可在不同环境间灵活切换业务逻辑,提升了系统的可维护性与运维友好度。
在Spring Boot开发中,同一接口存在多个实现类时会导致Bean注入歧义。本文对比了@Primary、@Resource和@Qualifier等基础手动切换方案与基于@ConditionalOnProperty的条件自动装配方案。通过配置项动态控制实现类的实例化,实现了无需修改代码即可在不同环境间灵活切换业务逻辑,提升了系统的可维护性与运维友好度。
本文记录了在 Spring Boot 中集成 Undertow 容器时,部分版本(2.2.x)静态资源文件(如 MP4)无法正常访问的问题。通过分析 Maven 依赖配置与 Undertow 参数设置,并对比 Tomcat 的性能差异,提供了包括降级版本、切换 Web 服务器容器或引入 Nginx 等在内的有效解决方案。

本文详解在SpringBoot中如何判断某个Bean是否存在,包括获取所有Bean名称及通过异常处理验证特定Bean的存在性。同时分析了@Configuration配合@Bean注册Bean的优势与潜在风险,特别是循环加载问题及其解决方案,如@Order、@DependsOn注解或XML配置导入。
本文详细介绍了在 Spring Boot 中集成 Spring Security 的步骤,涵盖基础依赖引入、默认登录页展示及密码修改。重点讲解四种用户存储方式(内存、数据库、LDAP、自定义)的配置方法,以及通过 WebSecurityConfigurerAdapter 实现 URL 路径级别的权限拦截控制,帮助开发者快速构建安全的 Web 应用。

本文详解如何将项目数据库从MySQL迁移至基于PostgreSQL内核的OpenGauss。涵盖Docker容器化安装、DataGrip连接配置、SQL语法差异调整(如数据类型与函数替换)、Spring Boot后端JDBC驱动与YML配置修改,以及Vue前端通过Nginx Docker化部署的完整步骤,帮助开发者顺利完成异构数据库切换与项目上线。

本文介绍 Spring Boot 如何实现开发、测试和生产环境的独立配置。通过 YAML 分割符或独立 properties 文件管理不同环境参数,并结合命令行参数临时覆盖设置。同时解析 resources 内外各层级配置文件的加载顺序与优先级规则,确保应用在不同阶段能准确读取对应配置。

本文详解MyBatis-Plus中BaseMapper的selectByMap方法如何构建Map条件进行多条件等值查询,并解决selectMaps返回结果中空值字段不显示的问题。通过在application.yaml中配置call-setters-on-nulls: true即可让空字段正常返回。

本文详细介绍在MySQL数据库中实现create_time和update_time自动维护的两种核心方式:数据库级别(DDL默认值)与代码级别(MyBatis-Plus MetaObjectHandler)。重点讲解如何使用MyBatis-Plus的注解与自定义处理器拦截插入和更新操作,以灵活控制时间戳逻辑。

本文详细介绍MyBatis中使用LIKE进行模糊查询的正确姿势。重点解析如何结合数据库函数CONCAT实现参数拼接,避免在XML中直接使用%#{name}%导致的SQL注入风险或语法错误。提供MySQL与Oracle下的具体代码示例及最佳实践,帮助开发者写出更安全、规范的SQL语句。
本文介绍在SpringMVC中无法直接使用重定向完成POST请求的原因,并提供两种替代方案。第一种利用 RedirectView 直接发起POST跳转;第二种通过后端生成包含隐藏域的HTML表单并自动提交,适用于携带参数且需保持POST特性的场景。

本文详解在Spring Boot项目中如何利用MyBatis-Plus的元数据对象处理器(MetaObjectHandler)实现createTime、updateTime等公共字段的自动填充。针对更新操作中需动态获取当前登录用户ID的需求,深入解析并实践通过ThreadLocal结合过滤器(Filter)进行线程间数据共享的方案,从而替代冗余的手动赋值代码,提升开发效率与代码整洁度。

本文详解 MyBatis-Plus 中时间范围查询的两种核心方式:利用 apply 方法配合数据库函数处理日期截取,以及使用 ge/le 直接比较 DateTime 字段。重点剖析 String 拼接导致的 SQL 注入风险并提供参数化正例,同时讲解 Spring MVC 中 @DateTimeFormat 对前后端时间格式一致性的要求及常见报错排查。
