码迷,mamicode.com
首页 > 编程语言 > 详细

(三)SpringBoot整合Apollo

时间:2019-06-30 09:17:46      阅读:85      评论:0      收藏:0      [点我收藏+]

标签:inf   put   build   vat   local   本地   --   图片   hang   

一、将Apollo的源码依赖打入到本地仓库   

  1、解压apollo-master.zip,进入apollo-master\scripts目录

  2、点击build.bat文件就能打入依赖(要配置好maven的环境,他会自动的找到你maven的本

地仓库)

二、创建一个SpringBoot项目

  1、创建项目springboot-apollo

  2、导入依赖信息

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

<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>Finchley.RC1</spring-cloud.version>
</properties>

<groupId>org.ybl.test</groupId>
<artifactId>springboot-apollo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>springboot-apollo</name>
<description>Demo project for Spring Boot</description>

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
        <!-- <exclusions> <exclusion> <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId> </exclusion> </exclusions> -->
    </dependency>

    <!-- apollo 携程apollo配置中心框架 -->
    <dependency>
        <groupId>com.ctrip.framework.apollo</groupId>
        <artifactId>apollo-client</artifactId>
        <version>1.0.0</version>
    </dependency>
    <dependency>
        <groupId>com.ctrip.framework.apollo</groupId>
        <artifactId>apollo-core</artifactId>
        <version>1.0.0</version>
    </dependency>


    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <optional>true</optional>
    </dependency>
    <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>fastjson</artifactId>
        <version>1.2.3</version>
    </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>
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <configuration>
        <source>1.8</source>
        <target>1.8</target>
    </configuration>
</plugin>
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-resources-plugin</artifactId>
    <version>3.0.1</version>
    <executions>
        <execution>
            <id>copy-conf</id>
            <phase>package</phase>
            <goals>
                <goal>copy-resources</goal>
            </goals>
            <configuration>
                <encoding>UTF-8</encoding>
                <outputDirectory>${project.build.directory}/ext/conf</outputDirectory>
                <resources>
                    <resource>
                        <directory>ext/conf</directory>
                        <includes>
                            <include>logback.xml</include>
                        </includes>
                        <filtering>true</filtering>
                    </resource>
                </resources>
            </configuration>
        </execution>
    </executions>
</plugin>
<plugin>
    <groupId>org.jacoco</groupId>
    <artifactId>jacoco-maven-plugin</artifactId>
    <version>0.7.5.201505241946</version>
    <executions>
        <execution>
            <id>default-prepare-agent</id>
            <goals>
                <goal>prepare-agent</goal>
            </goals>
        </execution>
        <execution>
            <id>default-prepare-agent-integration</id>
            <goals>
                <goal>prepare-agent-integration</goal>
            </goals>
        </execution>
    </executions>
</plugin>
<plugin>
    <groupId>com.spotify</groupId>
    <artifactId>docker-maven-plugin</artifactId>
    <version>0.4.3</version>
    <configuration>
        <imageName>hy_uav_gateway</imageName>
        <dockerDirectory>src/main/docker</dockerDirectory>
        <resources>
            <resource>
                <targetPath>/</targetPath>
                <directory>${project.build.directory}</directory>
                <include>${project.build.finalName}.jar</include>
                <include>ext/conf/logback.xml</include>
            </resource>
        </resources>
    </configuration>
</plugin>
</plugins>
</build>

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

  3、添加配置文件

  application.yml

server:
  port: 8001
spring:
  application:
    name: springboot-apollo
eureka:
  client:
    service-url:
      defaultZone: http://192.168.159.128:8080/eureka  

  eureka:client:service-url:defaultZone后面的地址是Apollo启动后的地址

技术图片

  apollo-env.properties:

local.meta=http://192.168.159.128:8080
dev.meta=http://192.168.159.128:8080
fat.meta=${fat_meta}
uat.meta=${uat_meta}
lpt.meta=${lpt_meta}
pro.meta=${pro_meta}

  在resources目录下新建一个META-INF文件夹,在这个文件夹下新建一个app.properties   

app.id=test_apollo

app.id的名字要和Apollo中的AppId名字一样

 技术图片

三、修改环境

修改/opt/settings/server.properties(Mac/Linux)或C:\opt\settings\server.properties(Windows)文件,设置env为DEV:

这里我们是在windows环境下运行,所以在windows目录下创建

 技术图片

 

技术图片

四、测试

修改主启动类,在主启动类上添加@EnableApolloConfig注解

@EnableApolloConfig
@SpringBootApplication
public class SpringbootApolloApplication {

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

}

新建IndexController.java文件

 

@RestController
public class IndexController {
    @Value("${zhangsan:test}")
    private String zhangsan;

    @RequestMapping("/getZhangsan")
    public String getZhangsan(){
        return zhangsan;
    }
}

在Apollo中新建zhangsan的配置文件

 技术图片

点击发布:

启动springboot项目:

访问http://127.0.0.1:8001/getZhangsan

 技术图片

成功访问!!

修改value的值为“wangmazi”后,点击发布

 技术图片

OK,到此为止,成功搭建好了!

 

  

 

(三)SpringBoot整合Apollo

标签:inf   put   build   vat   local   本地   --   图片   hang   

原文地址:https://www.cnblogs.com/lindev/p/11108558.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!