一、创建父工程
pom文件:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.13.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.xckk</groupId>
<artifactId>springcloud-alibaba</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<name>springcloud-alibaba</name>
<description>springcloud-alibaba</description>
<!-- 子模块 -->
<modules>
<module>cloudalibaba-producers9002</module>
<module>cloudalibaba-consumer9003</module>
<module>cloudalibaba-nacos9001</module>
</modules>
<properties>
<spring-cloud-alibaba-version>2.2.5.RELEASE</spring-cloud-alibaba-version>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- 添加cacos依赖 -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
</dependencies>
<!-- spring cloud alibaba -->
<dependencyManagement>
<dependencies>
<dependency>
<groupId> com.alibaba.cloud </groupId>
<artifactId> spring-cloud-alibaba-dependencies </artifactId>
<version>${spring-cloud-alibaba-version}</version>
<type> pom </type>
<scope> import </scope>
</dependency>
</dependencies>
</dependencyManagement>
</project>
子工程: 9001服务提供者
pom文件略
application:
server.port=9002
spring.application.name=nacos-producers
spring.cloud.discovery.server-addr=localhost:8848
management.endpoint.web.exposure.include="*"
controller:
@RestController
public class DemoController {
@Value("${server.port}")
public String port;
@GetMapping("test")
public String test() {
return "hello nacos " + port;
}
}
子工程: 9002服务提供者(跟9001一样)
服务消费者:
pom文件略
application.properties文件:
server.port=9003
spring.application.name=nacos-consumer
spring.cloud.discovery.server-addr=localhost:8848
# 提供服务的标识,用于调用
service-name.url=http://nacos-producers/
添加restTemplateBean
@Component
public class SpringBean {
@Bean
@LoadBalanced // rebbon
public RestTemplate restTemplate() {
return new RestTemplate();
}
}
controller:
@RestController
public class ConsumerController {
@Value("${service-name.url}")
private String PRODUCTOR_URL;
@Autowired
private RestTemplate restTemplate;
@GetMapping("constmer")
public String consumer() {
// 调用服务提供者+具体接口地址;
String url = PRODUCTOR_URL + "test";
return restTemplate.getForObject(url, String.class);
}
}
启动项目前先启动nacos:
startup.com -m standalone
启动完毕之后启动我们项目, 启动完成之后进入nacos页面, 会出现我们的服务信息;