java版spring cloud分布式微服务:SpringBoot整合SpringCloud

建立父Maven工程
首先咱们建立一个Maven项目了解springcloud架构能够加求求:三五三六二四七二五九
咱们把此项目当作咱们项目的父项目,之后咱们全部的子项目都应该继承这个项目,来看一下此项目的pom.xml文件都是依赖了什么java

<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>cn.org.zhixiang</groupId>
    <artifactId>spring-cloud-demo</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>pom</packaging>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.3.RELEASE</version>
    </parent>

    <dependencyManagement>
            <dependencies>
                <dependency>
                    <groupId>org.springframework.cloud</groupId>
                    <artifactId>spring-cloud-dependencies</artifactId>
                    <version>Finchley.RELEASE</version>
                    <type>pom</type>
                    <scope>import</scope>
                </dependency>
            </dependencies>
    </dependencyManagement>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
    </properties>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

建立服务提供者web

右键项目名称:spring-cloud-demo,选择New–>Module,选择Maven,而后点击next,而后呢artifactId给项目取名为cloud-demo-provider,如今服务提供者项目就建立好了。由于接下来咱们测试须要访问程序,因此接着咱们引入所需的web依赖。spring

<dependencies>
   <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
   </dependency>
</dependencies>

2.在resources文件夹下新建application.properties或者application.yml(两者任选其一),添加以下配置:apache

properties文件这样写
spring.application.name=provider-demo
server.port=8078
yml这样写架构

spring:
application:
name: provider-demo
server:
port: 8078
spring.application.name呢,意思是给给项目起个名字叫作provider-demoapp

server.port呢,指定项目启动时的端口为8078dom

3 .在Java文件夹下建立包cn.org.zhixiang(这个包名是个人网站域名的反转,你们能够自行定义),在此包下新建CloudDemoProviderApplication类maven

package cn.org.zhixiang;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class CloudDemoProviderApplication {

   public static void main(String[] args) {
      SpringApplication.run(CloudDemoProviderApplication.class, args);
   }
}

@SpringBootApplication注解呢是SpringBoot的一个组合注解,主要注解为@Configuration、@EnableAutoConfiguration、@ComponentScanide

咱们使用SpringBoot启动项目时通常都会使用此注解,一会启动项目的时候咱们在这个类中右键选择run CloudDemoProviderApplication 就能够启动了svg

4.在cn.org.zhxiang包下新建包domain,在domain包中建立一个User实体类

public class User{

    private long id;
    private String name;
    private int age;
    public long getId() {
        return id;
    }

    public void setId(long id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}

5.在cn.org.zhxiang包下新建包controller,在controller包中建立一个类UserController

@RestController
@RequestMapping("/user")
public class UserController {

    @GetMapping(value = "/getUser/{id}")
    public User getUser(@PathVariable Long id){
        User user=new User();
        user.setId(id);
        user.setName("张三");
        user.setAge(18);
        return user;
    }
    @GetMapping(value = "/getName")
    public String getName(){
        return "张三";
    }
}

@RestController注解呢,其实就是@ResponseBody + @Controller的组合注解,@GetMapping呢,至关于@RequestMapping(value="", method = RequestMethod.GET)