在 Nacos 中配置一个 Map,并使用 @Value 获取 Nacos 中配置的 Map 内容:

  1. 将 Map 转换为 JSON 字符串: 将 Map 转换为 JSON 字符串,并将其作为配置值存储在 Nacos 中。假设配置的 Data ID 为 'example-config',Group 为 'default'。

  2. 在 Nacos 中创建配置: 在 Nacos 的管理界面中创建一个配置,将 Map 转换为 JSON 字符串,并将其作为配置值填写在 Value 字段中。

  3. 在 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);
    }
}
  1. 使用 @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 值。

Nacos 配置 Map 并使用 @Value 获取

原文地址: https://www.cveoy.top/t/topic/pchS 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录