不重启服务器重新加载Spring上下文

本文介绍了一种无需重启服务器即可更新Spring项目的实用方法。通过注入ConfigurableWebApplicationContext并调用其refresh()方法,实现项目的热更新。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

有时候服务器不方便重启,但是项目又需要更新,所以可以采取如下方法来重新加载Spring项目的Context

//注入ConfigurableWebApplicationContext
@Resource 
ConfigurableWebApplicationContext wac;

在方法中调用

wac.refresh();

完整代码

import javax.annotation.Resource;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.context.ConfigurableWebApplicationContext;
 
@Controller
@RequestMapping("/test")
public class TestController {
    @Resource 
    ConfigurableWebApplicationContext wac;

    @RequestMapping("reload")
    public void url(){
        wac.refresh();
    }
}


### 正确配置 `spring-cloud-starter-bootstrap` 以实现依赖加载 为了确保 Spring Boot 应用程序能够正确读取并应用 Bootstrap 配置文件中的设置,在 Spring Boot 版本 2.4.x 及以上版本中,需显式引入特定的 Maven 或 Gradle 依赖项[^1]。 #### 添加 Maven 依赖 在项目的 `pom.xml` 文件内加入以下依赖声明: ```xml <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-bootstrap</artifactId> <version>3.1.0</version> </dependency> ``` 此依赖负责处理应用程序启动初期阶段所需的外部化配置逻辑,特别是当涉及到微服务架构下的分布式配置管理时尤为有用[^4]。 #### 使用 Gradle 构建工具的情况 如果采用的是 Gradle,则应在 `build.gradle` 中添加相应的依赖条目: ```groovy implementation 'org.springframework.cloud:spring-cloud-starter-bootstrap:3.1.0' ``` 完成上述操作后,还需注意一点:自定义的 `bootstrap.properties` 或者 `bootstrap.yml` 文件应当放置于资源目录下(通常是 `src/main/resources/`),以便被框架自动识别和解析。这些文件用于指定一些早期绑定属性,比如连接到远程配置服务器的信息等[^2]。 一旦完成了必要的构建脚本修改以及资源配置工作,重启应用程序即可使新的配置生效。此时,Spring Cloud 将会优先加载位于 classpath 下面提到过的两个特殊命名方式之一的配置文件,并将其内容应用于整个上下文中去[^5]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值