spring接入nacos配置中心
Posted cj_eryue
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spring接入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上的配置,但不建议这么用~
以上是关于spring接入nacos配置中心的主要内容,如果未能解决你的问题,请参考以下文章
Spring Cloud Alibaba - 17 Nacos Config 配置中心 应用篇
Spring Cloud Alibaba - 03 注册中心Nacos 应用篇(上)
Spring Cloud Alibaba Nacos服务注册和配置中心
微服务配置中心实战:Spring + MyBatis + Druid + Nacos