正经学徒,佛系记录,不搞事情
参考上文:https://blog.csdn.net/qq_31748587/article/details/84849520
基于maven多模块构建springcloud项目实现简单的服务注册发现,项目最终结构如下:
cloud_parent:父工程,统一管理jar包依赖
eureka_server:注册中心服务
eureka_client:服务提供者
eureka_feign:服务消费者
仅保留pom.xml和.iml文件,xml如下:
4.0.0
org.springframework.boot
spring-boot-starter-parent
1.5.3.RELEASE
com.mn
cloud_parent
0.0.1-SNAPSHOT
pom
cloud_parent
Demo project for Spring Boot
eureka_server
eureka_cilent
eureka_feign
UTF-8
UTF-8
1.8
Dalston.RELEASE
org.springframework.cloud
spring-cloud-starter
org.springframework.cloud
spring-cloud-starter-eureka-server
org.springframework.boot
spring-boot-starter-test
test
org.springframework.cloud
spring-cloud-dependencies
${spring-cloud.version}
pom
import
org.springframework.boot
spring-boot-maven-plugin
右键父工程
创建springboot项目
注意项目的路径,存放在父工程内
pom文件只需保留parent,因为需要的jar包在父工程中
4.0.0
cloud_parent
com.mn
0.0.1-SNAPSHOT
eureka_server
修改application.properties文件
spring.application.name=eureka-server
server.port=1001
eureka.instance.hostname=localhost
#表示是否将自己注册到Eureka Server,默认为true
eureka.client.register-with-eureka=false
#表示是否从Eureka Server获取注册信息,默认为true
eureka.client.fetch-registry=false
启动类追加注解
@EnableEurekaServer
同eureka_server项目流程
修改配置文件application.properties
spring.application.name=eureka-client
server.port=1002
eureka.client.serviceUrl.defaultZone=http://localhost:1001/eureka/
添加TestController类
@RestController
public class TestController {
@GetMapping("/get")
public String get() {
return "试试看可不可以";
}
}
启动类删除@EnableEurekaServer,添加注解
@EnableDiscoveryClient
同eureka_client项目流程
因为用到feign,因此pom.xml文件追加依赖
org.springframework.cloud
spring-cloud-starter-feign
修改配置文件application.properties
spring.application.name=eureka-feign
server.port=1003
eureka.client.serviceUrl.defaultZone=http://localhost:1001/eureka/
启动类添加注解
@EnableFeignClients
@EnableDiscoveryClient
添加接口类TestInterface,name与服务名相同(注:服务名不能带有下划线)
@FeignClient(name= "eureka-client")
public interface TestInterface {
@GetMapping(value = "/get")
String get();
}
添加控制类TestController
@RestController
public class TestController {
@Autowired
TestInterface testInterface;
@GetMapping("/getByFeign")
public String get() {
return testInterface.get();
}
}
依次启动 eureka_server,eureka_client,eureka_feign
浏览器访问:http://127.0.0.1:1001/表明注册中心成功启动
浏览器访问:http://127.0.0.1:1002/get 表明服务提供者启动正常
浏览器访问:http://127.0.0.1:1003/getByFeign 表明服务消费者启动正常
本文只是作为一个引子,入门如何使用maven多模块来搭建微服务,实际项目中,项目可以根据业务需求,按业务拆分或者代码分层,或者二者结合使用,还请举一反三。
项目地址:
https://pan.baidu.com/s/1FZ9M48sY8xbb41WwP4G1Bg 提取码: eacf