SPRING 十一月 03, 2024

【转】解析 Spring 计划任务执行多次之谜及解决方案

文章字数 3.9k 阅读约需 4 mins.

原文地址:https://wyiyi.github.io/amber/2024/11/01/Scheduled/

Spring项目中,@Scheduled注解配置的计划任务(Scheduled Tasks)可能会出现执行多次的情况,尤其是在以下场景中:

  • 一个父类定义了@Scheduled注解的方法,且被多个子类继承。
  • 父类或子类被Spring容器错误地实例化为多个Bean实例。

本文将针对该特定场景,剖析导致计划任务重复执行的原因,并针对性地提出解决措施。

Spring项目中,我们定义了...

查看全文

SPRING 十月 27, 2024

【译】Spring Boot 2.0 中的属性绑定

文章字数 8.1k 阅读约需 7 mins.

自 Spring Boot 的第一个版本发布以来,就可以使用 @ConfigurationProperties 注解将属性绑定到类。还可以用不同的形式指定属性名称。例如,person.first-nameperson.firstNamePERSON_FIRSTNAME 都可以互换使用。我们称这个功能为“宽松绑定”(relaxed binding)。

不幸的是,在 Spring...

查看全文

SPRING 十月 20, 2024

Spring Cloud 的 Release Train 和版本兼容性

文章字数 2.9k 阅读约需 3 mins.

https://github.com/spring-cloud/spring-cloud-release/wiki/Release-Train-Naming-Convention

Spring Cloud 是一个包含多个独立项目的总项目,这些项目原则上有不同的发布节奏。为了管理这个组合项目,会发布一个 BOM(材料清单),其中包含对各个独立项目的依赖版本集合。

从历史上看,发布列车有名称而不是版本,以避免与子项目混淆。这些名称是按字母顺序排列的(因此可以按时间顺序排序),使用的是伦敦地铁站的名称...

查看全文

SPRING 四月 27, 2024

【译】如何在 Spring 中将 @RequestParam 绑定到对象

文章字数 8.1k 阅读约需 7 mins.

你的请求映射方法中是否有多个用 @RequestParam 注解的参数?是否感觉它们影响了易读性?

当请求只有一两个入参时,这个注解看起来非常直观,但是当参数列表变长时,你可能会感到不知所措。

你不能在对象内部使用 @RequestParam 注解,但这并不意味着你没有其他解决方案。在这篇文章中,我将向你展示 如何在 Spring 应用中将多个请求...

查看全文

SPRING 十二月 04, 2022

为非全局路径配置 Filter 的两种方法

文章字数 16k 阅读约需 15 mins.

原文地址:https://wyiyi.github.io/amber/2022/12/01/filter-note/

Filter 上加 @WebFilter (javax.servlet.annotation.WebFilter),指定 value,启动类加 @ServletComponentScan

【注意】:@ServletComponentScan 这个注解仅对内嵌的 tomcat 生效,如果使用单独的 tomcat,这种方式无效

示例一:

@WebFilter(filterName ...
查看全文

SPRING 七月 10, 2022

【转】Spring 之 Interceptor

文章字数 5.3k 阅读约需 5 mins.

原文地址:https://wyiyi.github.io/amber/2022/07/01/interceptor/

什么是拦截器

在 Spring Web MVC 中,拦截器(Interceptor)同 Servlet 中的过滤器(Filter) 类似,都可以实现对用户的请求做出相应的处理。

所有 HandlerMapping 的实现都支持处理程序拦截器,当想将特定功能应用于某些请求时很有用 —— 例如检查权限。
拦截器必须实现 org.springframework.web.servlet 包中...

查看全文

SPRING 一月 09, 2022

Spring boot 应用不重新打包,添加新类

文章字数 2.8k 阅读约需 3 mins.

因为某些约束,我们可能不希望对 Spring Boot 应用重新打包,却又需要调整其中的某些行为(如:添加新类),有没有办法?

1. PropertiesLauncher

修改启动命令,不再是使用 java -jar 方式启动,而是使用传统的 Java 应用启动方式,先通过 -cp 参数将 Fat Jar (example.jar)加入 classpath,然后指定运行的主类 PropertiesLauncher,并且通过 -D 参数,将系统属性传入主类中。

$ java -cp example....
查看全文

SPRING 八月 22, 2021

HTML <form> 只支持 GET 和 POST!

文章字数 5.1k 阅读约需 5 mins.

在 Web 开发中,常规的提交数据方式为使用 form 表单,例如:

<form action="" method="get" class="form-example">
  <div class="form-example">
    <label for="name">Enter your name: </label>
    <input type="...
查看全文

SPRING 六月 27, 2021

玩转 @ConditionalOnMissingBean

文章字数 7k 阅读约需 6 mins.

男人,不能说不行! 中,留了两个问题:

  1. 为什么名为 testServiceImpl 的 Bean 会被注册?
  2. 为什么无法注入 TestService 的实例?

先从可运行环境 https://github.com/AlphaHinex/conditional-on-missing-bean-demo 看下结果。

在测试用例中,通过 @Autowired 注解注入了 TestService,但调用时,报了空指针异常,说明容器中没有 TestService 类型的实例。

那么是 @ConditionalOnMi...

查看全文
加载更多
0%