一 .概述
在本次的springcloud之中,我们使用Maven来管理我们的整个内容,为了方便后面的演示,本次将基本的内容搭建起来.
在springcloud之中,版本是一个比较重要的话题,
上面是官网给出的适配模式,我们本次使用1.5x版本的springboot和E版本的springcloud.
二 .搭建父项目
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.9.RELEASE</version> <relativePath /> </parent> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>Edgware.SR5</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <target>1.8</target> <source>1.8</source> </configuration> </plugin> </plugins> </build>
三 .搭建公共模块
在后面我们常常需要使用的一些公共模块,本次我们直接将这一部分的内容抽成一个公共的模块.
<parent> <groupId>com.trek.springcloud</groupId> <artifactId>springcloud-parent</artifactId> <version>0.0.1-SNAPSHOT</version> </parent> <artifactId>springcloud-common</artifactId>
其中common模块是依赖于父项目的.
四 .搭建微服务提供者
[1]创建springcloud-producer子模块,追加maven的配置.
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency>
[2]编写一个controller
@RestController public 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]引入依赖
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>com.trek.springcloud</groupId> <artifactId>springcloud-common</artifactId> <version>0.0.1-SNAPSHOT</version> </dependency>
[2]添加启动类
@SpringBootApplication public class ConsumerStarter { public static void main(String[] args) { SpringApplication.run(ConsumerStarter.class, args); } @Bean public RestTemplate restTemplate() { return new RestTemplate(); } }
为了访问微服务,我们增加一个RestTemplate的模板对象.
[3]访问微服务
@RestController public 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