(三)SpringBoot整合Apollo

匿名 (未验证) 提交于 2019-12-02 23:45:01

一、将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,到此为止,成功搭建好了!

  

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!