与“spring mvc”相关的TAG标签
本文介绍在SpringBoot构建的Ingress服务中,不落盘、不缓存、直接流式转发Storage服务响应给客户端的最佳实践,彻底规避OutOfMemoryError并显著提升大文件传输性能。
Filter由Servlet容器管理,作用于所有请求;Interceptor由Spring管理,仅拦截DispatcherServlet处理的请求。Filter更底层通用,Interceptor可访问SpringBean和Controller上下文。
应根据错误是否可恢复选择:可恢复用错误码(如Result),不可恢复必须throw;RuntimeException用于编程错误,CheckedException用于外部依赖失败;避免原始数字错误码,优先用枚举或Result封装。
不该用return-1或null表示失败,因错误码混淆控制流、易被忽略且缺乏上下文;应按场景选受检异常或RuntimeException,并设计含上下文、异常链的自定义异常。
Date类本质是UTC毫秒计数器,toString()伪装成本地时间;其可变性、0基月份、线程不安全及设计缺陷使其被java.time替代。
在SpringBoot的GraphQL服务中,需通过Kotlin的可空类型(如Int?)或Java的包装类(如Integer)来安全接收可选参数,避免因缺失字段导致的解析异常。
在SpringBoot嵌入式Tomcat中启用mTLS后,无法通过javax.servlet.request.X509Certificate获取客户端证书,根本原因是ServletAPI5.0+(JakartaEE9+)已将包名从javax.*迁移至jakarta.*,需使用新标准属性名。
优先用logback-spring.xml;SpringBoot项目支持springProfile动态配置,可按环境切换日志级别与输出方式,而log4j2.xml更适用于纯JavaSE或老SpringMVC项目。
XML上传接口错误信息语言由服务端根据Accept-Language请求头或XML内lang字段决定,未提供时回退至默认语言;错误码中立,文案通过资源文件动态加载。
在SpringMVC+Thymeleaf项目中,当同一下拉框需在多个页面重复使用时,推荐将其封装为Thymeleaf片段(fragment),配合服务层缓存数据(如Session或更优的缓存方案),实现一次定义、多处引用,兼顾可维护性与性能。
