一 .概述
在本次的springcloud之中,我们使用Maven来管理我们的整个内容,为了方便后面的演示,本次将基本的内容搭建起来.
在springcloud之中,版本是一个比较重要的话题,
上面是官网给出的适配模式,我们本次使用1.5x版本的springboot和E版本的springcloud.
二 .搭建父项目
org.springframework.boot spring-boot-starter-parent 1.5.9.RELEASE org.springframework.cloud spring-cloud-dependencies Edgware.SR5 pom import org.springframework.boot spring-boot-maven-plugin org.apache.maven.plugins maven-compiler-plugin 1.8
三 .搭建公共模块
在后面我们常常需要使用的一些公共模块,本次我们直接将这一部分的内容抽成一个公共的模块.
com.trek.springcloud springcloud-parent 0.0.1-SNAPSHOT springcloud-common
其中common模块是依赖于父项目的.
四 .搭建微服务提供者
[1]创建springcloud-producer子模块,追加maven的配置.
org.springframework.boot spring-boot-starter-web
[2]编写一个controller
@RestControllerpublic class UserService { @Value("${server.port}") private String location; @GetMapping("/user/{id}") public User findUserById(@PathVariable("id") int id) { return new User(id,"trke",location); }}
[3]编写配置文件
server: port: 8000
五 .搭建微服务的消费者
[1]引入依赖
org.springframework.boot spring-boot-starter-web com.trek.springcloud springcloud-common 0.0.1-SNAPSHOT
[2]添加启动类
@SpringBootApplicationpublic class ConsumerStarter { public static void main(String[] args) { SpringApplication.run(ConsumerStarter.class, args); } @Bean public RestTemplate restTemplate() { return new RestTemplate(); }}
为了访问微服务,我们增加一个RestTemplate的模板对象.
[3]访问微服务
@RestControllerpublic class UserController { @Resource private RestTemplate restTemplate; @GetMapping("user/{id}") public User queryUser(@PathVariable("id") int id) { return restTemplate.getForObject("http://127.0.0.1:8000/user/"+id, User.class); }}
[4]配置文件
server: port: 9000