spring-cloud

02-spring-cloud項目

02-spring-cloud項目下的pom.xml

這裏寫圖片描述

<?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>com.lanou</groupId>
    <artifactId>02-spring-cloud</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>pom</packaging>

    <name>02-spring-cloud</name>
    <description>Demo project for Spring Boot</description>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.3.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

    <modules>
        <module>eureka-service</module>
        <module>user-server</module>
        <module>qwer</module>
        <module>user-server01</module>
    </modules>

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

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

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

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>${spring-cloud.version}</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>
        </plugins>
    </build>

</project>

註冊中心 02-spring-cloud項目下的eureka-service項目

這裏寫圖片描述

eureka-service項目下的pom.xml

<?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>com.lanou</groupId>
    <artifactId>eureka-service</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>

    <name>eureka-service</name>
    <description>Demo project for Spring Boot</description>

    <parent>
        <groupId>com.lanou</groupId>
        <artifactId>02-spring-cloud</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <relativePath>../pom.xml</relativePath> <!-- lookup parent from repository -->
    </parent>

    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
        </dependency>

    </dependencies>

    <repositories>
        <repository>
            <id>spring-milestones</id>
            <name>Spring Milestones</name>
            <url>https://repo.spring.io/milestone</url>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </repository>
    </repositories>
</project>

eureka-service項目下的application.yml

eureka:
  client:
    register-with-eureka: false
    fetch-registry: false
server:
  port: 8761

eureka-service項目下的EurekaServiceApplication

package com.lanou;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;

@SpringBootApplication
@EnableEurekaServer
public class EurekaServiceApplication {

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

eureka-service項目下的EurekaServiceApplication

package com.lanou;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;

@RunWith(SpringRunner.class)
@SpringBootTest
public class EurekaServiceApplicationTests {

    @Test
    public void contextLoads() {
    }

}

配置中心一 02-spring-cloud項目下的config-server01項目

這裏寫圖片描述

config-server01項目下的pom.xml

<?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>com.lanou</groupId>
    <artifactId>config-server01</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>

    <name>config-server01</name>
    <description>Demo project for Spring Boot</description>

    <parent>
        <groupId>com.lanou</groupId>
        <artifactId>02-spring-cloud</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <relativePath>../pom.xml</relativePath> <!-- lookup parent from repository -->
    </parent>

    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-config-server</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
        </dependency>
    </dependencies>

    <repositories>
        <repository>
            <id>spring-milestones</id>
            <name>Spring Milestones</name>
            <url>https://repo.spring.io/milestone</url>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </repository>
    </repositories>


</project>

config-server01項目下的application.yml

spring:
  cloud:
    config:
      server:
        native:
          search-locations: classpath:/config
  profiles:
    active: native
  application:
    name: config-server
server:
  port: 8800

config-server01項目下的ConfigServer01ApplicationTests

package com.lanou;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;

@RunWith(SpringRunner.class)
@SpringBootTest
public class ConfigServer01ApplicationTests {

    @Test
    public void contextLoads() {
    }

}

config-server01項目下的ConfigServer01Application

package com.lanou;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.config.server.EnableConfigServer;

@SpringBootApplication
@EnableConfigServer

// 配置中心ConfigServer
// 1.引入ConfigServer的依賴,如果我們希望配置中心也是集羣
// 就要引入eurekaClient的依賴向我們註冊中心進行註冊
// 2.增加@EnableConfigServer註解
// 3.讀取本地的配置文件:在配置文件中配置服務要讀取配置文件的地址
// spring.cloud.config.server.native.search-locations: classpath:/config
// 4.其他服務要讀取的配置文件的命名規則是服務名.yml,
// 如果要加環境名如:服務名-dev.yml
// 5.修改配置文件厚愛別忘了重啓配置中心


// 服務想要從配置中心取配置要成爲ConfigClient
// 1.引入configClient依賴
// 2.application的配置文件要去配置中心讀取
// 我們要在bootstrap.yml中設置好要去讀取配置文件的
// 配置中心的位置spring.cloud.config.uri=http://localhost:8800

// 去配置中心讀取的文件的名稱不再是application.yml
// 而是服務名.yml,所以別忘了在bootstrap.yml設置服務名
// 要測試首先要保證註冊中心是開啓,然後開啓配置中心,最後啓動服務
// eurekaclient feign


// 創建倉庫的時候如果勾選了readMe相當於已經創建了1.0版本了
// 所以必須要先pull拉取下來再push將本地代碼進行推送
// 所以從創建一個本地倉庫到同步到github的步驟是
// 1.git init 創建本地倉庫
// 2. git add 要提交的內容
// 3.commit -m "提交信息" 將代碼提交到本地倉庫
// 4.git remote add origin git地址 將本地倉庫與gitHub上面創建的倉庫進行鏈接
// 5.git pull --rebase origin master 從連接到的gitHub倉庫中將最新版本的代碼拉取到本地倉庫
// 6.git push -u origin 分支名 將本地倉庫中的內容推送到gitHub倉庫
//
//
public class ConfigServer01Application {

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

config-server01項目下的user-server.yml

test: uuu

config-server01項目下的user-server-dev.yml

kkk: qqq

註冊中心二 02-spring-cloud項目下的qwer(config-server02)

這裏寫圖片描述

qwer項目的pom.xml

<?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>com.lanou</groupId>
    <artifactId>qwer</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>

    <name>qwer</name>
    <description>Demo project for Spring Boot</description>

    <parent>
        <groupId>com.lanou</groupId>
        <artifactId>02-spring-cloud</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <relativePath>../pom.xml</relativePath> <!-- lookup parent from repository -->
    </parent>

    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-config-server</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
        </dependency>
    </dependencies>

    <repositories>
        <repository>
            <id>spring-milestones</id>
            <name>Spring Milestones</name>
            <url>https://repo.spring.io/milestone</url>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </repository>
    </repositories>

</project>

qwer項目的application.yml

spring:
  cloud:
    config:
      server:
        git:
          uri: https://github.com/2421947285/springconfig
          search-paths: config
      label: master
  application:
    name: config-server
server:
  port: 8801

qwer項目的QwerApplicationTests

package com.lanou;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;

@RunWith(SpringRunner.class)
@SpringBootTest
public class QwerApplicationTests {

    @Test
    public void contextLoads() {
    }

}

QwerApplication

package com.lanou;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.config.server.EnableConfigServer;

@SpringBootApplication
@EnableConfigServer
public class QwerApplication {
    public static void main(String[] args) {
        SpringApplication.run(QwerApplication.class, args);
    }
}

02-spring-cloud項目下的user-server項目

這裏寫圖片描述

user-server項目下的pom.xml

<?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>com.lanou</groupId>
    <artifactId>user-server</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>

    <name>user-server</name>
    <description>Demo project for Spring Boot</description>

    <parent>
        <groupId>com.lanou</groupId>
        <artifactId>02-spring-cloud</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <relativePath>../pom.xml</relativePath> <!-- lookup parent from repository -->
    </parent>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-config</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
        </dependency>
    </dependencies>

    <repositories>
        <repository>
            <id>spring-milestones</id>
            <name>Spring Milestones</name>
            <url>https://repo.spring.io/milestone</url>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </repository>
    </repositories>

</project>

user-server項目下的bootstrap.yml

spring:
  cloud:
    config:
      uri: http://localhost:8800/
      fail-fast: true
  profiles:
    active: dev
  application:
    name: user-server

user-server項目下的UserServerApplication

package com.lanou;

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

@SpringBootApplication
public class UserServerApplication {

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

user-server項目下的UserController

package com.lanou.controller;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class UserController {

    @Value("${test}")
    private String text;

    @Value("${kkk}")
    private String kkk;

    @RequestMapping("/config")
    public  String config(){
        return "user-server test:" + text + "kkk :" + kkk;
    }
}

02-spring-cloud項目下的user-server01項目

這裏寫圖片描述

user-server01項目下的pom.xml

<?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>com.lanou</groupId>
    <artifactId>user-server01</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>

    <name>user-server01</name>
    <description>Demo project for Spring Boot</description>

    <parent>
        <groupId>com.lanou</groupId>
        <artifactId>02-spring-cloud</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <relativePath>../pom.xml</relativePath> <!-- lookup parent from repository -->
    </parent>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-config</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
        </dependency>
    </dependencies>

    <repositories>
        <repository>
            <id>spring-milestones</id>
            <name>Spring Milestones</name>
            <url>https://repo.spring.io/milestone</url>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </repository>
    </repositories>


</project>

user-server01項目下的bootstrap.yml

spring:
  cloud:
    config:
      fail-fast: true
      discovery:
        enabled: true
        service-id: config-server
  application:
    name: user-server
  profiles:
    active: dev
server:
  port: 8081

user-server01項目下的UserServer01Application

package com.lanou;

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

@SpringBootApplication
public class UserServer01Application {

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

user-server01項目下的UserController

package com.lanou.controller;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class UserController {

    @Value("${test}")
    private String text;

    @Value("${kkk}")
    private String kkk;

    @RequestMapping("/config")
    public  String config(){
        return "user-server test:" + text + "kkk :" + kkk;
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章