Nacos 配置 Map 并使用 @Value 获取
在 Nacos 中配置一个 Map,并使用 @Value 获取 Nacos 中配置的 Map 内容:
-
将 Map 转换为 JSON 字符串: 将 Map 转换为 JSON 字符串,并将其作为配置值存储在 Nacos 中。假设配置的 Data ID 为 'example-config',Group 为 'default'。
-
在 Nacos 中创建配置: 在 Nacos 的管理界面中创建一个配置,将 Map 转换为 JSON 字符串,并将其作为配置值填写在 Value 字段中。
-
在 Spring Boot 应用程序中注入配置: 创建一个新的 Spring Bean,并使用
@Value注解将 Nacos 中的配置值注入到该 Bean 中的一个变量中。假设要将配置值注入到名为 'configMap' 的变量中。
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;
import java.util.Map;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.type.TypeReference;
@SpringBootApplication
public class ExampleApplication {
@Value('${example-config}')
private String configJson;
@Bean
public Map<String, Object> configMap() {
// 将 JSON 字符串转换为 Map
ObjectMapper objectMapper = new ObjectMapper();
try {
return objectMapper.readValue(configJson, new TypeReference<Map<String, Object>>() {});
} catch (JsonProcessingException e) {
throw new RuntimeException('Failed to parse config JSON', e);
}
}
public static void main(String[] args) {
SpringApplication.run(ExampleApplication.class, args);
}
}
- 使用 @Autowired 注入: 在其他地方使用
@Autowired注解将configMap注入到其他 Spring Bean 中,以使用 Nacos 中的 Map 配置。
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.Map;
@Component
public class ExampleBean {
private final Map<String, Object> configMap;
@Autowired
public ExampleBean(Map<String, Object> configMap) {
this.configMap = configMap;
}
// 使用 configMap 进行配置
// ...
}
现在,您可以在 ExampleBean 中使用 configMap 变量来获取 Nacos 中配置的 Map 值。
原文地址: https://www.cveoy.top/t/topic/pchS 著作权归作者所有。请勿转载和采集!