实例代码:https://github.com/michaelzhanghe/springcloud-02-confsrv.git
在Git上的配置文件: https://github.com/michaelzhanghe/springcloud-config-repo.git
-----------------------Windows10-----------------------
pom.xml加入Json依赖
<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-core --> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-core</artifactId> <version>2.9.5</version> </dependency>
加入注解@EnableConfigServer已开启configuration server功能
创建保存configuration的文件,提供给其他服务进行rest远程调用configuration properties, 命名规则是应用名字加上“-”加上环境名字的YAML配置文件。
暴露8888访问端口,配置文件存储在git上, searchPaths配置查找的路径。
server: port: 8888 spring: cloud: config: server: encrypt.enabled: false git: uri: https://github.com/michaelzhanghe/springcloud-config-repo searchPaths: licensingservice,organizationservice username: 改为自己的github的登录名 password: 改为自己的github的登录密码
2018-04-17 18:37:05.407 INFO 236 --- [ main] s.c.a.AnnotationConfigApplicationContext : Refreshing org.springframework.context.annotation.AnnotationConfigApplicationContext@411f53a0: startup date [Tue Apr 17 18:37:05 CST 2018]; root of context hierarchy 2018-04-17 18:37:05.630 INFO 236 --- [ main] trationDelegate$BeanPostProcessorChecker : Bean 'configurationPropertiesRebinderAutoConfiguration' of type [org.springframework.cloud.autoconfigure.ConfigurationPropertiesRebinderAutoConfiguration$$EnhancerBySpringCGLIB$$859e9b21] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) . ____ _ __ _ _ /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ \\/ ___)| |_)| | | | | || (_| | ) ) ) ) ' |____| .__|_| |_|_| |_\__, | / / / / =========|_|==============|___/=/_/_/_/ :: Spring Boot :: (v2.0.1.RELEASE) 2018-04-17 18:37:07.119 INFO 236 --- [ main] c.c.Springcloud02ConfsrvApplication : No active profile set, falling back to default profiles: default 2018-04-17 18:37:07.131 INFO 236 --- [ main] ConfigServletWebServerApplicationContext : Refreshing org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@6986bbaf: startup date [Tue Apr 17 18:37:07 CST 2018]; parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@411f53a0 2018-04-17 18:37:07.636 INFO 236 --- [ main] o.s.b.f.s.DefaultListableBeanFactory : Overriding bean definition for bean 'environmentWebEndpointExtension' with a different definition: replacing [Root bean: class [null]; scope=; abstract=false; lazyInit=false; autowireMode=3; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=org.springframework.boot.actuate.autoconfigure.env.EnvironmentEndpointAutoConfiguration; factoryMethodName=environmentWebEndpointExtension; initMethodName=null; destroyMethodName=(inferred); defined in class path resource [org/springframework/boot/actuate/autoconfigure/env/EnvironmentEndpointAutoConfiguration.class]] with [Root bean: class [null]; scope=; abstract=false; lazyInit=false; autowireMode=3; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=org.springframework.cloud.autoconfigure.LifecycleMvcEndpointAutoConfiguration$EndpointConfiguration; factoryMethodName=environmentWebEndpointExtension; initMethodName=null; destroyMethodName=(inferred); defined in class path resource [org/springframework/cloud/autoconfigure/LifecycleMvcEndpointAutoConfiguration$EndpointConfiguration.class]] 2018-04-17 18:37:07.892 INFO 236 --- [ main] o.s.cloud.context.scope.GenericScope : BeanFactory id=06a920f8-4e72-3672-9ad1-5bc768bf7934 2018-04-17 18:37:07.959 INFO 236 --- [ main] trationDelegate$BeanPostProcessorChecker : Bean 'org.springframework.cloud.autoconfigure.ConfigurationPropertiesRebinderAutoConfiguration' of type [org.springframework.cloud.autoconfigure.ConfigurationPropertiesRebinderAutoConfiguration$$EnhancerBySpringCGLIB$$859e9b21] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) 2018-04-17 18:37:08.267 INFO 236 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 8888 (http) 2018-04-17 18:37:08.344 INFO 236 --- [ main] o.apache.catalina.core.StandardService : Starting service [Tomcat] 2018-04-17 18:37:08.344 INFO 236 --- [ main] org.apache.catalina.core.StandardEngine : Starting Servlet Engine: Apache Tomcat/8.5.29 2018-04-17 18:37:08.352 INFO 236 --- [ost-startStop-1] o.a.catalina.core.AprLifecycleListener : The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: [C:\Program Files\Java\jdk1.8.0_151\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:/Program Files/Java/jre1.8.0_151/bin/server;C:/Program Files/Java/jre1.8.0_151/bin;C:/Program Files/Java/jre1.8.0_151/lib/amd64;C:\Program Files\IBM\WebSphere MQ\java\lib;C:\Program Files\IBM\WebSphere MQ\java\lib64;C:\ProgramData\Oracle\Java\javapath;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\work\dev tools doc\apache-maven-3.5.2\bin;C:\work\dev tools doc\sqlplus_client_12_2;C:\work\dev tools doc\sqlplus_client_12_2\instantclient_12_2_sdk;C:\Windows\system32\wbem;C:\Program Files (x86)\IVT Corporation\BlueSoleil\Mobile;C:\Program Files\IBM\WebSphere MQ\bin64;C:\Program Files\IBM\WebSphere MQ\bin;C:\Program Files\IBM\WebSphere MQ\tools\c\samples\bin;C:\Program Files\IBM\Bluemix\bin;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Users\Administrator\AppData\Local\Microsoft\WindowsApps;;C:\Program Files (x86)\SSH Communications Security\SSH Secure Shell;C:\work\dev tools doc\spring-tool-suite-3.9.1.RELEASE-e4.7.1a-win32-x86_64\sts-bundle\sts-3.9.1.RELEASE;;.] 2018-04-17 18:37:08.454 INFO 236 --- [ost-startStop-1] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext 2018-04-17 18:37:08.454 INFO 236 --- [ost-startStop-1] o.s.web.context.ContextLoader : Root WebApplicationContext: initialization completed in 1323 ms 2018-04-17 18:37:09.411 INFO 236 --- [ost-startStop-1] o.s.b.w.servlet.ServletRegistrationBean : Servlet dispatcherServlet mapped to [/] 2018-04-17 18:37:09.415 INFO 236 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'characterEncodingFilter' to: [/*] 2018-04-17 18:37:09.416 INFO 236 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'hiddenHttpMethodFilter' to: [/*] 2018-04-17 18:37:09.416 INFO 236 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'httpPutFormContentFilter' to: [/*] 2018-04-17 18:37:09.416 INFO 236 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'requestContextFilter' to: [/*] 2018-04-17 18:37:09.416 INFO 236 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'httpTraceFilter' to: [/*] 2018-04-17 18:37:09.416 INFO 236 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'webMvcMetricsFilter' to: [/*] 2018-04-17 18:37:09.531 INFO 236 --- [ main] o.s.w.s.handler.SimpleUrlHandlerMapping : Mapped URL path [/**/favicon.ico] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler] 2018-04-17 18:37:09.717 INFO 236 --- [ main] s.w.s.m.m.a.RequestMappingHandlerAdapter : Looking for @ControllerAdvice: org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@6986bbaf: startup date [Tue Apr 17 18:37:07 CST 2018]; parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@411f53a0 2018-04-17 18:37:09.787 INFO 236 --- [ main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/error]}" onto public org.springframework.http.ResponseEntity<java.util.Map<java.lang.String, java.lang.Object>> org.springframework.boot.autoconfigure.web.servlet.error.BasicErrorController.error(javax.servlet.http.HttpServletRequest) 2018-04-17 18:37:09.788 INFO 236 --- [ main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/error],produces=[text/html]}" onto public org.springframework.web.servlet.ModelAndView org.springframework.boot.autoconfigure.web.servlet.error.BasicErrorController.errorHtml(javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse) 2018-04-17 18:37:09.794 INFO 236 --- [ main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/encrypt],methods=[POST]}" onto public java.lang.String org.springframework.cloud.config.server.encryption.EncryptionController.encrypt(java.lang.String,org.springframework.http.MediaType) 2018-04-17 18:37:09.795 INFO 236 --- [ main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/encrypt/{name}/{profiles}],methods=[POST]}" onto public java.lang.String org.springframework.cloud.config.server.encryption.EncryptionController.encrypt(java.lang.String,java.lang.String,java.lang.String,org.springframework.http.MediaType) 2018-04-17 18:37:09.795 INFO 236 --- [ main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/decrypt/{name}/{profiles}],methods=[POST]}" onto public java.lang.String org.springframework.cloud.config.server.encryption.EncryptionController.decrypt(java.lang.String,java.lang.String,java.lang.String,org.springframework.http.MediaType) 2018-04-17 18:37:09.795 INFO 236 --- [ main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/decrypt],methods=[POST]}" onto public java.lang.String org.springframework.cloud.config.server.encryption.EncryptionController.decrypt(java.lang.String,org.springframework.http.MediaType) 2018-04-17 18:37:09.795 INFO 236 --- [ main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/encrypt/status],methods=[GET]}" onto public java.util.Map<java.lang.String, java.lang.Object> org.springframework.cloud.config.server.encryption.EncryptionController.status() 2018-04-17 18:37:09.795 INFO 236 --- [ main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/key],methods=[GET]}" onto public java.lang.String org.springframework.cloud.config.server.encryption.EncryptionController.getPublicKey() 2018-04-17 18:37:09.795 INFO 236 --- [ main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/key/{name}/{profiles}],methods=[GET]}" onto public java.lang.String org.springframework.cloud.config.server.encryption.EncryptionController.getPublicKey(java.lang.String,java.lang.String) 2018-04-17 18:37:09.801 INFO 236 --- [ main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/{name}-{profiles}.properties],methods=[GET]}" onto public org.springframework.http.ResponseEntity<java.lang.String> org.springframework.cloud.config.server.environment.EnvironmentController.properties(java.lang.String,java.lang.String,boolean) throws java.io.IOException 2018-04-17 18:37:09.801 INFO 236 --- [ main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/{name}-{profiles}.yml || /{name}-{profiles}.yaml],methods=[GET]}" onto public org.springframework.http.ResponseEntity<java.lang.String> org.springframework.cloud.config.server.environment.EnvironmentController.yaml(java.lang.String,java.lang.String,boolean) throws java.lang.Exception 2018-04-17 18:37:09.801 INFO 236 --- [ main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/{label}/{name}-{profiles}.json],methods=[GET]}" onto public org.springframework.http.ResponseEntity<java.lang.String> org.springframework.cloud.config.server.environment.EnvironmentController.labelledJsonProperties(java.lang.String,java.lang.String,java.lang.String,boolean) throws java.lang.Exception 2018-04-17 18:37:09.801 INFO 236 --- [ main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/{label}/{name}-{profiles}.properties],methods=[GET]}" onto public org.springframework.http.ResponseEntity<java.lang.String> org.springframework.cloud.config.server.environment.EnvironmentController.labelledProperties(java.lang.String,java.lang.String,java.lang.String,boolean) throws java.io.IOException 2018-04-17 18:37:09.801 INFO 236 --- [ main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/{name}/{profiles:.*[^-].*}],methods=[GET]}" onto public org.springframework.cloud.config.environment.Environment org.springframework.cloud.config.server.environment.EnvironmentController.defaultLabel(java.lang.String,java.lang.String) 2018-04-17 18:37:09.802 INFO 236 --- [ main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/{name}/{profiles}/{label:.*}],methods=[GET]}" onto public org.springframework.cloud.config.environment.Environment org.springframework.cloud.config.server.environment.EnvironmentController.labelled(java.lang.String,java.lang.String,java.lang.String) 2018-04-17 18:37:09.802 INFO 236 --- [ main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/{name}-{profiles}.json],methods=[GET]}" onto public org.springframework.http.ResponseEntity<java.lang.String> org.springframework.cloud.config.server.environment.EnvironmentController.jsonProperties(java.lang.String,java.lang.String,boolean) throws java.lang.Exception 2018-04-17 18:37:09.802 INFO 236 --- [ main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/{label}/{name}-{profiles}.yml || /{label}/{name}-{profiles}.yaml],methods=[GET]}" onto public org.springframework.http.ResponseEntity<java.lang.String> org.springframework.cloud.config.server.environment.EnvironmentController.labelledYaml(java.lang.String,java.lang.String,java.lang.String,boolean) throws java.lang.Exception 2018-04-17 18:37:09.806 INFO 236 --- [ main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/{name}/{profile}/**],methods=[GET],params=[useDefaultLabel]}" onto public java.lang.String org.springframework.cloud.config.server.resource.ResourceController.retrieve(java.lang.String,java.lang.String,javax.servlet.http.HttpServletRequest,boolean) throws java.io.IOException 2018-04-17 18:37:09.807 INFO 236 --- [ main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/{name}/{profile}/{label}/**],methods=[GET]}" onto public java.lang.String org.springframework.cloud.config.server.resource.ResourceController.retrieve(java.lang.String,java.lang.String,java.lang.String,javax.servlet.http.HttpServletRequest,boolean) throws java.io.IOException 2018-04-17 18:37:09.807 INFO 236 --- [ main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/{name}/{profile}/{label}/**],methods=[GET],produces=[application/octet-stream]}" onto public synchronized byte[] org.springframework.cloud.config.server.resource.ResourceController.binary(java.lang.String,java.lang.String,java.lang.String,javax.servlet.http.HttpServletRequest) throws java.io.IOException 2018-04-17 18:37:09.833 INFO 236 --- [ main] o.s.w.s.handler.SimpleUrlHandlerMapping : Mapped URL path [/webjars/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler] 2018-04-17 18:37:09.834 INFO 236 --- [ main] o.s.w.s.handler.SimpleUrlHandlerMapping : Mapped URL path [/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler] 2018-04-17 18:37:11.187 INFO 236 --- [ main] o.s.cloud.commons.util.InetUtils : Cannot determine local hostname 2018-04-17 18:37:11.289 INFO 236 --- [ main] o.s.b.a.e.web.EndpointLinksResolver : Exposing 2 endpoint(s) beneath base path '/actuator' 2018-04-17 18:37:11.297 INFO 236 --- [ main] s.b.a.e.w.s.WebMvcEndpointHandlerMapping : Mapped "{[/actuator/health],methods=[GET],produces=[application/vnd.spring-boot.actuator.v2+json || application/json]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.web.servlet.AbstractWebMvcEndpointHandlerMapping$OperationHandler.handle(javax.servlet.http.HttpServletRequest,java.util.Map<java.lang.String, java.lang.String>) 2018-04-17 18:37:11.297 INFO 236 --- [ main] s.b.a.e.w.s.WebMvcEndpointHandlerMapping : Mapped "{[/actuator/info],methods=[GET],produces=[application/vnd.spring-boot.actuator.v2+json || application/json]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.web.servlet.AbstractWebMvcEndpointHandlerMapping$OperationHandler.handle(javax.servlet.http.HttpServletRequest,java.util.Map<java.lang.String, java.lang.String>) 2018-04-17 18:37:11.298 INFO 236 --- [ main] s.b.a.e.w.s.WebMvcEndpointHandlerMapping : Mapped "{[/actuator],methods=[GET],produces=[application/vnd.spring-boot.actuator.v2+json || application/json]}" onto protected java.util.Map<java.lang.String, java.util.Map<java.lang.String, org.springframework.boot.actuate.endpoint.web.Link>> org.springframework.boot.actuate.endpoint.web.servlet.WebMvcEndpointHandlerMapping.links(javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse) 2018-04-17 18:37:11.346 INFO 236 --- [ main] o.s.j.e.a.AnnotationMBeanExporter : Registering beans for JMX exposure on startup 2018-04-17 18:37:11.355 INFO 236 --- [ main] o.s.j.e.a.AnnotationMBeanExporter : Bean with name 'configurationPropertiesRebinder' has been autodetected for JMX exposure 2018-04-17 18:37:11.356 INFO 236 --- [ main] o.s.j.e.a.AnnotationMBeanExporter : Bean with name 'environmentManager' has been autodetected for JMX exposure 2018-04-17 18:37:11.357 INFO 236 --- [ main] o.s.j.e.a.AnnotationMBeanExporter : Bean with name 'refreshScope' has been autodetected for JMX exposure 2018-04-17 18:37:11.359 INFO 236 --- [ main] o.s.j.e.a.AnnotationMBeanExporter : Located managed bean 'environmentManager': registering with JMX server as MBean [org.springframework.cloud.context.environment:name=environmentManager,type=EnvironmentManager] 2018-04-17 18:37:11.369 INFO 236 --- [ main] o.s.j.e.a.AnnotationMBeanExporter : Located managed bean 'refreshScope': registering with JMX server as MBean [org.springframework.cloud.context.scope.refresh:name=refreshScope,type=RefreshScope] 2018-04-17 18:37:11.379 INFO 236 --- [ main] o.s.j.e.a.AnnotationMBeanExporter : Located managed bean 'configurationPropertiesRebinder': registering with JMX server as MBean [org.springframework.cloud.context.properties:name=configurationPropertiesRebinder,context=6986bbaf,type=ConfigurationPropertiesRebinder] 2018-04-17 18:37:11.436 INFO 236 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8888 (http) with context path '' 2018-04-17 18:37:11.440 INFO 236 --- [ main] c.c.Springcloud02ConfsrvApplication : Started Springcloud02ConfsrvApplication in 7.524 seconds (JVM running for 7.922) 2018-04-17 18:37:16.943 INFO 236 --- [nio-8888-exec-1] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring FrameworkServlet 'dispatcherServlet' 2018-04-17 18:37:16.943 INFO 236 --- [nio-8888-exec-1] o.s.web.servlet.DispatcherServlet : FrameworkServlet 'dispatcherServlet': initialization started 2018-04-17 18:37:16.957 INFO 236 --- [nio-8888-exec-1] o.s.web.servlet.DispatcherServlet : FrameworkServlet 'dispatcherServlet': initialization completed in 14 ms 2018-04-17 18:37:23.526 INFO 236 --- [nio-8888-exec-1] o.s.cloud.commons.util.InetUtils : Cannot determine local hostname 2018-04-17 18:37:23.587 INFO 236 --- [nio-8888-exec-1] s.c.a.AnnotationConfigApplicationContext : Refreshing org.springframework.context.annotation.AnnotationConfigApplicationContext@3322fe46: startup date [Tue Apr 17 18:37:23 CST 2018]; root of context hierarchy 2018-04-17 18:37:23.635 INFO 236 --- [nio-8888-exec-1] o.s.c.c.s.e.NativeEnvironmentRepository : Adding property source: file:/C:/Users/Administrator/AppData/Local/Temp/config-repo-8017782463306449746/licensingservice/licensingservice.yml 2018-04-17 18:37:23.635 INFO 236 --- [nio-8888-exec-1] s.c.a.AnnotationConfigApplicationContext : Closing org.springframework.context.annotation.AnnotationConfigApplicationContext@3322fe46: startup date [Tue Apr 17 18:37:23 CST 2018]; root of context hierarchy 2018-04-17 18:37:30.805 INFO 236 --- [nio-8888-exec-3] o.s.cloud.commons.util.InetUtils : Cannot determine local hostname 2018-04-17 18:37:30.832 INFO 236 --- [nio-8888-exec-3] s.c.a.AnnotationConfigApplicationContext : Refreshing org.springframework.context.annotation.AnnotationConfigApplicationContext@1c019cda: startup date [Tue Apr 17 18:37:30 CST 2018]; root of context hierarchy 2018-04-17 18:37:30.841 INFO 236 --- [nio-8888-exec-3] o.s.c.c.s.e.NativeEnvironmentRepository : Adding property source: file:/C:/Users/Administrator/AppData/Local/Temp/config-repo-8017782463306449746/licensingservice/licensingservice-dev.yml 2018-04-17 18:37:30.841 INFO 236 --- [nio-8888-exec-3] o.s.c.c.s.e.NativeEnvironmentRepository : Adding property source: file:/C:/Users/Administrator/AppData/Local/Temp/config-repo-8017782463306449746/licensingservice/licensingservice.yml 2018-04-17 18:37:30.841 INFO 236 --- [nio-8888-exec-3] s.c.a.AnnotationConfigApplicationContext : Closing org.springframework.context.annotation.AnnotationConfigApplicationContext@1c019cda: startup date [Tue Apr 17 18:37:30 CST 2018]; root of context hierarchy
加入/springcloud-02-confsrv/src/main/docker/Dockerfile,JCE是加密工具
FROM openjdk:8-jdk-alpine RUN apk update && apk upgrade && apk add netcat-openbsd && apk add curl RUN mkdir -p /usr/local/configserver RUN echo $JAVA_HOME RUN cd /tmp/ && \ curl -k -LO "http://download.oracle.com/otn-pub/java/jce/8/jce_policy-8.zip" -H 'Cookie: oraclelicense=accept-securebackup-cookie' && \ unzip jce_policy-8.zip && \ rm jce_policy-8.zip && \ yes |cp -v /tmp/UnlimitedJCEPolicyJDK8/*.jar /usr/lib/jvm/java-1.8-openjdk/jre/lib/security/ RUN mkdir -p /home/michael01/springcloudroot/ ADD @[email protected] /home/michael01/springcloudroot/ ENTRYPOINT ["/usr/bin/java", "-jar", "/home/michael01/springcloudroot/@[email protected]"]
加入创建docker镜像的插件
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> <plugin> <artifactId>maven-resources-plugin</artifactId> <executions> <execution> <id>copy-resources</id> <!-- here the phase you need --> <phase>validate</phase> <goals> <goal>copy-resources</goal> </goals> <configuration> <outputDirectory>${basedir}/target/dockerfile</outputDirectory> <resources> <resource> <directory>src/main/docker</directory> <filtering>true</filtering> </resource> </resources> </configuration> </execution> </executions> </plugin> <plugin> <groupId>com.spotify</groupId> <artifactId>docker-maven-plugin</artifactId> <version>0.4.10</version> <configuration> <imageName>${docker.image.name}:${docker.image.tag}</imageName> <dockerDirectory>${basedir}/target/dockerfile</dockerDirectory> <resources> <resource> <targetPath>/</targetPath> <directory>${project.build.directory}</directory> <include>${project.build.finalName}.jar</include> </resource> </resources> </configuration> </plugin> </plugins> </build>
-----------------------linux-----------------------
michael01@michael01-ubuntu01:~/springcloudroot/springcloud-02-confsrv$ mvn clean package docker:build [INFO] Scanning for projects... [INFO] [INFO] --------------< com.cloudlearning:springcloud-02-confsrv >-------------- [INFO] Building springcloud-02-confsrv 0.0.1-SNAPSHOT [INFO] --------------------------------[ jar ]--------------------------------- [INFO] [INFO] --- maven-clean-plugin:3.0.0:clean (default-clean) @ springcloud-02-confsrv --- [INFO] Deleting /home/michael01/springcloudroot/springcloud-02-confsrv/target [INFO] [INFO] --- maven-resources-plugin:3.0.1:copy-resources (copy-resources) @ springcloud-02-confsrv --- [INFO] Using 'UTF-8' encoding to copy filtered resources. [INFO] Copying 1 resource [INFO] [INFO] --- maven-resources-plugin:3.0.1:resources (default-resources) @ springcloud-02-confsrv --- [INFO] Using 'UTF-8' encoding to copy filtered resources. [INFO] Copying 1 resource [INFO] Copying 1 resource [INFO] [INFO] --- maven-compiler-plugin:3.7.0:compile (default-compile) @ springcloud-02-confsrv --- [INFO] Changes detected - recompiling the module! [INFO] Compiling 1 source file to /home/michael01/springcloudroot/springcloud-02-confsrv/target/classes [INFO] [INFO] --- maven-resources-plugin:3.0.1:testResources (default-testResources) @ springcloud-02-confsrv --- [INFO] Using 'UTF-8' encoding to copy filtered resources. [INFO] skip non existing resourceDirectory /home/michael01/springcloudroot/springcloud-02-confsrv/src/test/resources [INFO] [INFO] --- maven-compiler-plugin:3.7.0:testCompile (default-testCompile) @ springcloud-02-confsrv --- [INFO] Changes detected - recompiling the module! [INFO] Compiling 1 source file to /home/michael01/springcloudroot/springcloud-02-confsrv/target/test-classes [INFO] [INFO] --- maven-surefire-plugin:2.21.0:test (default-test) @ springcloud-02-confsrv --- [INFO] [INFO] --- maven-jar-plugin:3.0.2:jar (default-jar) @ springcloud-02-confsrv --- [INFO] Building jar: /home/michael01/springcloudroot/springcloud-02-confsrv/target/springcloud-02-confsrv-0.0.1-SNAPSHOT.jar [INFO] [INFO] --- spring-boot-maven-plugin:2.0.1.RELEASE:repackage (default) @ springcloud-02-confsrv --- [INFO] [INFO] --- docker-maven-plugin:0.4.10:build (default-cli) @ springcloud-02-confsrv --- [INFO] Copying /home/michael01/springcloudroot/springcloud-02-confsrv/target/springcloud-02-confsrv-0.0.1-SNAPSHOT.jar -> /home/michael01/springcloudroot/springcloud-02-confsrv/target/docker/springcloud-02-confsrv-0.0.1-SNAPSHOT.jar [INFO] Copying /home/michael01/springcloudroot/springcloud-02-confsrv/target/dockerfile/Dockerfile -> /home/michael01/springcloudroot/springcloud-02-confsrv/target/docker/Dockerfile [INFO] Building image springcloud-02/confsrv:0.0.1-SNAPSHOT Step 1/8 : FROM openjdk:8-jdk-alpine Pulling from library/openjdk ff3a5c916c92: Already exists 5de5f69f42d7: Already exists fd869c8b9b59: Already exists Digest: sha256:e82316151c501a2a0f73b3089da8dc867816470a464fcb191db9f88c2343ad53 Status: Downloaded newer image for openjdk:8-jdk-alpine ---> 224765a6bdbe Step 2/8 : RUN apk update && apk upgrade && apk add netcat-openbsd && apk add curl ---> Running in c7bc9ac7a0ab fetch http://dl-cdn.alpinelinux.org/alpine/v3.7/main/x86_64/APKINDEX.tar.gz fetch http://dl-cdn.alpinelinux.org/alpine/v3.7/community/x86_64/APKINDEX.tar.gz v3.7.0-149-g46ab307937 [http://dl-cdn.alpinelinux.org/alpine/v3.7/main] v3.7.0-150-g3ea1ba4100 [http://dl-cdn.alpinelinux.org/alpine/v3.7/community] OK: 9051 distinct packages available Upgrading critical system libraries and apk-tools: (1/1) Upgrading apk-tools (2.8.2-r0 -> 2.9.1-r2) Executing busybox-1.27.2-r7.trigger Continuing the upgrade transaction with new apk-tools: fetch http://dl-cdn.alpinelinux.org/alpine/v3.7/main/x86_64/APKINDEX.tar.gz fetch http://dl-cdn.alpinelinux.org/alpine/v3.7/community/x86_64/APKINDEX.tar.gz (1/4) Upgrading musl (1.1.18-r2 -> 1.1.18-r3) (2/4) Upgrading busybox (1.27.2-r7 -> 1.27.2-r8) Executing busybox-1.27.2-r8.post-upgrade (3/4) Upgrading musl-utils (1.1.18-r2 -> 1.1.18-r3) (4/4) Upgrading libtasn1 (4.12-r2 -> 4.12-r3) Executing busybox-1.27.2-r8.trigger OK: 100 MiB in 51 packages (1/1) Installing netcat-openbsd (1.130-r1) Executing busybox-1.27.2-r8.trigger OK: 100 MiB in 52 packages (1/3) Installing libssh2 (1.8.0-r2) (2/3) Installing libcurl (7.59.0-r0) (3/3) Installing curl (7.59.0-r0) Executing busybox-1.27.2-r8.trigger OK: 100 MiB in 55 packages Removing intermediate container c7bc9ac7a0ab ---> 1a9ae051d615 Step 3/8 : RUN mkdir -p /usr/local/configserver ---> Running in 722d924c0586 Removing intermediate container 722d924c0586 ---> da15bd8edf4c Step 4/8 : RUN echo $JAVA_HOME ---> Running in 27c82182949a /usr/lib/jvm/java-1.8-openjdk Removing intermediate container 27c82182949a ---> 5037f86d7153 Step 5/8 : RUN cd /tmp/ && curl -k -LO "http://download.oracle.com/otn-pub/java/jce/8/jce_policy-8.zip" -H 'Cookie: oraclelicense=accept-securebackup-cookie' && unzip jce_policy-8.zip && rm jce_policy-8.zip && yes |cp -v /tmp/UnlimitedJCEPolicyJDK8/*.jar /usr/lib/jvm/java-1.8-openjdk/jre/lib/security/ ---> Running in 1f895f593b7d % T o t a l % R e c e ived % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 100 429 100 429 0 0 375 0 0:00:01 0:00:01 --:--:-- 0 100 8409 100 8409 0 0 6523 0 0:00:01 0:00:01 --:--:-- 6523 Archive: jce_policy-8.zip creating: UnlimitedJCEPolicyJDK8/ inflating: UnlimitedJCEPolicyJDK8/local_policy.jar inflating: UnlimitedJCEPolicyJDK8/README.txt inflating: UnlimitedJCEPolicyJDK8/US_export_policy.jar '/tmp/UnlimitedJCEPolicyJDK8/US_export_policy.jar' -> '/usr/lib/jvm/java-1.8-openjdk/jre/lib/security/US_export_policy.jar' '/tmp/UnlimitedJCEPolicyJDK8/local_policy.jar' -> '/usr/lib/jvm/java-1.8-openjdk/jre/lib/security/local_policy.jar' Removing intermediate container 1f895f593b7d ---> 6abdfac52d09 Step 6/8 : RUN mkdir -p /home/michael01/springcloudroot/ ---> Running in e99b91cc46a0 Removing intermediate container e99b91cc46a0 ---> a51a0948c727 Step 7/8 : ADD springcloud-02-confsrv-0.0.1-SNAPSHOT.jar /home/michael01/springcloudroot/ ---> 3cc0878ece03 Step 8/8 : ENTRYPOINT ["/usr/bin/java", "-jar", "/home/michael01/springcloudroot/springcloud-02-confsrv-0.0.1-SNAPSHOT.jar"] ---> Running in be29670812ed Removing intermediate container be29670812ed ---> 233b4584ad84 ProgressMessage{id=null, status=null, stream=null, error=null, progress=null, progressDetail=null} Successfully built 233b4584ad84 Successfully tagged springcloud-02/confsrv:0.0.1-SNAPSHOT [INFO] Built springcloud-02/confsrv:0.0.1-SNAPSHOT [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 01:18 min [INFO] Finished at: 2018-04-17T22:02:41+08:00 [INFO] ------------------------------------------------------------------------ michael01@michael01-ubuntu01:~/springcloudroot/springcloud-02-confsrv$
michael01@michael01-ubuntu01:~$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
michael01@michael01-ubuntu01:~$ docker images REPOSITORY TAG IMAGE ID CREATED SIZE springcloud-02/confsrv 0.0.1-SNAPSHOT 233b4584ad84 15 seconds ago 132MB springcloud-01/hello 0.0.1-SNAPSHOT a524d56e3fd4 24 hours ago 101MB <none> <none> 722c72220227 24 hours ago 101MB 192.168.231.133:5000/busybox latest 8ac48589692a 12 days ago 1.15MB postgres 9.5 5c5aa9a16b8b 4 weeks ago 264MB johncarnell/tmx-licensing-service chapter3 932c2ebbf884 2 months ago 138MB johncarnell/tmx-confsvr chapter3 ee14e08f813b 2 months ago 128MB openjdk 8-jre-alpine b1bd879ca9b3 3 months ago 82MB openjdk 8-jdk-alpine 224765a6bdbe 3 months ago 102MB michael01@michael01-ubuntu01:~$
michael01@michael01-ubuntu01:~$ docker run -p 8888:8888 233b4584ad84 2018-04-17 14:06:24.448 INFO 1 --- [ main] s.c.a.AnnotationConfigApplicationContext : Refreshing org.springframework.context.annotation.AnnotationConfigApplicationContext@2aaf7cc2: startup date [Tue Apr 17 14:06:24 GMT 2018]; root of context hierarchy 2018-04-17 14:06:26.921 INFO 1 --- [ main] trationDelegate$BeanPostProcessorChecker : Bean 'configurationPropertiesRebinderAutoConfiguration' of type [org.springframework.cloud.autoconfigure.ConfigurationPropertiesRebinderAutoConfiguration$$EnhancerBySpringCGLIB$$469fcdad] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) . ____ _ __ _ _ /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ \\/ ___)| |_)| | | | | || (_| | ) ) ) ) ' |____| .__|_| |_|_| |_\__, | / / / / =========|_|==============|___/=/_/_/_/ :: Spring Boot :: (v2.0.1.RELEASE) 2018-04-17 14:06:28.222 INFO 1 --- [ main] c.c.Springcloud02ConfsrvApplication : No active profile set, falling back to default profiles: default 2018-04-17 14:06:28.325 INFO 1 --- [ main] ConfigServletWebServerApplicationContext : Refreshing org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@148080bb: startup date [Tue Apr 17 14:06:28 GMT 2018]; parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@2aaf7cc2 2018-04-17 14:06:31.348 INFO 1 --- [ main] o.s.b.f.s.DefaultListableBeanFactory : Overriding bean definition for bean 'environmentWebEndpointExtension' with a different definition: replacing [Root bean: class [null]; scope=; abstract=false; lazyInit=false; autowireMode=3; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=org.springframework.boot.actuate.autoconfigure.env.EnvironmentEndpointAutoConfiguration; factoryMethodName=environmentWebEndpointExtension; initMethodName=null; destroyMethodName=(inferred); defined in class path resource [org/springframework/boot/actuate/autoconfigure/env/EnvironmentEndpointAutoConfiguration.class]] with [Root bean: class [null]; scope=; abstract=false; lazyInit=false; autowireMode=3; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=org.springframework.cloud.autoconfigure.LifecycleMvcEndpointAutoConfiguration$EndpointConfiguration; factoryMethodName=environmentWebEndpointExtension; initMethodName=null; destroyMethodName=(inferred); defined in class path resource [org/springframework/cloud/autoconfigure/LifecycleMvcEndpointAutoConfiguration$EndpointConfiguration.class]] 2018-04-17 14:06:32.783 INFO 1 --- [ main] o.s.cloud.context.scope.GenericScope : BeanFactory id=06a920f8-4e72-3672-9ad1-5bc768bf7934 2018-04-17 14:06:33.100 INFO 1 --- [ main] trationDelegate$BeanPostProcessorChecker : Bean 'org.springframework.cloud.autoconfigure.ConfigurationPropertiesRebinderAutoConfiguration' of type [org.springframework.cloud.autoconfigure.ConfigurationPropertiesRebinderAutoConfiguration$$EnhancerBySpringCGLIB$$469fcdad] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) 2018-04-17 14:06:34.322 INFO 1 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 8888 (http) 2018-04-17 14:06:34.479 INFO 1 --- [ main] o.apache.catalina.core.StandardService : Starting service [Tomcat] 2018-04-17 14:06:34.480 INFO 1 --- [ main] org.apache.catalina.core.StandardEngine : Starting Servlet Engine: Apache Tomcat/8.5.29 2018-04-17 14:06:34.549 INFO 1 --- [ost-startStop-1] o.a.catalina.core.AprLifecycleListener : The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: [/usr/lib/jvm/java-1.8-openjdk/jre/lib/amd64/server:/usr/lib/jvm/java-1.8-openjdk/jre/lib/amd64:/usr/lib/jvm/java-1.8-openjdk/jre/../lib/amd64:/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib] 2018-04-17 14:06:34.914 INFO 1 --- [ost-startStop-1] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext 2018-04-17 14:06:34.920 INFO 1 --- [ost-startStop-1] o.s.web.context.ContextLoader : Root WebApplicationContext: initialization completed in 6595 ms 2018-04-17 14:06:38.560 INFO 1 --- [ost-startStop-1] o.s.b.w.servlet.ServletRegistrationBean : Servlet dispatcherServlet mapped to [/] 2018-04-17 14:06:38.584 INFO 1 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'characterEncodingFilter' to: [/*] 2018-04-17 14:06:38.586 INFO 1 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'hiddenHttpMethodFilter' to: [/*] 2018-04-17 14:06:38.587 INFO 1 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'httpPutFormContentFilter' to: [/*] 2018-04-17 14:06:38.591 INFO 1 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'requestContextFilter' to: [/*] 2018-04-17 14:06:38.593 INFO 1 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'httpTraceFilter' to: [/*] 2018-04-17 14:06:38.596 INFO 1 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'webMvcMetricsFilter' to: [/*] 2018-04-17 14:06:38.951 INFO 1 --- [ main] o.s.w.s.handler.SimpleUrlHandlerMapping : Mapped URL path [/**/favicon.ico] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler] 2018-04-17 14:06:39.648 INFO 1 --- [ main] s.w.s.m.m.a.RequestMappingHandlerAdapter : Looking for @ControllerAdvice: org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@148080bb: startup date [Tue Apr 17 14:06:28 GMT 2018]; parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@2aaf7cc2 2018-04-17 14:06:39.911 INFO 1 --- [ main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/error],produces=[text/html]}" onto public org.springframework.web.servlet.ModelAndView org.springframework.boot.autoconfigure.web.servlet.error.BasicErrorController.errorHtml(javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse) 2018-04-17 14:06:39.922 INFO 1 --- [ main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/error]}" onto public org.springframework.http.ResponseEntity<java.util.Map<java.lang.String, java.lang.Object>> org.springframework.boot.autoconfigure.web.servlet.error.BasicErrorController.error(javax.servlet.http.HttpServletRequest) 2018-04-17 14:06:39.954 INFO 1 --- [ main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/encrypt],methods=[POST]}" onto public java.lang.String org.springframework.cloud.config.server.encryption.EncryptionController.encrypt(java.lang.String,org.springframework.http.MediaType) 2018-04-17 14:06:39.962 INFO 1 --- [ main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/encrypt/{name}/{profiles}],methods=[POST]}" onto public java.lang.String org.springframework.cloud.config.server.encryption.EncryptionController.encrypt(java.lang.String,java.lang.String,java.lang.String,org.springframework.http.MediaType) 2018-04-17 14:06:39.968 INFO 1 --- [ main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/decrypt/{name}/{profiles}],methods=[POST]}" onto public java.lang.String org.springframework.cloud.config.server.encryption.EncryptionController.decrypt(java.lang.String,java.lang.String,java.lang.String,org.springframework.http.MediaType) 2018-04-17 14:06:39.976 INFO 1 --- [ main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/decrypt],methods=[POST]}" onto public java.lang.String org.springframework.cloud.config.server.encryption.EncryptionController.decrypt(java.lang.String,org.springframework.http.MediaType) 2018-04-17 14:06:39.977 INFO 1 --- [ main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/encrypt/status],methods=[GET]}" onto public java.util.Map<java.lang.String, java.lang.Object> org.springframework.cloud.config.server.encryption.EncryptionController.status() 2018-04-17 14:06:39.978 INFO 1 --- [ main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/key],methods=[GET]}" onto public java.lang.String org.springframework.cloud.config.server.encryption.EncryptionController.getPublicKey() 2018-04-17 14:06:39.979 INFO 1 --- [ main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/key/{name}/{profiles}],methods=[GET]}" onto public java.lang.String org.springframework.cloud.config.server.encryption.EncryptionController.getPublicKey(java.lang.String,java.lang.String) 2018-04-17 14:06:40.007 INFO 1 --- [ main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/{name}-{profiles}.properties],methods=[GET]}" onto public org.springframework.http.ResponseEntity<java.lang.String> org.springframework.cloud.config.server.environment.EnvironmentController.properties(java.lang.String,java.lang.String,boolean) throws java.io.IOException 2018-04-17 14:06:40.013 INFO 1 --- [ main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/{name}-{profiles}.yml || /{name}-{profiles}.yaml],methods=[GET]}" onto public org.springframework.http.ResponseEntity<java.lang.String> org.springframework.cloud.config.server.environment.EnvironmentController.yaml(java.lang.String,java.lang.String,boolean) throws java.lang.Exception 2018-04-17 14:06:40.015 INFO 1 --- [ main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/{name}/{profiles}/{label:.*}],methods=[GET]}" onto public org.springframework.cloud.config.environment.Environment org.springframework.cloud.config.server.environment.EnvironmentController.labelled(java.lang.String,java.lang.String,java.lang.String) 2018-04-17 14:06:40.024 INFO 1 --- [ main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/{name}/{profiles:.*[^-].*}],methods=[GET]}" onto public org.springframework.cloud.config.environment.Environment org.springframework.cloud.config.server.environment.EnvironmentController.defaultLabel(java.lang.String,java.lang.String) 2018-04-17 14:06:40.037 INFO 1 --- [ main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/{label}/{name}-{profiles}.yml || /{label}/{name}-{profiles}.yaml],methods=[GET]}" onto public org.springframework.http.ResponseEntity<java.lang.String> org.springframework.cloud.config.server.environment.EnvironmentController.labelledYaml(java.lang.String,java.lang.String,java.lang.String,boolean) throws java.lang.Exception 2018-04-17 14:06:40.039 INFO 1 --- [ main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/{label}/{name}-{profiles}.properties],methods=[GET]}" onto public org.springframework.http.ResponseEntity<java.lang.String> org.springframework.cloud.config.server.environment.EnvironmentController.labelledProperties(java.lang.String,java.lang.String,java.lang.String,boolean) throws java.io.IOException 2018-04-17 14:06:40.040 INFO 1 --- [ main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/{name}-{profiles}.json],methods=[GET]}" onto public org.springframework.http.ResponseEntity<java.lang.String> org.springframework.cloud.config.server.environment.EnvironmentController.jsonProperties(java.lang.String,java.lang.String,boolean) throws java.lang.Exception 2018-04-17 14:06:40.040 INFO 1 --- [ main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/{label}/{name}-{profiles}.json],methods=[GET]}" onto public org.springframework.http.ResponseEntity<java.lang.String> org.springframework.cloud.config.server.environment.EnvironmentController.labelledJsonProperties(java.lang.String,java.lang.String,java.lang.String,boolean) throws java.lang.Exception 2018-04-17 14:06:40.069 INFO 1 --- [ main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/{name}/{profile}/{label}/**],methods=[GET],produces=[application/octet-stream]}" onto public synchronized byte[] org.springframework.cloud.config.server.resource.ResourceController.binary(java.lang.String,java.lang.String,java.lang.String,javax.servlet.http.HttpServletRequest) throws java.io.IOException 2018-04-17 14:06:40.072 INFO 1 --- [ main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/{name}/{profile}/**],methods=[GET],params=[useDefaultLabel]}" onto public java.lang.String org.springframework.cloud.config.server.resource.ResourceController.retrieve(java.lang.String,java.lang.String,javax.servlet.http.HttpServletRequest,boolean) throws java.io.IOException 2018-04-17 14:06:40.073 INFO 1 --- [ main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/{name}/{profile}/{label}/**],methods=[GET]}" onto public java.lang.String org.springframework.cloud.config.server.resource.ResourceController.retrieve(java.lang.String,java.lang.String,java.lang.String,javax.servlet.http.HttpServletRequest,boolean) throws java.io.IOException 2018-04-17 14:06:40.172 INFO 1 --- [ main] o.s.w.s.handler.SimpleUrlHandlerMapping : Mapped URL path [/webjars/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler] 2018-04-17 14:06:40.179 INFO 1 --- [ main] o.s.w.s.handler.SimpleUrlHandlerMapping : Mapped URL path [/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler] 2018-04-17 14:06:41.852 INFO 1 --- [ main] o.s.b.a.e.web.EndpointLinksResolver : Exposing 2 endpoint(s) beneath base path '/actuator' 2018-04-17 14:06:41.887 INFO 1 --- [ main] s.b.a.e.w.s.WebMvcEndpointHandlerMapping : Mapped "{[/actuator/health],methods=[GET],produces=[application/vnd.spring-boot.actuator.v2+json || application/json]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.web.servlet.AbstractWebMvcEndpointHandlerMapping$OperationHandler.handle(javax.servlet.http.HttpServletRequest,java.util.Map<java.lang.String, java.lang.String>) 2018-04-17 14:06:41.902 INFO 1 --- [ main] s.b.a.e.w.s.WebMvcEndpointHandlerMapping : Mapped "{[/actuator/info],methods=[GET],produces=[application/vnd.spring-boot.actuator.v2+json || application/json]}" onto public java.lang.Object org.springframework.boot.actuate.endpoint.web.servlet.AbstractWebMvcEndpointHandlerMapping$OperationHandler.handle(javax.servlet.http.HttpServletRequest,java.util.Map<java.lang.String, java.lang.String>) 2018-04-17 14:06:41.905 INFO 1 --- [ main] s.b.a.e.w.s.WebMvcEndpointHandlerMapping : Mapped "{[/actuator],methods=[GET],produces=[application/vnd.spring-boot.actuator.v2+json || application/json]}" onto protected java.util.Map<java.lang.String, java.util.Map<java.lang.String, org.springframework.boot.actuate.endpoint.web.Link>> org.springframework.boot.actuate.endpoint.web.servlet.WebMvcEndpointHandlerMapping.links(javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse) 2018-04-17 14:06:42.145 INFO 1 --- [ main] o.s.j.e.a.AnnotationMBeanExporter : Registering beans for JMX exposure on startup 2018-04-17 14:06:42.180 INFO 1 --- [ main] o.s.j.e.a.AnnotationMBeanExporter : Bean with name 'configurationPropertiesRebinder' has been autodetected for JMX exposure 2018-04-17 14:06:42.191 INFO 1 --- [ main] o.s.j.e.a.AnnotationMBeanExporter : Bean with name 'environmentManager' has been autodetected for JMX exposure 2018-04-17 14:06:42.195 INFO 1 --- [ main] o.s.j.e.a.AnnotationMBeanExporter : Bean with name 'refreshScope' has been autodetected for JMX exposure 2018-04-17 14:06:42.207 INFO 1 --- [ main] o.s.j.e.a.AnnotationMBeanExporter : Located managed bean 'environmentManager': registering with JMX server as MBean [org.springframework.cloud.context.environment:name=environmentManager,type=EnvironmentManager] 2018-04-17 14:06:42.252 INFO 1 --- [ main] o.s.j.e.a.AnnotationMBeanExporter : Located managed bean 'refreshScope': registering with JMX server as MBean [org.springframework.cloud.context.scope.refresh:name=refreshScope,type=RefreshScope] 2018-04-17 14:06:42.301 INFO 1 --- [ main] o.s.j.e.a.AnnotationMBeanExporter : Located managed bean 'configurationPropertiesRebinder': registering with JMX server as MBean [org.springframework.cloud.context.properties:name=configurationPropertiesRebinder,context=148080bb,type=ConfigurationPropertiesRebinder] 2018-04-17 14:06:42.472 INFO 1 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8888 (http) with context path '' 2018-04-17 14:06:42.497 INFO 1 --- [ main] c.c.Springcloud02ConfsrvApplication : Started Springcloud02ConfsrvApplication in 21.715 seconds (JVM running for 23.712) 2018-04-17 14:07:06.701 INFO 1 --- [nio-8888-exec-1] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring FrameworkServlet 'dispatcherServlet' 2018-04-17 14:07:06.710 INFO 1 --- [nio-8888-exec-1] o.s.web.servlet.DispatcherServlet : FrameworkServlet 'dispatcherServlet': initialization started 2018-04-17 14:07:06.868 INFO 1 --- [nio-8888-exec-1] o.s.web.servlet.DispatcherServlet : FrameworkServlet 'dispatcherServlet': initialization completed in 158 ms 2018-04-17 14:07:17.201 INFO 1 --- [nio-8888-exec-1] s.c.a.AnnotationConfigApplicationContext : Refreshing org.springframework.context.annotation.AnnotationConfigApplicationContext@548e7252: startup date [Tue Apr 17 14:07:17 GMT 2018]; root of context hierarchy 2018-04-17 14:07:17.385 INFO 1 --- [nio-8888-exec-1] o.s.c.c.s.e.NativeEnvironmentRepository : Adding property source: file:/tmp/config-repo-2693107344800461181/licensingservice/licensingservice-dev.yml 2018-04-17 14:07:17.386 INFO 1 --- [nio-8888-exec-1] o.s.c.c.s.e.NativeEnvironmentRepository : Adding property source: file:/tmp/config-repo-2693107344800461181/licensingservice/licensingservice.yml 2018-04-17 14:07:17.387 INFO 1 --- [nio-8888-exec-1] s.c.a.AnnotationConfigApplicationContext : Closing org.springframework.context.annotation.AnnotationConfigApplicationContext@548e7252: startup date [Tue Apr 17 14:07:17 GMT 2018]; root of context hierarchy 2018-04-17 14:07:27.277 INFO 1 --- [nio-8888-exec-3] s.c.a.AnnotationConfigApplicationContext : Refreshing org.springframework.context.annotation.AnnotationConfigApplicationContext@5c041c4a: startup date [Tue Apr 17 14:07:27 GMT 2018]; root of context hierarchy 2018-04-17 14:07:27.307 INFO 1 --- [nio-8888-exec-3] o.s.c.c.s.e.NativeEnvironmentRepository : Adding property source: file:/tmp/config-repo-2693107344800461181/licensingservice/licensingservice.yml 2018-04-17 14:07:27.308 INFO 1 --- [nio-8888-exec-3] s.c.a.AnnotationConfigApplicationContext : Closing org.springframework.context.annotation.AnnotationConfigApplicationContext@5c041c4a: startup date [Tue Apr 17 14:07:27 GMT 2018]; root of context hierarchy 2018-04-17 14:07:45.902 INFO 1 --- [nio-8888-exec-4] s.c.a.AnnotationConfigApplicationContext : Refreshing org.springframework.context.annotation.AnnotationConfigApplicationContext@7da24d48: startup date [Tue Apr 17 14:07:45 GMT 2018]; root of context hierarchy 2018-04-17 14:07:46.039 INFO 1 --- [nio-8888-exec-4] o.s.c.c.s.e.NativeEnvironmentRepository : Adding property source: file:/tmp/config-repo-2693107344800461181/licensingservice/licensingservice-prod.yml 2018-04-17 14:07:46.041 INFO 1 --- [nio-8888-exec-4] o.s.c.c.s.e.NativeEnvironmentRepository : Adding property source: file:/tmp/config-repo-2693107344800461181/licensingservice/licensingservice.yml 2018-04-17 14:07:46.041 INFO 1 --- [nio-8888-exec-4] s.c.a.AnnotationConfigApplicationContext : Closing org.springframework.context.annotation.AnnotationConfigApplicationContext@7da24d48: startup date [Tue Apr 17 14:07:45 GMT 2018]; root of context hierarchy
分别测试调用dev,default,prod3个环境的配置文件内容
michael01@michael01-ubuntu01:~/springcloudroot/springcloud-02-confsrv$ curl http://localhost:8888/licensingservice/dev {"name":"licensingservice","profiles":["dev"],"label":null,"version":"95a673918f17f311f3159259bf57d95735741dab","state":null,"propertySources":[{"name":"https://github.com/michaelzhanghe/springcloud-config-repo/licensingservice/licensingservice-dev.yml","source":{"spring.jpa.database":"POSTGRESQL","spring.datasource.platform":"postgres","spring.jpa.show-sql":"false","spring.database.driverClassName":"org.postgresql.Driver","spring.datasource.url":"jdbc:postgresql://database:5432/eagle_eye_dev","spring.datasource.username":"postgres_dev","spring.datasource.testWhileIdle":"true","spring.datasource.validationQuery":"SELECT 1","spring.jpa.properties.hibernate.dialect":"org.hibernate.dialect.PostgreSQLDialect","redis.server":"redis","redis.port":"6379","signing.key":"345345fsdfsf5345","spring.datasource.password":"d495ce8603af958b2526967648aa9620b7e834c4eaff66014aa805450736e119"}},{"name":"https://github.com/michaelzhanghe/springcloud-config-repo/licensingservice/licensingservice.yml","source":{"example.property":"I AM IN THE DEFAULT","spring.jpa.database":"POSTGRESQL","spring.datasource.platform":"postgres","spring.jpa.show-sql":"true","spring.database.driverClassName":"org.postgresql.Driver","spring.datasource.url":"jdbc:postgresql://database:5432/eagle_eye_local","spring.datasource.username":"postgres","spring.datasource.testWhileIdle":"true","spring.datasource.validationQuery":"SELECT 1","spring.jpa.properties.hibernate.dialect":"org.hibernate.dialect.PostgreSQLDialect","redis.server":"redis","redis.port":"6379","signing.key":"345345fsdfsf5345","spring.datasource.password":"4788dfe1ccbe6485934aec2ffeddb06163ea3d616df5fd75be96aadd4df1da91"}}]}
michael01@michael01-ubuntu01:~/springcloudroot/springcloud-02-confsrv$ curl http://localhost:8888/licensingservice/default {"name":"licensingservice","profiles":["default"],"label":null,"version":"95a673918f17f311f3159259bf57d95735741dab","state":null,"propertySources":[{"name":"https://github.com/michaelzhanghe/springcloud-config-repo/licensingservice/licensingservice.yml","source":{"example.property":"I AM IN THE DEFAULT","spring.jpa.database":"POSTGRESQL","spring.datasource.platform":"postgres","spring.jpa.show-sql":"true","spring.database.driverClassName":"org.postgresql.Driver","spring.datasource.url":"jdbc:postgresql://database:5432/eagle_eye_local","spring.datasource.username":"postgres","spring.datasource.testWhileIdle":"true","spring.datasource.validationQuery":"SELECT 1","spring.jpa.properties.hibernate.dialect":"org.hibernate.dialect.PostgreSQLDialect","redis.server":"redis","redis.port":"6379","signing.key":"345345fsdfsf5345","spring.datasource.password":"4788dfe1ccbe6485934aec2ffeddb06163ea3d616df5fd75be96aadd4df1da91"}}]}
michael01@michael01-ubuntu01:~/springcloudroot/springcloud-02-confsrv$ curl http://localhost:8888/licensingservice/prod {"name":"licensingservice","profiles":["prod"],"label":null,"version":"95a673918f17f311f3159259bf57d95735741dab","state":null,"propertySources":[{"name":"https://github.com/michaelzhanghe/springcloud-config-repo/licensingservice/licensingservice-prod.yml","source":{"example.property":"I AM A PROD PROPERTY OVERRIDE","spring.jpa.database":"POSTGRESQL","spring.datasource.platform":"postgres","spring.jpa.show-sql":"true","spring.database.driverClassName":"org.postgresql.Driver","spring.datasource.url":"jdbc:postgresql://database:5432/eagle_eye_prod","spring.datasource.username":"postgres_prod","spring.datasource.testWhileIdle":"true","spring.datasource.validationQuery":"SELECT 1","spring.jpa.properties.hibernate.dialect":"org.hibernate.dialect.PostgreSQLDialect","redis.server":"redis","redis.port":"6379","signing.key":"345345fsdfsf5345","spring.datasource.password":"217b23d6209b10bd82c49a9df6490670052a9cd9d4403dcc1288db21c35c48ac"}},{"name":"https://github.com/michaelzhanghe/springcloud-config-repo/licensingservice/licensingservice.yml","source":{"example.property":"I AM IN THE DEFAULT","spring.jpa.database":"POSTGRESQL","spring.datasource.platform":"postgres","spring.jpa.show-sql":"true","spring.database.driverClassName":"org.postgresql.Driver","spring.datasource.url":"jdbc:postgresql://database:5432/eagle_eye_local","spring.datasource.username":"postgres","spring.datasource.testWhileIdle":"true","spring.datasource.validationQuery":"SELECT 1","spring.jpa.properties.hibernate.dialect":"org.hibernate.dialect.PostgreSQLDialect","redis.server":"redis","redis.port":"6379","signing.key":"345345fsdfsf5345","spring.datasource.password":"4788dfe1ccbe6485934aec2ffeddb06163ea3d616df5fd75be96aadd4df1da91"}}]}michael01@michael01-ubuntu01:~/springcloudroot/springcloud-02-confsrv$
michael01@michael01-ubuntu01:~/springcloudroot/springcloud-02-confsrv$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES d3138b4bc1b9 233b4584ad84 "/usr/bin/java -jar …" 5 minutes ago Up 5 minutes 0.0.0.0:8888->8888/tcp determined_turing