spring接入nacos配置中心

目录

第一步,启动naocs

第二步,nacos上配置相关配置

第三步,编写nacos的自动配置类

第四步,测试


项目中的配置中心需要由zookeeper转移到nacos,项目使用的框架为springmvc4.3.15

本地环境整个demo先,记录下集成过程

引入依赖:

<dependency>
     <groupId>com.alibaba.nacos</groupId>
     <artifactId>nacos-spring-context</artifactId>
     <version>1.1.0</version>
</dependency>

第一步,启动naocs

本地启动一个nacos即可,不做赘述

第二步,nacos上配置相关配置

第三步,编写nacos的自动配置类

package com.bes.nacos;

import com.alibaba.nacos.api.annotation.NacosProperties;
import com.alibaba.nacos.api.config.ConfigType;
import com.alibaba.nacos.spring.context.annotation.config.EnableNacosConfig;
import com.alibaba.nacos.spring.context.annotation.config.NacosPropertySource;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;

/**
 * @Author: cjian
 * @Date: 2023/3/31 10:31
 * @Des:
 */
@Configuration
@PropertySource("classpath:config.properties")
@EnableNacosConfig(globalProperties = @NacosProperties(serverAddr = "${nacos.server-addr}", namespace = "${nacos.namespace}"))
@NacosPropertySource(dataId = "${nacos.data.id}", groupId = "${nacos.group.id}", type = ConfigType.YAML, autoRefreshed = true)
public class NacosConfiguration {

}
config.properties配置:
# nacos 相关配置
# nacos地址
nacos.server-addr=127.0.0.1:8848
# nacos配置的命名空间
nacos.namespace=WEBGATE
# nacos配置的dataId
nacos.data.id=config.yaml
# nacos配置的groupId
nacos.group.id=webgate_console

第四步,测试

共测试两个点:

package com.bes.nacos;

import com.alibaba.nacos.api.config.annotation.NacosValue;
import com.bes.bean.Project;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import static org.springframework.web.bind.annotation.RequestMethod.GET;

/**
 * @Author: cjian
 * @Date: 2023/3/31 10:32
 * @Des:
 */
@Controller
@RequestMapping("config")
public class ConfigController {

    //debug 使用
    @Autowired
    private ConfigurableApplicationContext applicationContext;

    //1、测试nacos自动的注入配置是否正常
    @NacosValue(value = "${com.cjian.project.name}", autoRefreshed = true)
    private String projectName;

    // 2、测试通过spring xml的配置方式,注入到ioc容器中的类的属性,如果使用EL表达式获取naocs上的配置,是否正常
    @Autowired
    private Project project;

    @RequestMapping(value = "/get", method = GET)
    @ResponseBody
    public String get() {
        return projectName;
    }

    @RequestMapping(value = "/getProjectName", method = GET)
    @ResponseBody
    public String getProjectName() {
        return project.getProjectName();
    }
}

XMl简单配置注入一个属性为projectName的Project类:

<bean id="project" class="com.bes.bean.Project">
        <property name="projectName" value="${com.cjian.project.name2}"></property>
    </bean>

测试1:

测试2:

结束 ,使用@Value注解一样可以拿到nacos上的配置,但不建议这么用~

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值