Quick Start for Nacos Spring Projects
The quick start includes two samples:
- How to enable Nacos server and Nacos Spring configuration modules to implement dynamic configuration management;
- How to enable Nacos server and Nacos Spring service discovery modules to implement service registration and discovery.
Follow instructions in Nacos Quick Start to download Nacos and start the Nacos server.
Once you start the Nacos server, you can follow the steps below to enable the Nacos configuration management service for your Spring project.
- Add the Nacos Spring dependency.
The the latest version can be available in maven repositories such as "".
- Add the annotation to enable the configuration service. In the code below,
@NacosPropertySource
is used to load the configuration source whosedataId
isexample
, and autorefresh is also enabled:
@Configuration
@EnableNacosConfig(globalProperties = @NacosProperties(serverAddr = "127.0.0.1:8848"))
@NacosPropertySource(dataId = "example", autoRefreshed = true)
public class NacosConfiguration {
}
- Specify the property value for the
@NacosValue
annotation of Nacos.
@Controller
@RequestMapping("config")
public class ConfigController {
@NacosValue(value = "${useLocalCache:false}", autoRefreshed = true)
private boolean useLocalCache;
@RequestMapping(value = "/get", method = GET)
@ResponseBody
return useLocalCache;
}
Start Tomcat and call
curl http://localhost:8080/config/get
to get configuration information. Because no configuration has been published, afalse
message is returned.Now you can call to publish a configruation to the Nacos server. Assume the dataId is
example
, and content isuseLocalCache=true
.
- Access
http://localhost:8080/config/get
again, and you get a return message oftrue
, indicating that the value ofuseLocalCache
in your application has been updated.
Sampe project:
- Add the Nacos Spring dependency.
<dependency>
<groupId>com.alibaba.nacos</groupId>
<artifactId>nacos-spring-context</artifactId>
<version>${latest.version}</version>
</dependency>
The the latest version can be available in maven repositories such as "mvnrepository.com".
- Add the
@EnableNacosDiscovery
annotation to enable the service discovery function of Nacos:
@Configuration
@EnableNacosDiscovery(globalProperties = @NacosProperties(serverAddr = "127.0.0.1:8848"))
public class NacosConfiguration {
}
- Use
@NacosInjected
to inject a NacosNamingService
instance:
Start Tomcat and call
curl
, and the return value is an empty JSON array[]
.
curl -X PUT 'http://127.0.0.1:8848/nacos/v1/ns/instance?serviceName=example&ip=127.0.0.1&port=8080'
- Access
curl http://localhost:8080/discovery/get?serviceName=example
again, and you will get the following return:
[
"instanceId": "127.0.0.1#8080#DEFAULT#example",
"ip": "127.0.0.1",
"port": 8080,
"weight": 1.0,
"healthy": true,
"cluster": {
"serviceName": null,
"name": "",
"healthChecker": {
"type": "TCP"
},
"defaultPort": 80,
"defaultCheckPort": 80,
"useIPPort4Check": true,
"metadata": {}
},
"service": null,
"metadata": {}
]