1、链接:https://github.com/nobodyiam/apollo-build-scripts
2、下载后目录如下:
安装服务端要求:Java 1.8+、MySQL:5.6.5+、服务器内存2G以上。
1)进入sql文件夹,将sql导入到数据库中
2)修改demo.sh文件。为了避免异常,请将127.0.0.1更换成真实ip地址。
3、修改完启动脚本(windows上需要安装Git)。 bash demo.sh start
安装成功后如下图所示。8080为注册中心服务,8070为后台管理系统服务。
4、打开http://localhost:8070,后台管理
输入用户名apollo,密码admin后登录。登陆后可创建项目。
创建项目时,应用id和客户端的app.properties文件的app.id对应。
添加一个配置key/value后,点击发布。
5、搭建springboot客户端,创建maven工程,在pom文件中加入如下配置:
<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> <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> </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> |
6、在工程resources目录下创建application.yml文件
#服务端口 server: port: 8001 #注册中心服务名 spring: application: name: springboot-abl
#apollo用于注册发现 apollo: meta: http://127.0.0.1:8080 #eureka服务注册 eureka: client: service-url: defaultZone: http://127.0.0.1:8080/eureka |
7、在工程resources目录下创建apollo-env.properties文件
local.meta=http://127.0.0.1:8080 dev.meta=http://127.0.0.1:8080 fat.meta=${fat_meta} uat.meta=${uat_meta} lpt.meta=${lpt_meta} pro.meta=${pro_meta} |
8、在工程resources目录下创建META-INF/app.properties文件
app.id和后台的应用id对应。
9、添加server.propertie文件。在Mac/Linux下,添加/opt/settings/server.properties,或在windows下,添加C:\opt\settings\server.properties。Server.properties文件内容如下:
10、项目中,添加controller类和App启动类后,项目结构如下:
App启动类内容如下:
@EnableApolloConfig @SpringBootApplication public class App { public static void main(String[] args) { SpringApplication.run(App.class,args); } } |
IndexController类内容如下。
@RestController public class IndexController {
@Value("${name:test}") private String name;
@RequestMapping("/getName") public String getName(){ return this.name; } } |
11、先启动服务端,再启动客户端。Apollo 将扫描类中的所有带@Value的字段,找到对应的字段注入相应的值。
12、引用
github
蚂蚁课堂