Showing preview only (1,062K chars total). Download the full file or copy to clipboard to get everything.
Repository: JourWon/springcloud-learning
Branch: master
Commit: 447e9f3f9642
Files: 440
Total size: 925.1 KB
Directory structure:
gitextract_xg76vfy_/
├── .gitignore
├── README.md
├── admin-client/
│ ├── .gitignore
│ ├── .mvn/
│ │ └── wrapper/
│ │ ├── MavenWrapperDownloader.java
│ │ ├── maven-wrapper.jar
│ │ └── maven-wrapper.properties
│ ├── mvnw
│ ├── mvnw.cmd
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── jourwon/
│ │ │ └── springcloud/
│ │ │ ├── AdminClientApplication.java
│ │ │ ├── controller/
│ │ │ │ └── UserController.java
│ │ │ ├── pojo/
│ │ │ │ ├── Result.java
│ │ │ │ └── User.java
│ │ │ └── service/
│ │ │ ├── UserService.java
│ │ │ └── impl/
│ │ │ └── UserServiceImpl.java
│ │ └── resources/
│ │ ├── application-eureka.yml
│ │ └── application.yml
│ └── test/
│ └── java/
│ └── com/
│ └── jourwon/
│ └── springcloud/
│ └── AdminClientApplicationTests.java
├── admin-client.log
├── admin-security-server/
│ ├── .gitignore
│ ├── .mvn/
│ │ └── wrapper/
│ │ ├── MavenWrapperDownloader.java
│ │ ├── maven-wrapper.jar
│ │ └── maven-wrapper.properties
│ ├── mvnw
│ ├── mvnw.cmd
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── jourwon/
│ │ │ └── springcloud/
│ │ │ ├── AdminSecurityServerApplication.java
│ │ │ └── config/
│ │ │ └── SecuritySecureConfig.java
│ │ └── resources/
│ │ └── application.yml
│ └── test/
│ └── java/
│ └── com/
│ └── jourwon/
│ └── springcloud/
│ └── AdminSecurityServerApplicationTests.java
├── admin-server/
│ ├── .gitignore
│ ├── .mvn/
│ │ └── wrapper/
│ │ ├── MavenWrapperDownloader.java
│ │ ├── maven-wrapper.jar
│ │ └── maven-wrapper.properties
│ ├── mvnw
│ ├── mvnw.cmd
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── jourwon/
│ │ │ └── springcloud/
│ │ │ └── AdminServerApplication.java
│ │ └── resources/
│ │ ├── application-eureka.yml
│ │ └── application.yml
│ └── test/
│ └── java/
│ └── com/
│ └── jourwon/
│ └── springcloud/
│ └── AdminServerApplicationTests.java
├── api-gateway/
│ ├── .gitignore
│ ├── .mvn/
│ │ └── wrapper/
│ │ ├── MavenWrapperDownloader.java
│ │ ├── maven-wrapper.jar
│ │ └── maven-wrapper.properties
│ ├── mvnw
│ ├── mvnw.cmd
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── jourwon/
│ │ │ └── springcloud/
│ │ │ ├── ApiGatewayApplication.java
│ │ │ ├── config/
│ │ │ │ ├── GatewayConfig.java
│ │ │ │ └── RedisRateLimiterConfig.java
│ │ │ └── controller/
│ │ │ └── FallbackController.java
│ │ └── resources/
│ │ ├── application-eureka.yml
│ │ ├── application-filter.yml
│ │ ├── application-predicate.yml
│ │ └── application.yml
│ └── test/
│ └── java/
│ └── com/
│ └── jourwon/
│ └── springcloud/
│ └── ApiGatewayApplicationTests.java
├── config-client/
│ ├── .gitignore
│ ├── .mvn/
│ │ └── wrapper/
│ │ ├── MavenWrapperDownloader.java
│ │ ├── maven-wrapper.jar
│ │ └── maven-wrapper.properties
│ ├── mvnw
│ ├── mvnw.cmd
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── jourwon/
│ │ │ └── springcloud/
│ │ │ ├── ConfigClientApplication.java
│ │ │ └── controller/
│ │ │ └── ConfigClientController.java
│ │ └── resources/
│ │ ├── bootstrap-amqp1.yml
│ │ ├── bootstrap-amqp2.yml
│ │ ├── bootstrap-cluster.yml
│ │ ├── bootstrap-security.yml
│ │ └── bootstrap.yml
│ └── test/
│ └── java/
│ └── com/
│ └── jourwon/
│ └── springcloud/
│ └── ConfigClientApplicationTests.java
├── config-security-server/
│ ├── .gitignore
│ ├── .mvn/
│ │ └── wrapper/
│ │ ├── MavenWrapperDownloader.java
│ │ ├── maven-wrapper.jar
│ │ └── maven-wrapper.properties
│ ├── mvnw
│ ├── mvnw.cmd
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── jourwon/
│ │ │ └── springcloud/
│ │ │ └── ConfigSecurityServerApplication.java
│ │ └── resources/
│ │ └── application.yml
│ └── test/
│ └── java/
│ └── com/
│ └── jourwon/
│ └── springcloud/
│ └── ConfigSecurityServerApplicationTests.java
├── config-server/
│ ├── .gitignore
│ ├── .mvn/
│ │ └── wrapper/
│ │ ├── MavenWrapperDownloader.java
│ │ ├── maven-wrapper.jar
│ │ └── maven-wrapper.properties
│ ├── mvnw
│ ├── mvnw.cmd
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── jourwon/
│ │ │ └── springcloud/
│ │ │ └── ConfigServerApplication.java
│ │ └── resources/
│ │ ├── application-amqp.yml
│ │ ├── application-replica1.yml
│ │ ├── application-replica2.yml
│ │ └── application.yml
│ └── test/
│ └── java/
│ └── com/
│ └── jourwon/
│ └── springcloud/
│ └── ConfigServerApplicationTests.java
├── consul-config-client/
│ ├── .gitignore
│ ├── .mvn/
│ │ └── wrapper/
│ │ ├── MavenWrapperDownloader.java
│ │ ├── maven-wrapper.jar
│ │ └── maven-wrapper.properties
│ ├── mvnw
│ ├── mvnw.cmd
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── jourwon/
│ │ │ └── springcloud/
│ │ │ ├── ConsulConfigClientApplication.java
│ │ │ └── controller/
│ │ │ └── ConfigClientController.java
│ │ └── resources/
│ │ ├── application.yml
│ │ └── bootstrap.yml
│ └── test/
│ └── java/
│ └── com/
│ └── jourwon/
│ └── springcloud/
│ └── ConsulConfigClientApplicationTests.java
├── consul-ribbon-service/
│ ├── .gitignore
│ ├── .mvn/
│ │ └── wrapper/
│ │ ├── MavenWrapperDownloader.java
│ │ ├── maven-wrapper.jar
│ │ └── maven-wrapper.properties
│ ├── mvnw
│ ├── mvnw.cmd
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── jourwon/
│ │ │ └── springcloud/
│ │ │ ├── ConsulRibbonServiceApplication.java
│ │ │ ├── config/
│ │ │ │ └── RibbonConfig.java
│ │ │ ├── controller/
│ │ │ │ └── UserRibbonController.java
│ │ │ └── pojo/
│ │ │ ├── Result.java
│ │ │ └── User.java
│ │ └── resources/
│ │ └── application.yml
│ └── test/
│ └── java/
│ └── com/
│ └── jourwon/
│ └── springcloud/
│ └── ConsulRibbonServiceApplicationTests.java
├── consul-user-service/
│ ├── .gitignore
│ ├── .mvn/
│ │ └── wrapper/
│ │ ├── MavenWrapperDownloader.java
│ │ ├── maven-wrapper.jar
│ │ └── maven-wrapper.properties
│ ├── mvnw
│ ├── mvnw.cmd
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── jourwon/
│ │ │ └── springcloud/
│ │ │ ├── ConsulUserServiceApplication.java
│ │ │ ├── controller/
│ │ │ │ └── UserController.java
│ │ │ ├── pojo/
│ │ │ │ ├── Result.java
│ │ │ │ └── User.java
│ │ │ └── service/
│ │ │ ├── UserService.java
│ │ │ └── impl/
│ │ │ └── UserServiceImpl.java
│ │ └── resources/
│ │ ├── application-replica1.yml
│ │ └── application.yml
│ └── test/
│ └── java/
│ └── com/
│ └── jourwon/
│ └── springcloud/
│ └── ConsulUserServiceApplicationTests.java
├── eureka-client/
│ ├── .gitignore
│ ├── .mvn/
│ │ └── wrapper/
│ │ ├── MavenWrapperDownloader.java
│ │ ├── maven-wrapper.jar
│ │ └── maven-wrapper.properties
│ ├── mvnw
│ ├── mvnw.cmd
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── jourwon/
│ │ │ └── springcloud/
│ │ │ └── EurekaClientApplication.java
│ │ └── resources/
│ │ ├── application-replica.yml
│ │ ├── application-security.yml
│ │ └── application.yml
│ └── test/
│ └── java/
│ └── com/
│ └── jourwon/
│ └── springcloud/
│ └── EurekaClientApplicationTests.java
├── eureka-security-server/
│ ├── .gitignore
│ ├── .mvn/
│ │ └── wrapper/
│ │ ├── MavenWrapperDownloader.java
│ │ ├── maven-wrapper.jar
│ │ └── maven-wrapper.properties
│ ├── mvnw
│ ├── mvnw.cmd
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── jourwon/
│ │ │ └── springcloud/
│ │ │ ├── EurekaSecurityServerApplication.java
│ │ │ └── config/
│ │ │ └── WebSecurityConfig.java
│ │ └── resources/
│ │ └── application.yml
│ └── test/
│ └── java/
│ └── com/
│ └── jourwon/
│ └── springcloud/
│ └── EurekaSecurityServerApplicationTests.java
├── eureka-server/
│ ├── .gitignore
│ ├── .mvn/
│ │ └── wrapper/
│ │ ├── MavenWrapperDownloader.java
│ │ ├── maven-wrapper.jar
│ │ └── maven-wrapper.properties
│ ├── mvnw
│ ├── mvnw.cmd
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── jourwon/
│ │ │ └── springcloud/
│ │ │ └── EurekaServerApplication.java
│ │ └── resources/
│ │ ├── application-replica1.yml
│ │ ├── application-replica2.yml
│ │ └── application.yml
│ └── test/
│ └── java/
│ └── com/
│ └── jourwon/
│ └── springcloud/
│ └── EurekaServerApplicationTests.java
├── feign-service/
│ ├── .gitignore
│ ├── .mvn/
│ │ └── wrapper/
│ │ ├── MavenWrapperDownloader.java
│ │ ├── maven-wrapper.jar
│ │ └── maven-wrapper.properties
│ ├── mvnw
│ ├── mvnw.cmd
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── jourwon/
│ │ │ └── springcloud/
│ │ │ ├── FeignServiceApplication.java
│ │ │ ├── config/
│ │ │ │ └── FeignConfig.java
│ │ │ ├── controller/
│ │ │ │ └── UserFeignController.java
│ │ │ ├── pojo/
│ │ │ │ ├── Result.java
│ │ │ │ └── User.java
│ │ │ └── service/
│ │ │ ├── UserService.java
│ │ │ └── impl/
│ │ │ └── UserFallbackService.java
│ │ └── resources/
│ │ └── application.yml
│ └── test/
│ └── java/
│ └── com/
│ └── jourwon/
│ └── springcloud/
│ └── FeignServiceApplicationTests.java
├── hystrix-dashboard/
│ ├── .gitignore
│ ├── .mvn/
│ │ └── wrapper/
│ │ ├── MavenWrapperDownloader.java
│ │ ├── maven-wrapper.jar
│ │ └── maven-wrapper.properties
│ ├── mvnw
│ ├── mvnw.cmd
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── jourwon/
│ │ │ └── springcloud/
│ │ │ └── HystrixDashboardApplication.java
│ │ └── resources/
│ │ └── application.yml
│ └── test/
│ └── java/
│ └── com/
│ └── jourwon/
│ └── springcloud/
│ └── HystrixDashboardApplicationTests.java
├── hystrix-service/
│ ├── .gitignore
│ ├── .mvn/
│ │ └── wrapper/
│ │ ├── MavenWrapperDownloader.java
│ │ ├── maven-wrapper.jar
│ │ └── maven-wrapper.properties
│ ├── mvnw
│ ├── mvnw.cmd
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── jourwon/
│ │ │ └── springcloud/
│ │ │ ├── HystrixServiceApplication.java
│ │ │ ├── config/
│ │ │ │ └── RibbonConfig.java
│ │ │ ├── controller/
│ │ │ │ └── UserHystrixController.java
│ │ │ ├── filter/
│ │ │ │ └── HystrixRequestContextFilter.java
│ │ │ ├── pojo/
│ │ │ │ ├── Result.java
│ │ │ │ └── User.java
│ │ │ └── service/
│ │ │ └── UserService.java
│ │ └── resources/
│ │ ├── application-replica1.yml
│ │ └── application.yml
│ └── test/
│ └── java/
│ └── com/
│ └── jourwon/
│ └── springcloud/
│ └── HystrixServiceApplicationTests.java
├── nacos-config-client/
│ ├── .gitignore
│ ├── .mvn/
│ │ └── wrapper/
│ │ ├── MavenWrapperDownloader.java
│ │ ├── maven-wrapper.jar
│ │ └── maven-wrapper.properties
│ ├── mvnw
│ ├── mvnw.cmd
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── jourwon/
│ │ │ └── springcloud/
│ │ │ ├── NacosConfigClientApplication.java
│ │ │ └── controller/
│ │ │ └── ConfigClientController.java
│ │ └── resources/
│ │ ├── application.yml
│ │ └── bootstrap.yml
│ └── test/
│ └── java/
│ └── com/
│ └── jourwon/
│ └── springcloud/
│ └── NacosConfigClientApplicationTests.java
├── nacos-ribbon-service/
│ ├── .gitignore
│ ├── .mvn/
│ │ └── wrapper/
│ │ ├── MavenWrapperDownloader.java
│ │ ├── maven-wrapper.jar
│ │ └── maven-wrapper.properties
│ ├── mvnw
│ ├── mvnw.cmd
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── jourwon/
│ │ │ └── springcloud/
│ │ │ ├── NacosRibbonServiceApplication.java
│ │ │ ├── config/
│ │ │ │ └── RibbonConfig.java
│ │ │ ├── controller/
│ │ │ │ └── UserRibbonController.java
│ │ │ └── pojo/
│ │ │ ├── Result.java
│ │ │ └── User.java
│ │ └── resources/
│ │ └── application.yml
│ └── test/
│ └── java/
│ └── com/
│ └── jourwon/
│ └── springcloud/
│ └── NacosRibbonServiceApplicationTests.java
├── nacos-user-service/
│ ├── .gitignore
│ ├── .mvn/
│ │ └── wrapper/
│ │ ├── MavenWrapperDownloader.java
│ │ ├── maven-wrapper.jar
│ │ └── maven-wrapper.properties
│ ├── mvnw
│ ├── mvnw.cmd
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── jourwon/
│ │ │ └── springcloud/
│ │ │ ├── NacosUserServiceApplication.java
│ │ │ ├── controller/
│ │ │ │ └── UserController.java
│ │ │ ├── pojo/
│ │ │ │ ├── Result.java
│ │ │ │ └── User.java
│ │ │ └── service/
│ │ │ ├── UserService.java
│ │ │ └── impl/
│ │ │ └── UserServiceImpl.java
│ │ └── resources/
│ │ ├── application-replica.yml
│ │ └── application.yml
│ └── test/
│ └── java/
│ └── com/
│ └── jourwon/
│ └── springcloud/
│ └── NacosUserServiceApplicationTests.java
├── oauth2-client/
│ ├── .gitignore
│ ├── .mvn/
│ │ └── wrapper/
│ │ ├── MavenWrapperDownloader.java
│ │ ├── maven-wrapper.jar
│ │ └── maven-wrapper.properties
│ ├── mvnw
│ ├── mvnw.cmd
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── jourwon/
│ │ │ └── springcloud/
│ │ │ ├── Oauth2ClientApplication.java
│ │ │ ├── config/
│ │ │ │ └── SecurityConfig.java
│ │ │ └── controller/
│ │ │ └── UserController.java
│ │ └── resources/
│ │ └── application.yml
│ └── test/
│ └── java/
│ └── com/
│ └── jourwon/
│ └── springcloud/
│ └── Oauth2ClientApplicationTests.java
├── oauth2-jwt-server/
│ ├── .gitignore
│ ├── .mvn/
│ │ └── wrapper/
│ │ ├── MavenWrapperDownloader.java
│ │ ├── maven-wrapper.jar
│ │ └── maven-wrapper.properties
│ ├── mvnw
│ ├── mvnw.cmd
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── jourwon/
│ │ │ └── springcloud/
│ │ │ ├── Oauth2JwtServerApplication.java
│ │ │ ├── config/
│ │ │ │ ├── AuthorizationServerConfig.java
│ │ │ │ ├── JwtTokenStoreConfig.java
│ │ │ │ ├── RedisTokenStoreConfig.java
│ │ │ │ ├── ResourceServerConfig.java
│ │ │ │ └── SecurityConfig.java
│ │ │ ├── controller/
│ │ │ │ └── UserController.java
│ │ │ ├── enhancer/
│ │ │ │ └── JwtTokenEnhancer.java
│ │ │ ├── pojo/
│ │ │ │ └── User.java
│ │ │ └── service/
│ │ │ └── UserService.java
│ │ └── resources/
│ │ └── application.yml
│ └── test/
│ └── java/
│ └── com/
│ └── jourwon/
│ └── springcloud/
│ └── Oauth2JwtServerApplicationTests.java
├── oauth2-server/
│ ├── .gitignore
│ ├── .mvn/
│ │ └── wrapper/
│ │ ├── MavenWrapperDownloader.java
│ │ ├── maven-wrapper.jar
│ │ └── maven-wrapper.properties
│ ├── mvnw
│ ├── mvnw.cmd
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── jourwon/
│ │ │ └── springcloud/
│ │ │ ├── Oauth2ServerApplication.java
│ │ │ ├── config/
│ │ │ │ ├── AuthorizationServerConfig.java
│ │ │ │ ├── ResourceServerConfig.java
│ │ │ │ └── SecurityConfig.java
│ │ │ ├── controller/
│ │ │ │ └── UserController.java
│ │ │ ├── pojo/
│ │ │ │ └── User.java
│ │ │ └── service/
│ │ │ └── UserService.java
│ │ └── resources/
│ │ └── application.yml
│ └── test/
│ └── java/
│ └── com/
│ └── jourwon/
│ └── springcloud/
│ └── Oauth2ServerApplicationTests.java
├── pom.xml
├── ribbon-service/
│ ├── .gitignore
│ ├── .mvn/
│ │ └── wrapper/
│ │ ├── MavenWrapperDownloader.java
│ │ ├── maven-wrapper.jar
│ │ └── maven-wrapper.properties
│ ├── mvnw
│ ├── mvnw.cmd
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── jourwon/
│ │ │ └── springcloud/
│ │ │ ├── RibbonServiceApplication.java
│ │ │ ├── config/
│ │ │ │ └── RibbonConfig.java
│ │ │ ├── controller/
│ │ │ │ └── UserRibbonController.java
│ │ │ └── pojo/
│ │ │ ├── Result.java
│ │ │ └── User.java
│ │ └── resources/
│ │ └── application.yml
│ └── test/
│ └── java/
│ └── com/
│ └── jourwon/
│ └── springcloud/
│ └── RibbonServiceApplicationTests.java
├── seata-account-service/
│ ├── .gitignore
│ ├── .mvn/
│ │ └── wrapper/
│ │ ├── MavenWrapperDownloader.java
│ │ ├── maven-wrapper.jar
│ │ └── maven-wrapper.properties
│ ├── mvnw
│ ├── mvnw.cmd
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── jourwon/
│ │ │ └── springcloud/
│ │ │ ├── SeataAccountServiceApplication.java
│ │ │ ├── config/
│ │ │ │ └── DataSourceProxyConfig.java
│ │ │ ├── controller/
│ │ │ │ └── AccountController.java
│ │ │ ├── mapper/
│ │ │ │ └── AccountMapper.java
│ │ │ ├── pojo/
│ │ │ │ ├── Account.java
│ │ │ │ └── Result.java
│ │ │ └── service/
│ │ │ ├── AccountService.java
│ │ │ └── impl/
│ │ │ └── AccountServiceImpl.java
│ │ └── resources/
│ │ ├── account.sql
│ │ ├── application.yml
│ │ ├── file.conf
│ │ ├── mapper/
│ │ │ └── AccountMapper.xml
│ │ └── registry.conf
│ └── test/
│ └── java/
│ └── com/
│ └── jourwon/
│ └── springcloud/
│ └── SeataAccountServiceApplicationTests.java
├── seata-order-service/
│ ├── .gitignore
│ ├── .mvn/
│ │ └── wrapper/
│ │ ├── MavenWrapperDownloader.java
│ │ ├── maven-wrapper.jar
│ │ └── maven-wrapper.properties
│ ├── mvnw
│ ├── mvnw.cmd
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── jourwon/
│ │ │ └── springcloud/
│ │ │ ├── SeataOrderServiceApplication.java
│ │ │ ├── config/
│ │ │ │ └── DataSourceProxyConfig.java
│ │ │ ├── controller/
│ │ │ │ └── OrderController.java
│ │ │ ├── mapper/
│ │ │ │ └── OrderMapper.java
│ │ │ ├── pojo/
│ │ │ │ ├── Order.java
│ │ │ │ └── Result.java
│ │ │ └── service/
│ │ │ ├── AccountService.java
│ │ │ ├── OrderService.java
│ │ │ ├── StorageService.java
│ │ │ └── impl/
│ │ │ └── OrderServiceImpl.java
│ │ └── resources/
│ │ ├── application.yml
│ │ ├── file.conf
│ │ ├── mapper/
│ │ │ └── OrderMapper.xml
│ │ ├── order.sql
│ │ └── registry.conf
│ └── test/
│ └── java/
│ └── com/
│ └── jourwon/
│ └── springcloud/
│ └── SeataOrderServiceApplicationTests.java
├── seata-storage-service/
│ ├── .gitignore
│ ├── .mvn/
│ │ └── wrapper/
│ │ ├── MavenWrapperDownloader.java
│ │ ├── maven-wrapper.jar
│ │ └── maven-wrapper.properties
│ ├── mvnw
│ ├── mvnw.cmd
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── jourwon/
│ │ │ └── springcloud/
│ │ │ ├── SeataStorageServiceApplication.java
│ │ │ ├── config/
│ │ │ │ └── DataSourceProxyConfig.java
│ │ │ ├── controller/
│ │ │ │ └── StorageController.java
│ │ │ ├── mapper/
│ │ │ │ └── StorageMapper.java
│ │ │ ├── pojo/
│ │ │ │ ├── Result.java
│ │ │ │ └── Storage.java
│ │ │ └── service/
│ │ │ ├── StorageService.java
│ │ │ └── impl/
│ │ │ └── StorageServiceImpl.java
│ │ └── resources/
│ │ ├── application.yml
│ │ ├── file.conf
│ │ ├── mapper/
│ │ │ └── StorageMapper.xml
│ │ ├── registry.conf
│ │ └── storage.sql
│ └── test/
│ └── java/
│ └── com/
│ └── jourwon/
│ └── springcloud/
│ └── SeataStorageServiceApplicationTests.java
├── sentinel-service/
│ ├── .gitignore
│ ├── .mvn/
│ │ └── wrapper/
│ │ ├── MavenWrapperDownloader.java
│ │ ├── maven-wrapper.jar
│ │ └── maven-wrapper.properties
│ ├── mvnw
│ ├── mvnw.cmd
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── jourwon/
│ │ │ └── springcloud/
│ │ │ ├── SentinelServiceApplication.java
│ │ │ ├── config/
│ │ │ │ └── RibbonConfig.java
│ │ │ ├── controller/
│ │ │ │ ├── CircleBreakerController.java
│ │ │ │ ├── RateLimitController.java
│ │ │ │ └── UserFeignController.java
│ │ │ ├── handler/
│ │ │ │ └── CustomBlockHandler.java
│ │ │ ├── pojo/
│ │ │ │ ├── Result.java
│ │ │ │ └── User.java
│ │ │ └── service/
│ │ │ ├── UserService.java
│ │ │ └── impl/
│ │ │ └── UserFallbackService.java
│ │ └── resources/
│ │ └── application.yml
│ └── test/
│ └── java/
│ └── com/
│ └── jourwon/
│ └── springcloud/
│ └── SentinelServiceApplicationTests.java
├── turbine-service/
│ ├── .gitignore
│ ├── .mvn/
│ │ └── wrapper/
│ │ ├── MavenWrapperDownloader.java
│ │ ├── maven-wrapper.jar
│ │ └── maven-wrapper.properties
│ ├── mvnw
│ ├── mvnw.cmd
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── jourwon/
│ │ │ └── springcloud/
│ │ │ └── TurbineServiceApplication.java
│ │ └── resources/
│ │ └── application.yml
│ └── test/
│ └── java/
│ └── com/
│ └── jourwon/
│ └── springcloud/
│ └── TurbineServiceApplicationTests.java
├── user-service/
│ ├── .gitignore
│ ├── .mvn/
│ │ └── wrapper/
│ │ ├── MavenWrapperDownloader.java
│ │ ├── maven-wrapper.jar
│ │ └── maven-wrapper.properties
│ ├── mvnw
│ ├── mvnw.cmd
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── jourwon/
│ │ │ └── springcloud/
│ │ │ ├── UserServiceApplication.java
│ │ │ ├── controller/
│ │ │ │ └── UserController.java
│ │ │ ├── pojo/
│ │ │ │ ├── Result.java
│ │ │ │ └── User.java
│ │ │ └── service/
│ │ │ ├── UserService.java
│ │ │ └── impl/
│ │ │ └── UserServiceImpl.java
│ │ └── resources/
│ │ ├── application-replica.yml
│ │ └── application.yml
│ └── test/
│ └── java/
│ └── com/
│ └── jourwon/
│ └── springcloud/
│ └── UserServiceApplicationTests.java
└── zuul-proxy/
├── .gitignore
├── .mvn/
│ └── wrapper/
│ ├── MavenWrapperDownloader.java
│ ├── maven-wrapper.jar
│ └── maven-wrapper.properties
├── mvnw
├── mvnw.cmd
├── pom.xml
└── src/
├── main/
│ ├── java/
│ │ └── com/
│ │ └── jourwon/
│ │ └── springcloud/
│ │ ├── ZuulProxyApplication.java
│ │ └── filter/
│ │ └── PreLogFilter.java
│ └── resources/
│ └── application.yml
└── test/
└── java/
└── com/
└── jourwon/
└── springcloud/
└── ZuulProxyApplicationTests.java
================================================
FILE CONTENTS
================================================
================================================
FILE: .gitignore
================================================
HELP.md
target/
!.mvn/wrapper/maven-wrapper.jar
!**/src/main/**
!**/src/test/**
### STS ###
.apt_generated
.classpath
.factorypath
.project
.settings
.springBeans
.sts4-cache
### IntelliJ IDEA ###
.idea
*.iws
*.iml
*.ipr
### NetBeans ###
/nbproject/private/
/nbbuild/
/dist/
/nbdist/
/.nb-gradle/
build/
### VS Code ###
.vscode/
================================================
FILE: README.md
================================================
# springcloud-learning
学习Spring Cloud框架的总结,使用的是最新的Hoxton版本。主要包括Eureka、Ribbon、Hystrix、Feign、Zuul、Gateway、Security、Bus、OpenFeign等核心组件用法进行详细介绍。
================================================
FILE: admin-client/.gitignore
================================================
HELP.md
target/
!.mvn/wrapper/maven-wrapper.jar
!**/src/main/**
!**/src/test/**
### STS ###
.apt_generated
.classpath
.factorypath
.project
.settings
.springBeans
.sts4-cache
### IntelliJ IDEA ###
.idea
*.iws
*.iml
*.ipr
### NetBeans ###
/nbproject/private/
/nbbuild/
/dist/
/nbdist/
/.nb-gradle/
build/
### VS Code ###
.vscode/
================================================
FILE: admin-client/.mvn/wrapper/MavenWrapperDownloader.java
================================================
/*
* Copyright 2012-2019 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import java.net.*;
import java.io.*;
import java.nio.channels.*;
import java.util.Properties;
public class MavenWrapperDownloader {
private static final String WRAPPER_VERSION = "0.5.5";
/**
* Default URL to download the maven-wrapper.jar from, if no 'downloadUrl' is provided.
*/
private static final String DEFAULT_DOWNLOAD_URL = "https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/"
+ WRAPPER_VERSION + "/maven-wrapper-" + WRAPPER_VERSION + ".jar";
/**
* Path to the maven-wrapper.properties file, which might contain a downloadUrl property to
* use instead of the default one.
*/
private static final String MAVEN_WRAPPER_PROPERTIES_PATH =
".mvn/wrapper/maven-wrapper.properties";
/**
* Path where the maven-wrapper.jar will be saved to.
*/
private static final String MAVEN_WRAPPER_JAR_PATH =
".mvn/wrapper/maven-wrapper.jar";
/**
* Name of the property which should be used to override the default download url for the wrapper.
*/
private static final String PROPERTY_NAME_WRAPPER_URL = "wrapperUrl";
public static void main(String args[]) {
System.out.println("- Downloader started");
File baseDirectory = new File(args[0]);
System.out.println("- Using base directory: " + baseDirectory.getAbsolutePath());
// If the maven-wrapper.properties exists, read it and check if it contains a custom
// wrapperUrl parameter.
File mavenWrapperPropertyFile = new File(baseDirectory, MAVEN_WRAPPER_PROPERTIES_PATH);
String url = DEFAULT_DOWNLOAD_URL;
if (mavenWrapperPropertyFile.exists()) {
FileInputStream mavenWrapperPropertyFileInputStream = null;
try {
mavenWrapperPropertyFileInputStream = new FileInputStream(mavenWrapperPropertyFile);
Properties mavenWrapperProperties = new Properties();
mavenWrapperProperties.load(mavenWrapperPropertyFileInputStream);
url = mavenWrapperProperties.getProperty(PROPERTY_NAME_WRAPPER_URL, url);
} catch (IOException e) {
System.out.println("- ERROR loading '" + MAVEN_WRAPPER_PROPERTIES_PATH + "'");
} finally {
try {
if (mavenWrapperPropertyFileInputStream != null) {
mavenWrapperPropertyFileInputStream.close();
}
} catch (IOException e) {
// Ignore ...
}
}
}
System.out.println("- Downloading from: " + url);
File outputFile = new File(baseDirectory.getAbsolutePath(), MAVEN_WRAPPER_JAR_PATH);
if (!outputFile.getParentFile().exists()) {
if (!outputFile.getParentFile().mkdirs()) {
System.out.println(
"- ERROR creating output directory '" + outputFile.getParentFile().getAbsolutePath() + "'");
}
}
System.out.println("- Downloading to: " + outputFile.getAbsolutePath());
try {
downloadFileFromURL(url, outputFile);
System.out.println("Done");
System.exit(0);
} catch (Throwable e) {
System.out.println("- Error downloading");
e.printStackTrace();
System.exit(1);
}
}
private static void downloadFileFromURL(String urlString, File destination) throws Exception {
if (System.getenv("MVNW_USERNAME") != null && System.getenv("MVNW_PASSWORD") != null) {
String username = System.getenv("MVNW_USERNAME");
char[] password = System.getenv("MVNW_PASSWORD").toCharArray();
Authenticator.setDefault(new Authenticator() {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(username, password);
}
});
}
URL website = new URL(urlString);
ReadableByteChannel rbc;
rbc = Channels.newChannel(website.openStream());
FileOutputStream fos = new FileOutputStream(destination);
fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE);
fos.close();
rbc.close();
}
}
================================================
FILE: admin-client/.mvn/wrapper/maven-wrapper.properties
================================================
distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.2/apache-maven-3.6.2-bin.zip
wrapperUrl=https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.5/maven-wrapper-0.5.5.jar
================================================
FILE: admin-client/mvnw
================================================
#!/bin/sh
# ----------------------------------------------------------------------------
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
# ----------------------------------------------------------------------------
# ----------------------------------------------------------------------------
# Maven2 Start Up Batch script
#
# Required ENV vars:
# ------------------
# JAVA_HOME - location of a JDK home dir
#
# Optional ENV vars
# -----------------
# M2_HOME - location of maven2's installed home dir
# MAVEN_OPTS - parameters passed to the Java VM when running Maven
# e.g. to debug Maven itself, use
# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
# MAVEN_SKIP_RC - flag to disable loading of mavenrc files
# ----------------------------------------------------------------------------
if [ -z "$MAVEN_SKIP_RC" ] ; then
if [ -f /etc/mavenrc ] ; then
. /etc/mavenrc
fi
if [ -f "$HOME/.mavenrc" ] ; then
. "$HOME/.mavenrc"
fi
fi
# OS specific support. $var _must_ be set to either true or false.
cygwin=false;
darwin=false;
mingw=false
case "`uname`" in
CYGWIN*) cygwin=true ;;
MINGW*) mingw=true;;
Darwin*) darwin=true
# Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home
# See https://developer.apple.com/library/mac/qa/qa1170/_index.html
if [ -z "$JAVA_HOME" ]; then
if [ -x "/usr/libexec/java_home" ]; then
export JAVA_HOME="`/usr/libexec/java_home`"
else
export JAVA_HOME="/Library/Java/Home"
fi
fi
;;
esac
if [ -z "$JAVA_HOME" ] ; then
if [ -r /etc/gentoo-release ] ; then
JAVA_HOME=`java-config --jre-home`
fi
fi
if [ -z "$M2_HOME" ] ; then
## resolve links - $0 may be a link to maven's home
PRG="$0"
# need this for relative symlinks
while [ -h "$PRG" ] ; do
ls=`ls -ld "$PRG"`
link=`expr "$ls" : '.*-> \(.*\)$'`
if expr "$link" : '/.*' > /dev/null; then
PRG="$link"
else
PRG="`dirname "$PRG"`/$link"
fi
done
saveddir=`pwd`
M2_HOME=`dirname "$PRG"`/..
# make it fully qualified
M2_HOME=`cd "$M2_HOME" && pwd`
cd "$saveddir"
# echo Using m2 at $M2_HOME
fi
# For Cygwin, ensure paths are in UNIX format before anything is touched
if $cygwin ; then
[ -n "$M2_HOME" ] &&
M2_HOME=`cygpath --unix "$M2_HOME"`
[ -n "$JAVA_HOME" ] &&
JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
[ -n "$CLASSPATH" ] &&
CLASSPATH=`cygpath --path --unix "$CLASSPATH"`
fi
# For Mingw, ensure paths are in UNIX format before anything is touched
if $mingw ; then
[ -n "$M2_HOME" ] &&
M2_HOME="`(cd "$M2_HOME"; pwd)`"
[ -n "$JAVA_HOME" ] &&
JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`"
fi
if [ -z "$JAVA_HOME" ]; then
javaExecutable="`which javac`"
if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then
# readlink(1) is not available as standard on Solaris 10.
readLink=`which readlink`
if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then
if $darwin ; then
javaHome="`dirname \"$javaExecutable\"`"
javaExecutable="`cd \"$javaHome\" && pwd -P`/javac"
else
javaExecutable="`readlink -f \"$javaExecutable\"`"
fi
javaHome="`dirname \"$javaExecutable\"`"
javaHome=`expr "$javaHome" : '\(.*\)/bin'`
JAVA_HOME="$javaHome"
export JAVA_HOME
fi
fi
fi
if [ -z "$JAVACMD" ] ; then
if [ -n "$JAVA_HOME" ] ; then
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
# IBM's JDK on AIX uses strange locations for the executables
JAVACMD="$JAVA_HOME/jre/sh/java"
else
JAVACMD="$JAVA_HOME/bin/java"
fi
else
JAVACMD="`which java`"
fi
fi
if [ ! -x "$JAVACMD" ] ; then
echo "Error: JAVA_HOME is not defined correctly." >&2
echo " We cannot execute $JAVACMD" >&2
exit 1
fi
if [ -z "$JAVA_HOME" ] ; then
echo "Warning: JAVA_HOME environment variable is not set."
fi
CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher
# traverses directory structure from process work directory to filesystem root
# first directory with .mvn subdirectory is considered project base directory
find_maven_basedir() {
if [ -z "$1" ]
then
echo "Path not specified to find_maven_basedir"
return 1
fi
basedir="$1"
wdir="$1"
while [ "$wdir" != '/' ] ; do
if [ -d "$wdir"/.mvn ] ; then
basedir=$wdir
break
fi
# workaround for JBEAP-8937 (on Solaris 10/Sparc)
if [ -d "${wdir}" ]; then
wdir=`cd "$wdir/.."; pwd`
fi
# end of workaround
done
echo "${basedir}"
}
# concatenates all lines of a file
concat_lines() {
if [ -f "$1" ]; then
echo "$(tr -s '\n' ' ' < "$1")"
fi
}
BASE_DIR=`find_maven_basedir "$(pwd)"`
if [ -z "$BASE_DIR" ]; then
exit 1;
fi
##########################################################################################
# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
# This allows using the maven wrapper in projects that prohibit checking in binary data.
##########################################################################################
if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then
if [ "$MVNW_VERBOSE" = true ]; then
echo "Found .mvn/wrapper/maven-wrapper.jar"
fi
else
if [ "$MVNW_VERBOSE" = true ]; then
echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..."
fi
if [ -n "$MVNW_REPOURL" ]; then
jarUrl="$MVNW_REPOURL/io/takari/maven-wrapper/0.5.5/maven-wrapper-0.5.5.jar"
else
jarUrl="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.5/maven-wrapper-0.5.5.jar"
fi
while IFS="=" read key value; do
case "$key" in (wrapperUrl) jarUrl="$value"; break ;;
esac
done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties"
if [ "$MVNW_VERBOSE" = true ]; then
echo "Downloading from: $jarUrl"
fi
wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar"
if $cygwin; then
wrapperJarPath=`cygpath --path --windows "$wrapperJarPath"`
fi
if command -v wget > /dev/null; then
if [ "$MVNW_VERBOSE" = true ]; then
echo "Found wget ... using wget"
fi
if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then
wget "$jarUrl" -O "$wrapperJarPath"
else
wget --http-user=$MVNW_USERNAME --http-password=$MVNW_PASSWORD "$jarUrl" -O "$wrapperJarPath"
fi
elif command -v curl > /dev/null; then
if [ "$MVNW_VERBOSE" = true ]; then
echo "Found curl ... using curl"
fi
if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then
curl -o "$wrapperJarPath" "$jarUrl" -f
else
curl --user $MVNW_USERNAME:$MVNW_PASSWORD -o "$wrapperJarPath" "$jarUrl" -f
fi
else
if [ "$MVNW_VERBOSE" = true ]; then
echo "Falling back to using Java to download"
fi
javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java"
# For Cygwin, switch paths to Windows format before running javac
if $cygwin; then
javaClass=`cygpath --path --windows "$javaClass"`
fi
if [ -e "$javaClass" ]; then
if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
if [ "$MVNW_VERBOSE" = true ]; then
echo " - Compiling MavenWrapperDownloader.java ..."
fi
# Compiling the Java class
("$JAVA_HOME/bin/javac" "$javaClass")
fi
if [ -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
# Running the downloader
if [ "$MVNW_VERBOSE" = true ]; then
echo " - Running MavenWrapperDownloader.java ..."
fi
("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR")
fi
fi
fi
fi
##########################################################################################
# End of extension
##########################################################################################
export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"}
if [ "$MVNW_VERBOSE" = true ]; then
echo $MAVEN_PROJECTBASEDIR
fi
MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS"
# For Cygwin, switch paths to Windows format before running java
if $cygwin; then
[ -n "$M2_HOME" ] &&
M2_HOME=`cygpath --path --windows "$M2_HOME"`
[ -n "$JAVA_HOME" ] &&
JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"`
[ -n "$CLASSPATH" ] &&
CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
[ -n "$MAVEN_PROJECTBASEDIR" ] &&
MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"`
fi
# Provide a "standardized" way to retrieve the CLI args that will
# work with both Windows and non-Windows executions.
MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $@"
export MAVEN_CMD_LINE_ARGS
WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
exec "$JAVACMD" \
$MAVEN_OPTS \
-classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \
"-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \
${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@"
================================================
FILE: admin-client/mvnw.cmd
================================================
@REM ----------------------------------------------------------------------------
@REM Licensed to the Apache Software Foundation (ASF) under one
@REM or more contributor license agreements. See the NOTICE file
@REM distributed with this work for additional information
@REM regarding copyright ownership. The ASF licenses this file
@REM to you under the Apache License, Version 2.0 (the
@REM "License"); you may not use this file except in compliance
@REM with the License. You may obtain a copy of the License at
@REM
@REM https://www.apache.org/licenses/LICENSE-2.0
@REM
@REM Unless required by applicable law or agreed to in writing,
@REM software distributed under the License is distributed on an
@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@REM KIND, either express or implied. See the License for the
@REM specific language governing permissions and limitations
@REM under the License.
@REM ----------------------------------------------------------------------------
@REM ----------------------------------------------------------------------------
@REM Maven2 Start Up Batch script
@REM
@REM Required ENV vars:
@REM JAVA_HOME - location of a JDK home dir
@REM
@REM Optional ENV vars
@REM M2_HOME - location of maven2's installed home dir
@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands
@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending
@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven
@REM e.g. to debug Maven itself, use
@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files
@REM ----------------------------------------------------------------------------
@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on'
@echo off
@REM set title of command window
title %0
@REM enable echoing by setting MAVEN_BATCH_ECHO to 'on'
@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO%
@REM set %HOME% to equivalent of $HOME
if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%")
@REM Execute a user defined script before this one
if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre
@REM check for pre script, once with legacy .bat ending and once with .cmd ending
if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat"
if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd"
:skipRcPre
@setlocal
set ERROR_CODE=0
@REM To isolate internal variables from possible post scripts, we use another setlocal
@setlocal
@REM ==== START VALIDATION ====
if not "%JAVA_HOME%" == "" goto OkJHome
echo.
echo Error: JAVA_HOME not found in your environment. >&2
echo Please set the JAVA_HOME variable in your environment to match the >&2
echo location of your Java installation. >&2
echo.
goto error
:OkJHome
if exist "%JAVA_HOME%\bin\java.exe" goto init
echo.
echo Error: JAVA_HOME is set to an invalid directory. >&2
echo JAVA_HOME = "%JAVA_HOME%" >&2
echo Please set the JAVA_HOME variable in your environment to match the >&2
echo location of your Java installation. >&2
echo.
goto error
@REM ==== END VALIDATION ====
:init
@REM Find the project base dir, i.e. the directory that contains the folder ".mvn".
@REM Fallback to current working directory if not found.
set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR%
IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir
set EXEC_DIR=%CD%
set WDIR=%EXEC_DIR%
:findBaseDir
IF EXIST "%WDIR%"\.mvn goto baseDirFound
cd ..
IF "%WDIR%"=="%CD%" goto baseDirNotFound
set WDIR=%CD%
goto findBaseDir
:baseDirFound
set MAVEN_PROJECTBASEDIR=%WDIR%
cd "%EXEC_DIR%"
goto endDetectBaseDir
:baseDirNotFound
set MAVEN_PROJECTBASEDIR=%EXEC_DIR%
cd "%EXEC_DIR%"
:endDetectBaseDir
IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig
@setlocal EnableExtensions EnableDelayedExpansion
for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a
@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS%
:endReadAdditionalConfig
SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe"
set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar"
set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.5/maven-wrapper-0.5.5.jar"
FOR /F "tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO (
IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B
)
@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
@REM This allows using the maven wrapper in projects that prohibit checking in binary data.
if exist %WRAPPER_JAR% (
if "%MVNW_VERBOSE%" == "true" (
echo Found %WRAPPER_JAR%
)
) else (
if not "%MVNW_REPOURL%" == "" (
SET DOWNLOAD_URL="%MVNW_REPOURL%/io/takari/maven-wrapper/0.5.5/maven-wrapper-0.5.5.jar"
)
if "%MVNW_VERBOSE%" == "true" (
echo Couldn't find %WRAPPER_JAR%, downloading it ...
echo Downloading from: %DOWNLOAD_URL%
)
powershell -Command "&{"^
"$webclient = new-object System.Net.WebClient;"^
"if (-not ([string]::IsNullOrEmpty('%MVNW_USERNAME%') -and [string]::IsNullOrEmpty('%MVNW_PASSWORD%'))) {"^
"$webclient.Credentials = new-object System.Net.NetworkCredential('%MVNW_USERNAME%', '%MVNW_PASSWORD%');"^
"}"^
"[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $webclient.DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')"^
"}"
if "%MVNW_VERBOSE%" == "true" (
echo Finished downloading %WRAPPER_JAR%
)
)
@REM End of extension
@REM Provide a "standardized" way to retrieve the CLI args that will
@REM work with both Windows and non-Windows executions.
set MAVEN_CMD_LINE_ARGS=%*
%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %*
if ERRORLEVEL 1 goto error
goto end
:error
set ERROR_CODE=1
:end
@endlocal & set ERROR_CODE=%ERROR_CODE%
if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost
@REM check for post script, once with legacy .bat ending and once with .cmd ending
if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat"
if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd"
:skipRcPost
@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on'
if "%MAVEN_BATCH_PAUSE%" == "on" pause
if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE%
exit /B %ERROR_CODE%
================================================
FILE: admin-client/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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.2.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.jourwon.springcloud</groupId>
<artifactId>admin-client</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>admin-client</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
<spring-boot-admin.version>2.2.0</spring-boot-admin.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-starter-client</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
<version>2.2.1.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-dependencies</artifactId>
<version>${spring-boot-admin.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>
================================================
FILE: admin-client/src/main/java/com/jourwon/springcloud/AdminClientApplication.java
================================================
package com.jourwon.springcloud;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
/**
* Description:
*
* @author JourWon
* @date 2019/12/23 11:46
*/
@EnableDiscoveryClient
@SpringBootApplication
public class AdminClientApplication {
public static void main(String[] args) {
SpringApplication.run(AdminClientApplication.class, args);
}
}
================================================
FILE: admin-client/src/main/java/com/jourwon/springcloud/controller/UserController.java
================================================
package com.jourwon.springcloud.controller;
import com.jourwon.springcloud.pojo.Result;
import com.jourwon.springcloud.pojo.User;
import com.jourwon.springcloud.service.UserService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* Description:
*
* @author JourWon
* @date 2019/12/18 11:52
*/
@RestController
@RequestMapping("/user")
public class UserController {
private static final Logger LOGGER = LoggerFactory.getLogger(UserController.class);
@Autowired
private UserService userService;
@PostMapping("/insert")
public Result insert(@RequestBody User user) {
userService.insert(user);
return new Result("操作成功", 200);
}
@GetMapping("/{id}")
public Result<User> getUser(@PathVariable Long id) {
User user = userService.getUser(id);
LOGGER.info("根据id获取用户信息,用户名称为:{}",user.getUsername());
return new Result<User>(user);
}
@GetMapping("/listUsersByIds")
public Result<List<User>> listUsersByIds(@RequestParam List<Long> ids) {
List<User> userList= userService.listUsersByIds(ids);
LOGGER.info("根据ids获取用户信息,用户列表为:{}",userList);
return new Result<List<User>>(userList);
}
@GetMapping("/getByUsername")
public Result<User> getByUsername(@RequestParam String username) {
User user = userService.getByUsername(username);
return new Result<User>(user);
}
@PostMapping("/update")
public Result update(@RequestBody User user) {
userService.update(user);
return new Result("操作成功", 200);
}
@PostMapping("/delete/{id}")
public Result delete(@PathVariable Long id) {
userService.delete(id);
return new Result("操作成功", 200);
}
}
================================================
FILE: admin-client/src/main/java/com/jourwon/springcloud/pojo/Result.java
================================================
package com.jourwon.springcloud.pojo;
/**
* Description:统一返回前端的对象
*
* @author JourWon
* @date 2019/12/18 13:57
*/
public class Result<T> {
private T data;
private String message;
private int code;
public Result() {
}
public Result(T data, String message, int code) {
this.data = data;
this.message = message;
this.code = code;
}
public Result(String message, Integer code) {
this(null, message, code);
}
public Result(T data) {
this(data, "操作成功", 200);
}
public T getData() {
return data;
}
public void setData(T data) {
this.data = data;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
public int getCode() {
return code;
}
public void setCode(int code) {
this.code = code;
}
}
================================================
FILE: admin-client/src/main/java/com/jourwon/springcloud/pojo/User.java
================================================
package com.jourwon.springcloud.pojo;
/**
* Description:用户
*
* @author JourWon
* @date 2019/12/18 14:00
*/
public class User {
private Long id;
private String username;
private String password;
public User() {
}
public User(Long id, String username, String password) {
this.id = id;
this.username = username;
this.password = password;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
================================================
FILE: admin-client/src/main/java/com/jourwon/springcloud/service/UserService.java
================================================
package com.jourwon.springcloud.service;
import com.jourwon.springcloud.pojo.User;
import java.util.List;
/**
* Description:
*
* @author JourWon
* @date 2019/12/18 14:06
*/
public interface UserService {
void insert(User user);
User getUser(Long id);
void update(User user);
void delete(Long id);
User getByUsername(String username);
List<User> listUsersByIds(List<Long> ids);
}
================================================
FILE: admin-client/src/main/java/com/jourwon/springcloud/service/impl/UserServiceImpl.java
================================================
package com.jourwon.springcloud.service.impl;
import com.jourwon.springcloud.pojo.User;
import com.jourwon.springcloud.service.UserService;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import javax.annotation.PostConstruct;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
/**
* Description:
*
* @author JourWon
* @date 2019/12/18 14:08
*/
@Service
public class UserServiceImpl implements UserService {
private List<User> userList;
@Override
public void insert(User user) {
userList.add(user);
}
@Override
public User getUser(Long id) {
List<User> list = userList.stream().filter(userItem -> userItem.getId().equals(id)).collect(Collectors.toList());
if (!CollectionUtils.isEmpty(list)) {
return list.get(0);
}
return null;
}
@Override
public void update(User user) {
userList.stream().filter(userItem -> userItem.getId().equals(user.getId())).forEach(userItem -> {
userItem.setUsername(user.getUsername());
userItem.setPassword(user.getPassword());
});
}
@Override
public void delete(Long id) {
User user = getUser(id);
if (user != null) {
userList.remove(user);
}
}
@Override
public User getByUsername(String username) {
List<User> list = userList.stream().filter(userItem -> userItem.getUsername().equals(username)).collect(Collectors.toList());
if (!CollectionUtils.isEmpty(list)) {
return list.get(0);
}
return null;
}
@Override
public List<User> listUsersByIds(List<Long> ids) {
return userList.stream().filter(userItem -> ids.contains(userItem.getId())).collect(Collectors.toList());
}
@PostConstruct
public void initData() {
userList = new ArrayList<>();
userList.add(new User(1L, "jourwon", "123456"));
userList.add(new User(2L, "andy", "123456"));
userList.add(new User(3L, "mark", "123456"));
}
}
================================================
FILE: admin-client/src/main/resources/application-eureka.yml
================================================
server:
port: 9305
spring:
application:
name: admin-client
boot:
admin:
client:
# 配置admin-server地址
url: http://localhost:9301
management:
endpoints:
web:
exposure:
include: '*'
endpoint:
health:
show-details: always
eureka:
client:
service-url:
defaultZone: http://localhost:8001/eureka/
# 添加开启admin的日志监控
logging:
file: admin-client.log
================================================
FILE: admin-client/src/main/resources/application.yml
================================================
server:
port: 9305
spring:
application:
name: admin-client
boot:
admin:
client:
# 配置admin-server地址
url: http://localhost:9301
management:
endpoints:
web:
exposure:
include: '*'
endpoint:
health:
show-details: always
# 添加开启admin的日志监控
logging:
file: admin-client.log
================================================
FILE: admin-client/src/test/java/com/jourwon/springcloud/AdminClientApplicationTests.java
================================================
package com.jourwon.springcloud;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
@SpringBootTest
class AdminClientApplicationTests {
@Test
void contextLoads() {
}
}
================================================
FILE: admin-client.log
================================================
2019-12-23 11:40:34.569 INFO 13588 --- [main] c.j.springcloud.AdminClientApplication : Starting AdminClientApplication on LAPTOP-6UL0UB2U with PID 13588 (E:\IdeaProjects\springcloud-learning\admin-client\target\classes started by JourW in E:\IdeaProjects\springcloud-learning)
2019-12-23 11:40:34.574 INFO 13588 --- [main] c.j.springcloud.AdminClientApplication : No active profile set, falling back to default profiles: default
2019-12-23 11:40:35.847 INFO 13588 --- [main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 9305 (http)
2019-12-23 11:40:35.852 INFO 13588 --- [main] o.apache.catalina.core.StandardService : Starting service [Tomcat]
2019-12-23 11:40:35.853 INFO 13588 --- [main] org.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/9.0.29]
2019-12-23 11:40:35.909 INFO 13588 --- [main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext
2019-12-23 11:40:35.909 INFO 13588 --- [main] o.s.web.context.ContextLoader : Root WebApplicationContext: initialization completed in 1257 ms
2019-12-23 11:40:36.032 INFO 13588 --- [main] o.s.b.a.e.web.ServletEndpointRegistrar : Registered '/actuator/jolokia' to jolokia-actuator-endpoint
2019-12-23 11:40:36.129 INFO 13588 --- [main] o.s.s.concurrent.ThreadPoolTaskExecutor : Initializing ExecutorService 'applicationTaskExecutor'
2019-12-23 11:40:36.255 INFO 13588 --- [main] o.s.s.c.ThreadPoolTaskScheduler : Initializing ExecutorService
2019-12-23 11:40:36.268 INFO 13588 --- [main] o.s.b.a.e.web.EndpointLinksResolver : Exposing 15 endpoint(s) beneath base path '/actuator'
2019-12-23 11:40:36.307 INFO 13588 --- [main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 9305 (http) with context path ''
2019-12-23 11:40:36.310 INFO 13588 --- [main] c.j.springcloud.AdminClientApplication : Started AdminClientApplication in 2.09 seconds (JVM running for 2.68)
2019-12-23 11:40:36.448 INFO 13588 --- [registrationTask1] d.c.b.a.c.r.ApplicationRegistrator : Application registered itself as 82091ead3036
2019-12-23 11:40:36.467 INFO 13588 --- [http-nio-9305-exec-1] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring DispatcherServlet 'dispatcherServlet'
2019-12-23 11:40:36.467 INFO 13588 --- [http-nio-9305-exec-1] o.s.web.servlet.DispatcherServlet : Initializing Servlet 'dispatcherServlet'
2019-12-23 11:40:36.471 INFO 13588 --- [http-nio-9305-exec-1] o.s.web.servlet.DispatcherServlet : Completed initialization in 4 ms
2019-12-23 11:56:48.142 INFO 16380 --- [main] c.j.springcloud.AdminClientApplication : The following profiles are active: eureka
2019-12-23 11:56:49.177 WARN 16380 --- [main] o.s.boot.actuate.endpoint.EndpointId : Endpoint ID 'service-registry' contains invalid characters, please migrate to a valid format.
2019-12-23 11:56:49.332 INFO 16380 --- [main] o.s.cloud.context.scope.GenericScope : BeanFactory id=41153c3a-68be-31b5-9a52-ef50a1eb9789
2019-12-23 11:56:49.480 INFO 16380 --- [main] trationDelegate$BeanPostProcessorChecker : Bean 'org.springframework.cloud.autoconfigure.ConfigurationPropertiesRebinderAutoConfiguration' of type [org.springframework.cloud.autoconfigure.ConfigurationPropertiesRebinderAutoConfiguration] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2019-12-23 11:56:49.713 INFO 16380 --- [main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 9305 (http)
2019-12-23 11:56:49.724 INFO 16380 --- [main] o.apache.catalina.core.StandardService : Starting service [Tomcat]
2019-12-23 11:56:49.725 INFO 16380 --- [main] org.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/9.0.29]
2019-12-23 11:56:49.878 INFO 16380 --- [main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext
2019-12-23 11:56:49.878 INFO 16380 --- [main] o.s.web.context.ContextLoader : Root WebApplicationContext: initialization completed in 1716 ms
2019-12-23 11:56:49.985 WARN 16380 --- [main] c.n.c.sources.URLConfigurationSource : No URLs will be polled as dynamic configuration sources.
2019-12-23 11:56:49.986 INFO 16380 --- [main] c.n.c.sources.URLConfigurationSource : To enable URLs as dynamic configuration sources, define System property archaius.configurationSource.additionalUrls or make config.properties available on classpath.
2019-12-23 11:56:49.994 INFO 16380 --- [main] c.netflix.config.DynamicPropertyFactory : DynamicPropertyFactory is initialized with configuration sources: com.netflix.config.ConcurrentCompositeConfiguration@73fc518f
2019-12-23 11:56:50.653 INFO 16380 --- [main] o.s.b.a.e.web.ServletEndpointRegistrar : Registered '/actuator/jolokia' to jolokia-actuator-endpoint
2019-12-23 11:56:50.696 WARN 16380 --- [main] c.n.c.sources.URLConfigurationSource : No URLs will be polled as dynamic configuration sources.
2019-12-23 11:56:50.696 INFO 16380 --- [main] c.n.c.sources.URLConfigurationSource : To enable URLs as dynamic configuration sources, define System property archaius.configurationSource.additionalUrls or make config.properties available on classpath.
2019-12-23 11:56:50.888 INFO 16380 --- [main] o.s.s.concurrent.ThreadPoolTaskExecutor : Initializing ExecutorService 'applicationTaskExecutor'
2019-12-23 11:56:51.903 INFO 16380 --- [main] o.s.s.c.ThreadPoolTaskScheduler : Initializing ExecutorService
2019-12-23 11:56:53.219 WARN 16380 --- [main] ockingLoadBalancerClientRibbonWarnLogger : You already have RibbonLoadBalancerClient on your classpath. It will be used by default. As Spring Cloud Ribbon is in maintenance mode. We recommend switching to BlockingLoadBalancerClient instead. In order to use it, set the value of `spring.cloud.loadbalancer.ribbon.enabled` to `false` or remove spring-cloud-starter-netflix-ribbon from your project.
2019-12-23 11:56:53.266 WARN 16380 --- [main] iguration$LoadBalancerCaffeineWarnLogger : Spring Cloud LoadBalancer is currently working with default default cache. You can switch to using Caffeine cache, by adding it to the classpath.
2019-12-23 11:56:53.285 INFO 16380 --- [main] o.s.b.a.e.web.EndpointLinksResolver : Exposing 19 endpoint(s) beneath base path '/actuator'
2019-12-23 11:56:53.365 INFO 16380 --- [main] o.s.c.n.eureka.InstanceInfoFactory : Setting initial instance status as: STARTING
2019-12-23 11:56:53.418 INFO 16380 --- [main] com.netflix.discovery.DiscoveryClient : Initializing Eureka in region us-east-1
2019-12-23 11:56:53.491 INFO 16380 --- [main] c.n.d.provider.DiscoveryJerseyProvider : Using JSON encoding codec LegacyJacksonJson
2019-12-23 11:56:53.491 INFO 16380 --- [main] c.n.d.provider.DiscoveryJerseyProvider : Using JSON decoding codec LegacyJacksonJson
2019-12-23 11:56:53.638 INFO 16380 --- [main] c.n.d.provider.DiscoveryJerseyProvider : Using XML encoding codec XStreamXml
2019-12-23 11:56:53.638 INFO 16380 --- [main] c.n.d.provider.DiscoveryJerseyProvider : Using XML decoding codec XStreamXml
2019-12-23 11:56:53.854 INFO 16380 --- [main] c.n.d.s.r.aws.ConfigClusterResolver : Resolving eureka endpoints via configuration
2019-12-23 11:56:54.101 INFO 16380 --- [main] com.netflix.discovery.DiscoveryClient : Disable delta property : false
2019-12-23 11:56:54.102 INFO 16380 --- [main] com.netflix.discovery.DiscoveryClient : Single vip registry refresh property : null
2019-12-23 11:56:54.102 INFO 16380 --- [main] com.netflix.discovery.DiscoveryClient : Force full registry fetch : false
2019-12-23 11:56:54.102 INFO 16380 --- [main] com.netflix.discovery.DiscoveryClient : Application is null : false
2019-12-23 11:56:54.102 INFO 16380 --- [main] com.netflix.discovery.DiscoveryClient : Registered Applications size is zero : true
2019-12-23 11:56:54.102 INFO 16380 --- [main] com.netflix.discovery.DiscoveryClient : Application version is -1: true
2019-12-23 11:56:54.102 INFO 16380 --- [main] com.netflix.discovery.DiscoveryClient : Getting all instance registry info from the eureka server
2019-12-23 11:56:54.312 INFO 16380 --- [main] com.netflix.discovery.DiscoveryClient : The response status is 200
2019-12-23 11:56:54.314 INFO 16380 --- [main] com.netflix.discovery.DiscoveryClient : Starting heartbeat executor: renew interval is: 30
2019-12-23 11:56:54.317 INFO 16380 --- [main] c.n.discovery.InstanceInfoReplicator : InstanceInfoReplicator onDemand update allowed rate per min is 4
2019-12-23 11:56:54.322 INFO 16380 --- [main] com.netflix.discovery.DiscoveryClient : Discovery Client initialized at timestamp 1577073414321 with initial instances count: 0
2019-12-23 11:56:54.324 INFO 16380 --- [main] o.s.c.n.e.s.EurekaServiceRegistry : Registering application ADMIN-CLIENT with eureka with status UP
2019-12-23 11:56:54.325 INFO 16380 --- [main] com.netflix.discovery.DiscoveryClient : Saw local status change event StatusChangeEvent [timestamp=1577073414325, current=UP, previous=STARTING]
2019-12-23 11:56:54.327 INFO 16380 --- [DiscoveryClient-InstanceInfoReplicator-0] com.netflix.discovery.DiscoveryClient : DiscoveryClient_ADMIN-CLIENT/LAPTOP-6UL0UB2U:admin-client:9305: registering service...
2019-12-23 11:56:54.382 INFO 16380 --- [main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 9305 (http) with context path ''
2019-12-23 11:56:54.383 INFO 16380 --- [main] .s.c.n.e.s.EurekaAutoServiceRegistration : Updating port to 9305
2019-12-23 11:56:54.452 INFO 16380 --- [DiscoveryClient-InstanceInfoReplicator-0] com.netflix.discovery.DiscoveryClient : DiscoveryClient_ADMIN-CLIENT/LAPTOP-6UL0UB2U:admin-client:9305 - registration status: 204
2019-12-23 11:56:54.694 INFO 16380 --- [main] c.j.springcloud.AdminClientApplication : Started AdminClientApplication in 8.921 seconds (JVM running for 10.092)
2019-12-23 11:56:56.755 WARN 16380 --- [registrationTask1] d.c.b.a.c.r.ApplicationRegistrator : Failed to register application as Application(name=admin-client, managementUrl=http://LAPTOP-6UL0UB2U:9305/actuator, healthUrl=http://LAPTOP-6UL0UB2U:9305/actuator/health, serviceUrl=http://LAPTOP-6UL0UB2U:9305/) at spring-boot-admin ([http://localhost:9301/instances]): I/O error on POST request for "http://localhost:9301/instances": Connect to localhost:9301 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused: connect; nested exception is org.apache.http.conn.HttpHostConnectException: Connect to localhost:9301 [localhost/127.0.0.1, localhost/0:0:0:0:0:0:0:1] failed: Connection refused: connect. Further attempts are logged on DEBUG level
2019-12-23 11:57:05.057 INFO 16380 --- [registrationTask1] d.c.b.a.c.r.ApplicationRegistrator : Application registered itself as 82091ead3036
2019-12-23 11:57:05.107 INFO 16380 --- [http-nio-9305-exec-1] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring DispatcherServlet 'dispatcherServlet'
2019-12-23 11:57:05.107 INFO 16380 --- [http-nio-9305-exec-1] o.s.web.servlet.DispatcherServlet : Initializing Servlet 'dispatcherServlet'
2019-12-23 11:57:05.111 INFO 16380 --- [http-nio-9305-exec-1] o.s.web.servlet.DispatcherServlet : Completed initialization in 4 ms
2019-12-23 11:57:24.316 INFO 16380 --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient : Disable delta property : false
2019-12-23 11:57:24.316 INFO 16380 --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient : Single vip registry refresh property : null
2019-12-23 11:57:24.316 INFO 16380 --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient : Force full registry fetch : false
2019-12-23 11:57:24.316 INFO 16380 --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient : Application is null : false
2019-12-23 11:57:24.317 INFO 16380 --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient : Registered Applications size is zero : true
2019-12-23 11:57:24.317 INFO 16380 --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient : Application version is -1: false
2019-12-23 11:57:24.317 INFO 16380 --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient : Getting all instance registry info from the eureka server
2019-12-23 11:57:24.342 INFO 16380 --- [DiscoveryClient-CacheRefreshExecutor-0] com.netflix.discovery.DiscoveryClient : The response status is 200
2019-12-23 12:01:54.105 INFO 16380 --- [AsyncResolver-bootstrap-executor-0] c.n.d.s.r.aws.ConfigClusterResolver : Resolving eureka endpoints via configuration
2019-12-23 12:06:54.107 INFO 16380 --- [AsyncResolver-bootstrap-executor-0] c.n.d.s.r.aws.ConfigClusterResolver : Resolving eureka endpoints via configuration
2019-12-23 12:11:54.108 INFO 16380 --- [AsyncResolver-bootstrap-executor-0] c.n.d.s.r.aws.ConfigClusterResolver : Resolving eureka endpoints via configuration
2019-12-23 12:16:54.109 INFO 16380 --- [AsyncResolver-bootstrap-executor-0] c.n.d.s.r.aws.ConfigClusterResolver : Resolving eureka endpoints via configuration
2019-12-23 12:21:54.112 INFO 16380 --- [AsyncResolver-bootstrap-executor-0] c.n.d.s.r.aws.ConfigClusterResolver : Resolving eureka endpoints via configuration
2019-12-23 12:26:54.113 INFO 16380 --- [AsyncResolver-bootstrap-executor-0] c.n.d.s.r.aws.ConfigClusterResolver : Resolving eureka endpoints via configuration
2019-12-23 12:31:54.115 INFO 16380 --- [AsyncResolver-bootstrap-executor-0] c.n.d.s.r.aws.ConfigClusterResolver : Resolving eureka endpoints via configuration
2019-12-23 12:36:54.117 INFO 16380 --- [AsyncResolver-bootstrap-executor-0] c.n.d.s.r.aws.ConfigClusterResolver : Resolving eureka endpoints via configuration
2019-12-23 12:41:54.119 INFO 16380 --- [AsyncResolver-bootstrap-executor-0] c.n.d.s.r.aws.ConfigClusterResolver : Resolving eureka endpoints via configuration
2019-12-23 12:46:54.121 INFO 16380 --- [AsyncResolver-bootstrap-executor-0] c.n.d.s.r.aws.ConfigClusterResolver : Resolving eureka endpoints via configuration
2019-12-23 12:51:54.122 INFO 16380 --- [AsyncResolver-bootstrap-executor-0] c.n.d.s.r.aws.ConfigClusterResolver : Resolving eureka endpoints via configuration
2019-12-23 12:56:54.123 INFO 16380 --- [AsyncResolver-bootstrap-executor-0] c.n.d.s.r.aws.ConfigClusterResolver : Resolving eureka endpoints via configuration
2019-12-23 13:01:54.124 INFO 16380 --- [AsyncResolver-bootstrap-executor-0] c.n.d.s.r.aws.ConfigClusterResolver : Resolving eureka endpoints via configuration
2019-12-23 13:06:54.126 INFO 16380 --- [AsyncResolver-bootstrap-executor-0] c.n.d.s.r.aws.ConfigClusterResolver : Resolving eureka endpoints via configuration
2019-12-23 13:11:54.127 INFO 16380 --- [AsyncResolver-bootstrap-executor-0] c.n.d.s.r.aws.ConfigClusterResolver : Resolving eureka endpoints via configuration
2019-12-23 13:16:54.129 INFO 16380 --- [AsyncResolver-bootstrap-executor-0] c.n.d.s.r.aws.ConfigClusterResolver : Resolving eureka endpoints via configuration
2019-12-23 13:21:54.130 INFO 16380 --- [AsyncResolver-bootstrap-executor-0] c.n.d.s.r.aws.ConfigClusterResolver : Resolving eureka endpoints via configuration
2019-12-23 13:26:54.131 INFO 16380 --- [AsyncResolver-bootstrap-executor-0] c.n.d.s.r.aws.ConfigClusterResolver : Resolving eureka endpoints via configuration
2019-12-23 13:31:54.132 INFO 16380 --- [AsyncResolver-bootstrap-executor-0] c.n.d.s.r.aws.ConfigClusterResolver : Resolving eureka endpoints via configuration
2019-12-23 13:36:54.134 INFO 16380 --- [AsyncResolver-bootstrap-executor-0] c.n.d.s.r.aws.ConfigClusterResolver : Resolving eureka endpoints via configuration
2019-12-23 13:41:54.136 INFO 16380 --- [AsyncResolver-bootstrap-executor-0] c.n.d.s.r.aws.ConfigClusterResolver : Resolving eureka endpoints via configuration
2019-12-23 14:01:36.882 INFO 1988 --- [main] c.j.springcloud.AdminClientApplication : The following profiles are active: eureka
2019-12-23 14:01:37.313 WARN 1988 --- [main] o.s.boot.actuate.endpoint.EndpointId : Endpoint ID 'service-registry' contains invalid characters, please migrate to a valid format.
2019-12-23 14:01:37.395 INFO 1988 --- [main] o.s.cloud.context.scope.GenericScope : BeanFactory id=fcac3631-55d0-35d6-88fc-e3950e53b491
2019-12-23 14:01:37.645 INFO 1988 --- [main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 9305 (http)
2019-12-23 14:01:37.652 INFO 1988 --- [main] o.apache.catalina.core.StandardService : Starting service [Tomcat]
2019-12-23 14:01:37.652 INFO 1988 --- [main] org.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/9.0.29]
2019-12-23 14:01:37.755 INFO 1988 --- [main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext
2019-12-23 14:01:37.755 INFO 1988 --- [main] o.s.web.context.ContextLoader : Root WebApplicationContext: initialization completed in 858 ms
2019-12-23 14:01:37.812 WARN 1988 --- [main] c.n.c.sources.URLConfigurationSource : No URLs will be polled as dynamic configuration sources.
2019-12-23 14:01:37.812 INFO 1988 --- [main] c.n.c.sources.URLConfigurationSource : To enable URLs as dynamic configuration sources, define System property archaius.configurationSource.additionalUrls or make config.properties available on classpath.
2019-12-23 14:01:37.816 INFO 1988 --- [main] c.netflix.config.DynamicPropertyFactory : DynamicPropertyFactory is initialized with configuration sources: com.netflix.config.ConcurrentCompositeConfiguration@782bf610
2019-12-23 14:01:38.260 INFO 1988 --- [main] o.s.b.a.e.web.ServletEndpointRegistrar : Registered '/actuator/jolokia' to jolokia-actuator-endpoint
2019-12-23 14:01:38.286 WARN 1988 --- [main] c.n.c.sources.URLConfigurationSource : No URLs will be polled as dynamic configuration sources.
2019-12-23 14:01:38.286 INFO 1988 --- [main] c.n.c.sources.URLConfigurationSource : To enable URLs as dynamic configuration sources, define System property archaius.configurationSource.additionalUrls or make config.properties available on classpath.
2019-12-23 14:01:38.388 INFO 1988 --- [main] o.s.s.concurrent.ThreadPoolTaskExecutor : Initializing ExecutorService 'applicationTaskExecutor'
2019-12-23 14:01:38.943 INFO 1988 --- [main] o.s.s.c.ThreadPoolTaskScheduler : Initializing ExecutorService
2019-12-23 14:01:39.424 WARN 1988 --- [main] ockingLoadBalancerClientRibbonWarnLogger : You already have RibbonLoadBalancerClient on your classpath. It will be used by default. As Spring Cloud Ribbon is in maintenance mode. We recommend switching to BlockingLoadBalancerClient instead. In order to use it, set the value of `spring.cloud.loadbalancer.ribbon.enabled` to `false` or remove spring-cloud-starter-netflix-ribbon from your project.
2019-12-23 14:01:39.448 INFO 1988 --- [main] o.s.b.a.e.web.EndpointLinksResolver : Exposing 19 endpoint(s) beneath base path '/actuator'
2019-12-23 14:01:39.476 INFO 1988 --- [main] o.s.c.n.eureka.InstanceInfoFactory : Setting initial instance status as: STARTING
2019-12-23 14:01:39.502 INFO 1988 --- [main] com.netflix.discovery.DiscoveryClient : Initializing Eureka in region us-east-1
2019-12-23 14:01:39.541 INFO 1988 --- [main] c.n.d.provider.DiscoveryJerseyProvider : Using JSON encoding codec LegacyJacksonJson
2019-12-23 14:01:39.541 INFO 1988 --- [main] c.n.d.provider.DiscoveryJerseyProvider : Using JSON decoding codec LegacyJacksonJson
2019-12-23 14:01:39.624 INFO 1988 --- [main] c.n.d.provider.DiscoveryJerseyProvider : Using XML encoding codec XStreamXml
2019-12-23 14:01:39.624 INFO 1988 --- [main] c.n.d.provider.DiscoveryJerseyProvider : Using XML decoding codec XStreamXml
2019-12-23 14:01:39.754 INFO 1988 --- [main] c.n.d.s.r.aws.ConfigClusterResolver : Resolving eureka endpoints via configuration
2019-12-23 14:01:39.915 INFO 1988 --- [main] com.netflix.discovery.DiscoveryClient : Disable delta property : false
2019-12-23 14:01:39.916 INFO 1988 --- [main] com.netflix.discovery.DiscoveryClient : Single vip registry refresh property : null
2019-12-23 14:01:39.916 INFO 1988 --- [main] com.netflix.discovery.DiscoveryClient : Force full registry fetch : false
2019-12-23 14:01:39.916 INFO 1988 --- [main] com.netflix.discovery.DiscoveryClient : Application is null : false
2019-12-23 14:01:39.916 INFO 1988 --- [main] com.netflix.discovery.DiscoveryClient : Registered Applications size is zero : true
2019-12-23 14:01:39.916 INFO 1988 --- [main] com.netflix.discovery.DiscoveryClient : Application version is -1: true
2019-12-23 14:01:39.916 INFO 1988 --- [main] com.netflix.discovery.DiscoveryClient : Getting all instance registry info from the eureka server
2019-12-23 14:01:40.024 INFO 1988 --- [main] com.netflix.discovery.DiscoveryClient : The response status is 200
2019-12-23 14:01:40.026 INFO 1988 --- [main] com.netflix.discovery.DiscoveryClient : Starting heartbeat executor: renew interval is: 30
2019-12-23 14:01:40.028 INFO 1988 --- [main] c.n.discovery.InstanceInfoReplicator : InstanceInfoReplicator onDemand update allowed rate per min is 4
2019-12-23 14:01:40.032 INFO 1988 --- [main] com.netflix.discovery.DiscoveryClient : Discovery Client initialized at timestamp 1577080900031 with initial instances count: 1
2019-12-23 14:01:40.033 INFO 1988 --- [main] o.s.c.n.e.s.EurekaServiceRegistry : Registering application ADMIN-CLIENT with eureka with status UP
2019-12-23 14:01:40.033 INFO 1988 --- [main] com.netflix.discovery.DiscoveryClient : Saw local status change event StatusChangeEvent [timestamp=1577080900033, current=UP, previous=STARTING]
2019-12-23 14:01:40.035 INFO 1988 --- [DiscoveryClient-InstanceInfoReplicator-0] com.netflix.discovery.DiscoveryClient : DiscoveryClient_ADMIN-CLIENT/LAPTOP-6UL0UB2U:admin-client:9305: registering service...
2019-12-23 14:01:40.068 INFO 1988 --- [DiscoveryClient-InstanceInfoReplicator-0] com.netflix.discovery.DiscoveryClient : DiscoveryClient_ADMIN-CLIENT/LAPTOP-6UL0UB2U:admin-client:9305 - registration status: 204
2019-12-23 14:01:40.072 INFO 1988 --- [main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 9305 (http) with context path ''
2019-12-23 14:01:40.072 INFO 1988 --- [main] .s.c.n.e.s.EurekaAutoServiceRegistration : Updating port to 9305
2019-12-23 14:01:40.305 INFO 1988 --- [main] c.j.springcloud.AdminClientApplication : Started AdminClientApplication in 4.657 seconds (JVM running for 5.363)
2019-12-23 14:01:40.476 WARN 1988 --- [registrationTask1] d.c.b.a.c.r.ApplicationRegistrator : Failed to register application as Application(name=admin-client, managementUrl=http://LAPTOP-6UL0UB2U:9305/actuator, healthUrl=http://LAPTOP-6UL0UB2U:9305/actuator/health, serviceUrl=http://LAPTOP-6UL0UB2U:9305/) at spring-boot-admin ([http://localhost:9301/instances]): 401 : [{"timestamp":"2019-12-23T06:01:40.446+0000","status":401,"error":"Unauthorized","message":"Unauthorized","path":"/instances"}]. Further attempts are logged on DEBUG level
2019-12-23 14:02:20.788 INFO 1988 --- [http-nio-9305-exec-1] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring DispatcherServlet 'dispatcherServlet'
2019-12-23 14:02:20.789 INFO 1988 --- [http-nio-9305-exec-1] o.s.web.servlet.DispatcherServlet : Initializing Servlet 'dispatcherServlet'
2019-12-23 14:02:20.793 INFO 1988 --- [http-nio-9305-exec-1] o.s.web.servlet.DispatcherServlet : Completed initialization in 4 ms
================================================
FILE: admin-security-server/.gitignore
================================================
HELP.md
target/
!.mvn/wrapper/maven-wrapper.jar
!**/src/main/**
!**/src/test/**
### STS ###
.apt_generated
.classpath
.factorypath
.project
.settings
.springBeans
.sts4-cache
### IntelliJ IDEA ###
.idea
*.iws
*.iml
*.ipr
### NetBeans ###
/nbproject/private/
/nbbuild/
/dist/
/nbdist/
/.nb-gradle/
build/
### VS Code ###
.vscode/
================================================
FILE: admin-security-server/.mvn/wrapper/MavenWrapperDownloader.java
================================================
/*
* Copyright 2012-2019 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import java.net.*;
import java.io.*;
import java.nio.channels.*;
import java.util.Properties;
public class MavenWrapperDownloader {
private static final String WRAPPER_VERSION = "0.5.5";
/**
* Default URL to download the maven-wrapper.jar from, if no 'downloadUrl' is provided.
*/
private static final String DEFAULT_DOWNLOAD_URL = "https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/"
+ WRAPPER_VERSION + "/maven-wrapper-" + WRAPPER_VERSION + ".jar";
/**
* Path to the maven-wrapper.properties file, which might contain a downloadUrl property to
* use instead of the default one.
*/
private static final String MAVEN_WRAPPER_PROPERTIES_PATH =
".mvn/wrapper/maven-wrapper.properties";
/**
* Path where the maven-wrapper.jar will be saved to.
*/
private static final String MAVEN_WRAPPER_JAR_PATH =
".mvn/wrapper/maven-wrapper.jar";
/**
* Name of the property which should be used to override the default download url for the wrapper.
*/
private static final String PROPERTY_NAME_WRAPPER_URL = "wrapperUrl";
public static void main(String args[]) {
System.out.println("- Downloader started");
File baseDirectory = new File(args[0]);
System.out.println("- Using base directory: " + baseDirectory.getAbsolutePath());
// If the maven-wrapper.properties exists, read it and check if it contains a custom
// wrapperUrl parameter.
File mavenWrapperPropertyFile = new File(baseDirectory, MAVEN_WRAPPER_PROPERTIES_PATH);
String url = DEFAULT_DOWNLOAD_URL;
if (mavenWrapperPropertyFile.exists()) {
FileInputStream mavenWrapperPropertyFileInputStream = null;
try {
mavenWrapperPropertyFileInputStream = new FileInputStream(mavenWrapperPropertyFile);
Properties mavenWrapperProperties = new Properties();
mavenWrapperProperties.load(mavenWrapperPropertyFileInputStream);
url = mavenWrapperProperties.getProperty(PROPERTY_NAME_WRAPPER_URL, url);
} catch (IOException e) {
System.out.println("- ERROR loading '" + MAVEN_WRAPPER_PROPERTIES_PATH + "'");
} finally {
try {
if (mavenWrapperPropertyFileInputStream != null) {
mavenWrapperPropertyFileInputStream.close();
}
} catch (IOException e) {
// Ignore ...
}
}
}
System.out.println("- Downloading from: " + url);
File outputFile = new File(baseDirectory.getAbsolutePath(), MAVEN_WRAPPER_JAR_PATH);
if (!outputFile.getParentFile().exists()) {
if (!outputFile.getParentFile().mkdirs()) {
System.out.println(
"- ERROR creating output directory '" + outputFile.getParentFile().getAbsolutePath() + "'");
}
}
System.out.println("- Downloading to: " + outputFile.getAbsolutePath());
try {
downloadFileFromURL(url, outputFile);
System.out.println("Done");
System.exit(0);
} catch (Throwable e) {
System.out.println("- Error downloading");
e.printStackTrace();
System.exit(1);
}
}
private static void downloadFileFromURL(String urlString, File destination) throws Exception {
if (System.getenv("MVNW_USERNAME") != null && System.getenv("MVNW_PASSWORD") != null) {
String username = System.getenv("MVNW_USERNAME");
char[] password = System.getenv("MVNW_PASSWORD").toCharArray();
Authenticator.setDefault(new Authenticator() {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(username, password);
}
});
}
URL website = new URL(urlString);
ReadableByteChannel rbc;
rbc = Channels.newChannel(website.openStream());
FileOutputStream fos = new FileOutputStream(destination);
fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE);
fos.close();
rbc.close();
}
}
================================================
FILE: admin-security-server/.mvn/wrapper/maven-wrapper.properties
================================================
distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.2/apache-maven-3.6.2-bin.zip
wrapperUrl=https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.5/maven-wrapper-0.5.5.jar
================================================
FILE: admin-security-server/mvnw
================================================
#!/bin/sh
# ----------------------------------------------------------------------------
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
# ----------------------------------------------------------------------------
# ----------------------------------------------------------------------------
# Maven2 Start Up Batch script
#
# Required ENV vars:
# ------------------
# JAVA_HOME - location of a JDK home dir
#
# Optional ENV vars
# -----------------
# M2_HOME - location of maven2's installed home dir
# MAVEN_OPTS - parameters passed to the Java VM when running Maven
# e.g. to debug Maven itself, use
# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
# MAVEN_SKIP_RC - flag to disable loading of mavenrc files
# ----------------------------------------------------------------------------
if [ -z "$MAVEN_SKIP_RC" ] ; then
if [ -f /etc/mavenrc ] ; then
. /etc/mavenrc
fi
if [ -f "$HOME/.mavenrc" ] ; then
. "$HOME/.mavenrc"
fi
fi
# OS specific support. $var _must_ be set to either true or false.
cygwin=false;
darwin=false;
mingw=false
case "`uname`" in
CYGWIN*) cygwin=true ;;
MINGW*) mingw=true;;
Darwin*) darwin=true
# Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home
# See https://developer.apple.com/library/mac/qa/qa1170/_index.html
if [ -z "$JAVA_HOME" ]; then
if [ -x "/usr/libexec/java_home" ]; then
export JAVA_HOME="`/usr/libexec/java_home`"
else
export JAVA_HOME="/Library/Java/Home"
fi
fi
;;
esac
if [ -z "$JAVA_HOME" ] ; then
if [ -r /etc/gentoo-release ] ; then
JAVA_HOME=`java-config --jre-home`
fi
fi
if [ -z "$M2_HOME" ] ; then
## resolve links - $0 may be a link to maven's home
PRG="$0"
# need this for relative symlinks
while [ -h "$PRG" ] ; do
ls=`ls -ld "$PRG"`
link=`expr "$ls" : '.*-> \(.*\)$'`
if expr "$link" : '/.*' > /dev/null; then
PRG="$link"
else
PRG="`dirname "$PRG"`/$link"
fi
done
saveddir=`pwd`
M2_HOME=`dirname "$PRG"`/..
# make it fully qualified
M2_HOME=`cd "$M2_HOME" && pwd`
cd "$saveddir"
# echo Using m2 at $M2_HOME
fi
# For Cygwin, ensure paths are in UNIX format before anything is touched
if $cygwin ; then
[ -n "$M2_HOME" ] &&
M2_HOME=`cygpath --unix "$M2_HOME"`
[ -n "$JAVA_HOME" ] &&
JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
[ -n "$CLASSPATH" ] &&
CLASSPATH=`cygpath --path --unix "$CLASSPATH"`
fi
# For Mingw, ensure paths are in UNIX format before anything is touched
if $mingw ; then
[ -n "$M2_HOME" ] &&
M2_HOME="`(cd "$M2_HOME"; pwd)`"
[ -n "$JAVA_HOME" ] &&
JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`"
fi
if [ -z "$JAVA_HOME" ]; then
javaExecutable="`which javac`"
if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then
# readlink(1) is not available as standard on Solaris 10.
readLink=`which readlink`
if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then
if $darwin ; then
javaHome="`dirname \"$javaExecutable\"`"
javaExecutable="`cd \"$javaHome\" && pwd -P`/javac"
else
javaExecutable="`readlink -f \"$javaExecutable\"`"
fi
javaHome="`dirname \"$javaExecutable\"`"
javaHome=`expr "$javaHome" : '\(.*\)/bin'`
JAVA_HOME="$javaHome"
export JAVA_HOME
fi
fi
fi
if [ -z "$JAVACMD" ] ; then
if [ -n "$JAVA_HOME" ] ; then
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
# IBM's JDK on AIX uses strange locations for the executables
JAVACMD="$JAVA_HOME/jre/sh/java"
else
JAVACMD="$JAVA_HOME/bin/java"
fi
else
JAVACMD="`which java`"
fi
fi
if [ ! -x "$JAVACMD" ] ; then
echo "Error: JAVA_HOME is not defined correctly." >&2
echo " We cannot execute $JAVACMD" >&2
exit 1
fi
if [ -z "$JAVA_HOME" ] ; then
echo "Warning: JAVA_HOME environment variable is not set."
fi
CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher
# traverses directory structure from process work directory to filesystem root
# first directory with .mvn subdirectory is considered project base directory
find_maven_basedir() {
if [ -z "$1" ]
then
echo "Path not specified to find_maven_basedir"
return 1
fi
basedir="$1"
wdir="$1"
while [ "$wdir" != '/' ] ; do
if [ -d "$wdir"/.mvn ] ; then
basedir=$wdir
break
fi
# workaround for JBEAP-8937 (on Solaris 10/Sparc)
if [ -d "${wdir}" ]; then
wdir=`cd "$wdir/.."; pwd`
fi
# end of workaround
done
echo "${basedir}"
}
# concatenates all lines of a file
concat_lines() {
if [ -f "$1" ]; then
echo "$(tr -s '\n' ' ' < "$1")"
fi
}
BASE_DIR=`find_maven_basedir "$(pwd)"`
if [ -z "$BASE_DIR" ]; then
exit 1;
fi
##########################################################################################
# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
# This allows using the maven wrapper in projects that prohibit checking in binary data.
##########################################################################################
if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then
if [ "$MVNW_VERBOSE" = true ]; then
echo "Found .mvn/wrapper/maven-wrapper.jar"
fi
else
if [ "$MVNW_VERBOSE" = true ]; then
echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..."
fi
if [ -n "$MVNW_REPOURL" ]; then
jarUrl="$MVNW_REPOURL/io/takari/maven-wrapper/0.5.5/maven-wrapper-0.5.5.jar"
else
jarUrl="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.5/maven-wrapper-0.5.5.jar"
fi
while IFS="=" read key value; do
case "$key" in (wrapperUrl) jarUrl="$value"; break ;;
esac
done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties"
if [ "$MVNW_VERBOSE" = true ]; then
echo "Downloading from: $jarUrl"
fi
wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar"
if $cygwin; then
wrapperJarPath=`cygpath --path --windows "$wrapperJarPath"`
fi
if command -v wget > /dev/null; then
if [ "$MVNW_VERBOSE" = true ]; then
echo "Found wget ... using wget"
fi
if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then
wget "$jarUrl" -O "$wrapperJarPath"
else
wget --http-user=$MVNW_USERNAME --http-password=$MVNW_PASSWORD "$jarUrl" -O "$wrapperJarPath"
fi
elif command -v curl > /dev/null; then
if [ "$MVNW_VERBOSE" = true ]; then
echo "Found curl ... using curl"
fi
if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then
curl -o "$wrapperJarPath" "$jarUrl" -f
else
curl --user $MVNW_USERNAME:$MVNW_PASSWORD -o "$wrapperJarPath" "$jarUrl" -f
fi
else
if [ "$MVNW_VERBOSE" = true ]; then
echo "Falling back to using Java to download"
fi
javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java"
# For Cygwin, switch paths to Windows format before running javac
if $cygwin; then
javaClass=`cygpath --path --windows "$javaClass"`
fi
if [ -e "$javaClass" ]; then
if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
if [ "$MVNW_VERBOSE" = true ]; then
echo " - Compiling MavenWrapperDownloader.java ..."
fi
# Compiling the Java class
("$JAVA_HOME/bin/javac" "$javaClass")
fi
if [ -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
# Running the downloader
if [ "$MVNW_VERBOSE" = true ]; then
echo " - Running MavenWrapperDownloader.java ..."
fi
("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR")
fi
fi
fi
fi
##########################################################################################
# End of extension
##########################################################################################
export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"}
if [ "$MVNW_VERBOSE" = true ]; then
echo $MAVEN_PROJECTBASEDIR
fi
MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS"
# For Cygwin, switch paths to Windows format before running java
if $cygwin; then
[ -n "$M2_HOME" ] &&
M2_HOME=`cygpath --path --windows "$M2_HOME"`
[ -n "$JAVA_HOME" ] &&
JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"`
[ -n "$CLASSPATH" ] &&
CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
[ -n "$MAVEN_PROJECTBASEDIR" ] &&
MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"`
fi
# Provide a "standardized" way to retrieve the CLI args that will
# work with both Windows and non-Windows executions.
MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $@"
export MAVEN_CMD_LINE_ARGS
WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
exec "$JAVACMD" \
$MAVEN_OPTS \
-classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \
"-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \
${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@"
================================================
FILE: admin-security-server/mvnw.cmd
================================================
@REM ----------------------------------------------------------------------------
@REM Licensed to the Apache Software Foundation (ASF) under one
@REM or more contributor license agreements. See the NOTICE file
@REM distributed with this work for additional information
@REM regarding copyright ownership. The ASF licenses this file
@REM to you under the Apache License, Version 2.0 (the
@REM "License"); you may not use this file except in compliance
@REM with the License. You may obtain a copy of the License at
@REM
@REM https://www.apache.org/licenses/LICENSE-2.0
@REM
@REM Unless required by applicable law or agreed to in writing,
@REM software distributed under the License is distributed on an
@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@REM KIND, either express or implied. See the License for the
@REM specific language governing permissions and limitations
@REM under the License.
@REM ----------------------------------------------------------------------------
@REM ----------------------------------------------------------------------------
@REM Maven2 Start Up Batch script
@REM
@REM Required ENV vars:
@REM JAVA_HOME - location of a JDK home dir
@REM
@REM Optional ENV vars
@REM M2_HOME - location of maven2's installed home dir
@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands
@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending
@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven
@REM e.g. to debug Maven itself, use
@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files
@REM ----------------------------------------------------------------------------
@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on'
@echo off
@REM set title of command window
title %0
@REM enable echoing by setting MAVEN_BATCH_ECHO to 'on'
@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO%
@REM set %HOME% to equivalent of $HOME
if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%")
@REM Execute a user defined script before this one
if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre
@REM check for pre script, once with legacy .bat ending and once with .cmd ending
if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat"
if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd"
:skipRcPre
@setlocal
set ERROR_CODE=0
@REM To isolate internal variables from possible post scripts, we use another setlocal
@setlocal
@REM ==== START VALIDATION ====
if not "%JAVA_HOME%" == "" goto OkJHome
echo.
echo Error: JAVA_HOME not found in your environment. >&2
echo Please set the JAVA_HOME variable in your environment to match the >&2
echo location of your Java installation. >&2
echo.
goto error
:OkJHome
if exist "%JAVA_HOME%\bin\java.exe" goto init
echo.
echo Error: JAVA_HOME is set to an invalid directory. >&2
echo JAVA_HOME = "%JAVA_HOME%" >&2
echo Please set the JAVA_HOME variable in your environment to match the >&2
echo location of your Java installation. >&2
echo.
goto error
@REM ==== END VALIDATION ====
:init
@REM Find the project base dir, i.e. the directory that contains the folder ".mvn".
@REM Fallback to current working directory if not found.
set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR%
IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir
set EXEC_DIR=%CD%
set WDIR=%EXEC_DIR%
:findBaseDir
IF EXIST "%WDIR%"\.mvn goto baseDirFound
cd ..
IF "%WDIR%"=="%CD%" goto baseDirNotFound
set WDIR=%CD%
goto findBaseDir
:baseDirFound
set MAVEN_PROJECTBASEDIR=%WDIR%
cd "%EXEC_DIR%"
goto endDetectBaseDir
:baseDirNotFound
set MAVEN_PROJECTBASEDIR=%EXEC_DIR%
cd "%EXEC_DIR%"
:endDetectBaseDir
IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig
@setlocal EnableExtensions EnableDelayedExpansion
for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a
@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS%
:endReadAdditionalConfig
SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe"
set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar"
set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.5/maven-wrapper-0.5.5.jar"
FOR /F "tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO (
IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B
)
@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
@REM This allows using the maven wrapper in projects that prohibit checking in binary data.
if exist %WRAPPER_JAR% (
if "%MVNW_VERBOSE%" == "true" (
echo Found %WRAPPER_JAR%
)
) else (
if not "%MVNW_REPOURL%" == "" (
SET DOWNLOAD_URL="%MVNW_REPOURL%/io/takari/maven-wrapper/0.5.5/maven-wrapper-0.5.5.jar"
)
if "%MVNW_VERBOSE%" == "true" (
echo Couldn't find %WRAPPER_JAR%, downloading it ...
echo Downloading from: %DOWNLOAD_URL%
)
powershell -Command "&{"^
"$webclient = new-object System.Net.WebClient;"^
"if (-not ([string]::IsNullOrEmpty('%MVNW_USERNAME%') -and [string]::IsNullOrEmpty('%MVNW_PASSWORD%'))) {"^
"$webclient.Credentials = new-object System.Net.NetworkCredential('%MVNW_USERNAME%', '%MVNW_PASSWORD%');"^
"}"^
"[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $webclient.DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')"^
"}"
if "%MVNW_VERBOSE%" == "true" (
echo Finished downloading %WRAPPER_JAR%
)
)
@REM End of extension
@REM Provide a "standardized" way to retrieve the CLI args that will
@REM work with both Windows and non-Windows executions.
set MAVEN_CMD_LINE_ARGS=%*
%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %*
if ERRORLEVEL 1 goto error
goto end
:error
set ERROR_CODE=1
:end
@endlocal & set ERROR_CODE=%ERROR_CODE%
if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost
@REM check for post script, once with legacy .bat ending and once with .cmd ending
if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat"
if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd"
:skipRcPost
@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on'
if "%MAVEN_BATCH_PAUSE%" == "on" pause
if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE%
exit /B %ERROR_CODE%
================================================
FILE: admin-security-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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.2.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.jourwon.springcloud</groupId>
<artifactId>admin-security-server</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>admin-security-server</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
<spring-boot-admin.version>2.2.0</spring-boot-admin.version>
<spring-cloud.version>Hoxton.RELEASE</spring-cloud.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-starter-server</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-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-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>
<dependency>
<groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-dependencies</artifactId>
<version>${spring-boot-admin.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>
================================================
FILE: admin-security-server/src/main/java/com/jourwon/springcloud/AdminSecurityServerApplication.java
================================================
package com.jourwon.springcloud;
import de.codecentric.boot.admin.server.config.EnableAdminServer;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
/**
* Description:
*
* @author JourWon
* @date 2019/12/23 14:00
*/
@EnableAdminServer
@EnableDiscoveryClient
@SpringBootApplication
public class AdminSecurityServerApplication {
public static void main(String[] args) {
SpringApplication.run(AdminSecurityServerApplication.class, args);
}
}
================================================
FILE: admin-security-server/src/main/java/com/jourwon/springcloud/config/SecuritySecureConfig.java
================================================
package com.jourwon.springcloud.config;
import de.codecentric.boot.admin.server.config.AdminServerProperties;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
import org.springframework.security.web.authentication.SavedRequestAwareAuthenticationSuccessHandler;
import org.springframework.security.web.csrf.CookieCsrfTokenRepository;
/**
* Description:对SpringSecurity进行配置,以便admin-client可以注册
*
* @author JourWon
* @date 2019/12/23 13:58
*/
@Configuration
public class SecuritySecureConfig extends WebSecurityConfigurerAdapter {
private final String adminContextPath;
public SecuritySecureConfig(AdminServerProperties adminServerProperties) {
this.adminContextPath = adminServerProperties.getContextPath();
}
@Override
protected void configure(HttpSecurity http) throws Exception {
SavedRequestAwareAuthenticationSuccessHandler successHandler = new SavedRequestAwareAuthenticationSuccessHandler();
successHandler.setTargetUrlParameter("redirectTo");
successHandler.setDefaultTargetUrl(adminContextPath + "/");
http.authorizeRequests()
//1.配置所有静态资源和登录页可以公开访问
.antMatchers(adminContextPath + "/assets/**").permitAll()
.antMatchers(adminContextPath + "/login").permitAll()
.anyRequest().authenticated()
.and()
//2.配置登录和登出路径
.formLogin().loginPage(adminContextPath + "/login").successHandler(successHandler).and()
.logout().logoutUrl(adminContextPath + "/logout").and()
//3.开启http basic支持,admin-client注册时需要使用
.httpBasic().and()
.csrf()
//4.开启基于cookie的csrf保护
.csrfTokenRepository(CookieCsrfTokenRepository.withHttpOnlyFalse())
//5.忽略这些路径的csrf保护以便admin-client注册
.ignoringAntMatchers(
adminContextPath + "/instances",
adminContextPath + "/actuator/**"
);
}
}
================================================
FILE: admin-security-server/src/main/resources/application.yml
================================================
server:
port: 9301
eureka:
client:
service-url:
defaultZone: http://localhost:8001/eureka/
spring:
application:
name: admin-security-server
security:
user:
# 配置登录用户名和密码
name: root
password: 123456
boot:
admin:
discovery:
# 不显示admin-security-server的监控信息
ignored-services: ${spring.application.name}
================================================
FILE: admin-security-server/src/test/java/com/jourwon/springcloud/AdminSecurityServerApplicationTests.java
================================================
package com.jourwon.springcloud;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
@SpringBootTest
class AdminSecurityServerApplicationTests {
@Test
void contextLoads() {
}
}
================================================
FILE: admin-server/.gitignore
================================================
HELP.md
target/
!.mvn/wrapper/maven-wrapper.jar
!**/src/main/**
!**/src/test/**
### STS ###
.apt_generated
.classpath
.factorypath
.project
.settings
.springBeans
.sts4-cache
### IntelliJ IDEA ###
.idea
*.iws
*.iml
*.ipr
### NetBeans ###
/nbproject/private/
/nbbuild/
/dist/
/nbdist/
/.nb-gradle/
build/
### VS Code ###
.vscode/
================================================
FILE: admin-server/.mvn/wrapper/MavenWrapperDownloader.java
================================================
/*
* Copyright 2012-2019 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import java.net.*;
import java.io.*;
import java.nio.channels.*;
import java.util.Properties;
public class MavenWrapperDownloader {
private static final String WRAPPER_VERSION = "0.5.5";
/**
* Default URL to download the maven-wrapper.jar from, if no 'downloadUrl' is provided.
*/
private static final String DEFAULT_DOWNLOAD_URL = "https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/"
+ WRAPPER_VERSION + "/maven-wrapper-" + WRAPPER_VERSION + ".jar";
/**
* Path to the maven-wrapper.properties file, which might contain a downloadUrl property to
* use instead of the default one.
*/
private static final String MAVEN_WRAPPER_PROPERTIES_PATH =
".mvn/wrapper/maven-wrapper.properties";
/**
* Path where the maven-wrapper.jar will be saved to.
*/
private static final String MAVEN_WRAPPER_JAR_PATH =
".mvn/wrapper/maven-wrapper.jar";
/**
* Name of the property which should be used to override the default download url for the wrapper.
*/
private static final String PROPERTY_NAME_WRAPPER_URL = "wrapperUrl";
public static void main(String args[]) {
System.out.println("- Downloader started");
File baseDirectory = new File(args[0]);
System.out.println("- Using base directory: " + baseDirectory.getAbsolutePath());
// If the maven-wrapper.properties exists, read it and check if it contains a custom
// wrapperUrl parameter.
File mavenWrapperPropertyFile = new File(baseDirectory, MAVEN_WRAPPER_PROPERTIES_PATH);
String url = DEFAULT_DOWNLOAD_URL;
if (mavenWrapperPropertyFile.exists()) {
FileInputStream mavenWrapperPropertyFileInputStream = null;
try {
mavenWrapperPropertyFileInputStream = new FileInputStream(mavenWrapperPropertyFile);
Properties mavenWrapperProperties = new Properties();
mavenWrapperProperties.load(mavenWrapperPropertyFileInputStream);
url = mavenWrapperProperties.getProperty(PROPERTY_NAME_WRAPPER_URL, url);
} catch (IOException e) {
System.out.println("- ERROR loading '" + MAVEN_WRAPPER_PROPERTIES_PATH + "'");
} finally {
try {
if (mavenWrapperPropertyFileInputStream != null) {
mavenWrapperPropertyFileInputStream.close();
}
} catch (IOException e) {
// Ignore ...
}
}
}
System.out.println("- Downloading from: " + url);
File outputFile = new File(baseDirectory.getAbsolutePath(), MAVEN_WRAPPER_JAR_PATH);
if (!outputFile.getParentFile().exists()) {
if (!outputFile.getParentFile().mkdirs()) {
System.out.println(
"- ERROR creating output directory '" + outputFile.getParentFile().getAbsolutePath() + "'");
}
}
System.out.println("- Downloading to: " + outputFile.getAbsolutePath());
try {
downloadFileFromURL(url, outputFile);
System.out.println("Done");
System.exit(0);
} catch (Throwable e) {
System.out.println("- Error downloading");
e.printStackTrace();
System.exit(1);
}
}
private static void downloadFileFromURL(String urlString, File destination) throws Exception {
if (System.getenv("MVNW_USERNAME") != null && System.getenv("MVNW_PASSWORD") != null) {
String username = System.getenv("MVNW_USERNAME");
char[] password = System.getenv("MVNW_PASSWORD").toCharArray();
Authenticator.setDefault(new Authenticator() {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(username, password);
}
});
}
URL website = new URL(urlString);
ReadableByteChannel rbc;
rbc = Channels.newChannel(website.openStream());
FileOutputStream fos = new FileOutputStream(destination);
fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE);
fos.close();
rbc.close();
}
}
================================================
FILE: admin-server/.mvn/wrapper/maven-wrapper.properties
================================================
distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.2/apache-maven-3.6.2-bin.zip
wrapperUrl=https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.5/maven-wrapper-0.5.5.jar
================================================
FILE: admin-server/mvnw
================================================
#!/bin/sh
# ----------------------------------------------------------------------------
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
# ----------------------------------------------------------------------------
# ----------------------------------------------------------------------------
# Maven2 Start Up Batch script
#
# Required ENV vars:
# ------------------
# JAVA_HOME - location of a JDK home dir
#
# Optional ENV vars
# -----------------
# M2_HOME - location of maven2's installed home dir
# MAVEN_OPTS - parameters passed to the Java VM when running Maven
# e.g. to debug Maven itself, use
# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
# MAVEN_SKIP_RC - flag to disable loading of mavenrc files
# ----------------------------------------------------------------------------
if [ -z "$MAVEN_SKIP_RC" ] ; then
if [ -f /etc/mavenrc ] ; then
. /etc/mavenrc
fi
if [ -f "$HOME/.mavenrc" ] ; then
. "$HOME/.mavenrc"
fi
fi
# OS specific support. $var _must_ be set to either true or false.
cygwin=false;
darwin=false;
mingw=false
case "`uname`" in
CYGWIN*) cygwin=true ;;
MINGW*) mingw=true;;
Darwin*) darwin=true
# Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home
# See https://developer.apple.com/library/mac/qa/qa1170/_index.html
if [ -z "$JAVA_HOME" ]; then
if [ -x "/usr/libexec/java_home" ]; then
export JAVA_HOME="`/usr/libexec/java_home`"
else
export JAVA_HOME="/Library/Java/Home"
fi
fi
;;
esac
if [ -z "$JAVA_HOME" ] ; then
if [ -r /etc/gentoo-release ] ; then
JAVA_HOME=`java-config --jre-home`
fi
fi
if [ -z "$M2_HOME" ] ; then
## resolve links - $0 may be a link to maven's home
PRG="$0"
# need this for relative symlinks
while [ -h "$PRG" ] ; do
ls=`ls -ld "$PRG"`
link=`expr "$ls" : '.*-> \(.*\)$'`
if expr "$link" : '/.*' > /dev/null; then
PRG="$link"
else
PRG="`dirname "$PRG"`/$link"
fi
done
saveddir=`pwd`
M2_HOME=`dirname "$PRG"`/..
# make it fully qualified
M2_HOME=`cd "$M2_HOME" && pwd`
cd "$saveddir"
# echo Using m2 at $M2_HOME
fi
# For Cygwin, ensure paths are in UNIX format before anything is touched
if $cygwin ; then
[ -n "$M2_HOME" ] &&
M2_HOME=`cygpath --unix "$M2_HOME"`
[ -n "$JAVA_HOME" ] &&
JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
[ -n "$CLASSPATH" ] &&
CLASSPATH=`cygpath --path --unix "$CLASSPATH"`
fi
# For Mingw, ensure paths are in UNIX format before anything is touched
if $mingw ; then
[ -n "$M2_HOME" ] &&
M2_HOME="`(cd "$M2_HOME"; pwd)`"
[ -n "$JAVA_HOME" ] &&
JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`"
fi
if [ -z "$JAVA_HOME" ]; then
javaExecutable="`which javac`"
if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then
# readlink(1) is not available as standard on Solaris 10.
readLink=`which readlink`
if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then
if $darwin ; then
javaHome="`dirname \"$javaExecutable\"`"
javaExecutable="`cd \"$javaHome\" && pwd -P`/javac"
else
javaExecutable="`readlink -f \"$javaExecutable\"`"
fi
javaHome="`dirname \"$javaExecutable\"`"
javaHome=`expr "$javaHome" : '\(.*\)/bin'`
JAVA_HOME="$javaHome"
export JAVA_HOME
fi
fi
fi
if [ -z "$JAVACMD" ] ; then
if [ -n "$JAVA_HOME" ] ; then
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
# IBM's JDK on AIX uses strange locations for the executables
JAVACMD="$JAVA_HOME/jre/sh/java"
else
JAVACMD="$JAVA_HOME/bin/java"
fi
else
JAVACMD="`which java`"
fi
fi
if [ ! -x "$JAVACMD" ] ; then
echo "Error: JAVA_HOME is not defined correctly." >&2
echo " We cannot execute $JAVACMD" >&2
exit 1
fi
if [ -z "$JAVA_HOME" ] ; then
echo "Warning: JAVA_HOME environment variable is not set."
fi
CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher
# traverses directory structure from process work directory to filesystem root
# first directory with .mvn subdirectory is considered project base directory
find_maven_basedir() {
if [ -z "$1" ]
then
echo "Path not specified to find_maven_basedir"
return 1
fi
basedir="$1"
wdir="$1"
while [ "$wdir" != '/' ] ; do
if [ -d "$wdir"/.mvn ] ; then
basedir=$wdir
break
fi
# workaround for JBEAP-8937 (on Solaris 10/Sparc)
if [ -d "${wdir}" ]; then
wdir=`cd "$wdir/.."; pwd`
fi
# end of workaround
done
echo "${basedir}"
}
# concatenates all lines of a file
concat_lines() {
if [ -f "$1" ]; then
echo "$(tr -s '\n' ' ' < "$1")"
fi
}
BASE_DIR=`find_maven_basedir "$(pwd)"`
if [ -z "$BASE_DIR" ]; then
exit 1;
fi
##########################################################################################
# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
# This allows using the maven wrapper in projects that prohibit checking in binary data.
##########################################################################################
if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then
if [ "$MVNW_VERBOSE" = true ]; then
echo "Found .mvn/wrapper/maven-wrapper.jar"
fi
else
if [ "$MVNW_VERBOSE" = true ]; then
echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..."
fi
if [ -n "$MVNW_REPOURL" ]; then
jarUrl="$MVNW_REPOURL/io/takari/maven-wrapper/0.5.5/maven-wrapper-0.5.5.jar"
else
jarUrl="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.5/maven-wrapper-0.5.5.jar"
fi
while IFS="=" read key value; do
case "$key" in (wrapperUrl) jarUrl="$value"; break ;;
esac
done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties"
if [ "$MVNW_VERBOSE" = true ]; then
echo "Downloading from: $jarUrl"
fi
wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar"
if $cygwin; then
wrapperJarPath=`cygpath --path --windows "$wrapperJarPath"`
fi
if command -v wget > /dev/null; then
if [ "$MVNW_VERBOSE" = true ]; then
echo "Found wget ... using wget"
fi
if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then
wget "$jarUrl" -O "$wrapperJarPath"
else
wget --http-user=$MVNW_USERNAME --http-password=$MVNW_PASSWORD "$jarUrl" -O "$wrapperJarPath"
fi
elif command -v curl > /dev/null; then
if [ "$MVNW_VERBOSE" = true ]; then
echo "Found curl ... using curl"
fi
if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then
curl -o "$wrapperJarPath" "$jarUrl" -f
else
curl --user $MVNW_USERNAME:$MVNW_PASSWORD -o "$wrapperJarPath" "$jarUrl" -f
fi
else
if [ "$MVNW_VERBOSE" = true ]; then
echo "Falling back to using Java to download"
fi
javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java"
# For Cygwin, switch paths to Windows format before running javac
if $cygwin; then
javaClass=`cygpath --path --windows "$javaClass"`
fi
if [ -e "$javaClass" ]; then
if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
if [ "$MVNW_VERBOSE" = true ]; then
echo " - Compiling MavenWrapperDownloader.java ..."
fi
# Compiling the Java class
("$JAVA_HOME/bin/javac" "$javaClass")
fi
if [ -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
# Running the downloader
if [ "$MVNW_VERBOSE" = true ]; then
echo " - Running MavenWrapperDownloader.java ..."
fi
("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR")
fi
fi
fi
fi
##########################################################################################
# End of extension
##########################################################################################
export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"}
if [ "$MVNW_VERBOSE" = true ]; then
echo $MAVEN_PROJECTBASEDIR
fi
MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS"
# For Cygwin, switch paths to Windows format before running java
if $cygwin; then
[ -n "$M2_HOME" ] &&
M2_HOME=`cygpath --path --windows "$M2_HOME"`
[ -n "$JAVA_HOME" ] &&
JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"`
[ -n "$CLASSPATH" ] &&
CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
[ -n "$MAVEN_PROJECTBASEDIR" ] &&
MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"`
fi
# Provide a "standardized" way to retrieve the CLI args that will
# work with both Windows and non-Windows executions.
MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $@"
export MAVEN_CMD_LINE_ARGS
WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
exec "$JAVACMD" \
$MAVEN_OPTS \
-classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \
"-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \
${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@"
================================================
FILE: admin-server/mvnw.cmd
================================================
@REM ----------------------------------------------------------------------------
@REM Licensed to the Apache Software Foundation (ASF) under one
@REM or more contributor license agreements. See the NOTICE file
@REM distributed with this work for additional information
@REM regarding copyright ownership. The ASF licenses this file
@REM to you under the Apache License, Version 2.0 (the
@REM "License"); you may not use this file except in compliance
@REM with the License. You may obtain a copy of the License at
@REM
@REM https://www.apache.org/licenses/LICENSE-2.0
@REM
@REM Unless required by applicable law or agreed to in writing,
@REM software distributed under the License is distributed on an
@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@REM KIND, either express or implied. See the License for the
@REM specific language governing permissions and limitations
@REM under the License.
@REM ----------------------------------------------------------------------------
@REM ----------------------------------------------------------------------------
@REM Maven2 Start Up Batch script
@REM
@REM Required ENV vars:
@REM JAVA_HOME - location of a JDK home dir
@REM
@REM Optional ENV vars
@REM M2_HOME - location of maven2's installed home dir
@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands
@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending
@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven
@REM e.g. to debug Maven itself, use
@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files
@REM ----------------------------------------------------------------------------
@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on'
@echo off
@REM set title of command window
title %0
@REM enable echoing by setting MAVEN_BATCH_ECHO to 'on'
@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO%
@REM set %HOME% to equivalent of $HOME
if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%")
@REM Execute a user defined script before this one
if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre
@REM check for pre script, once with legacy .bat ending and once with .cmd ending
if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat"
if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd"
:skipRcPre
@setlocal
set ERROR_CODE=0
@REM To isolate internal variables from possible post scripts, we use another setlocal
@setlocal
@REM ==== START VALIDATION ====
if not "%JAVA_HOME%" == "" goto OkJHome
echo.
echo Error: JAVA_HOME not found in your environment. >&2
echo Please set the JAVA_HOME variable in your environment to match the >&2
echo location of your Java installation. >&2
echo.
goto error
:OkJHome
if exist "%JAVA_HOME%\bin\java.exe" goto init
echo.
echo Error: JAVA_HOME is set to an invalid directory. >&2
echo JAVA_HOME = "%JAVA_HOME%" >&2
echo Please set the JAVA_HOME variable in your environment to match the >&2
echo location of your Java installation. >&2
echo.
goto error
@REM ==== END VALIDATION ====
:init
@REM Find the project base dir, i.e. the directory that contains the folder ".mvn".
@REM Fallback to current working directory if not found.
set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR%
IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir
set EXEC_DIR=%CD%
set WDIR=%EXEC_DIR%
:findBaseDir
IF EXIST "%WDIR%"\.mvn goto baseDirFound
cd ..
IF "%WDIR%"=="%CD%" goto baseDirNotFound
set WDIR=%CD%
goto findBaseDir
:baseDirFound
set MAVEN_PROJECTBASEDIR=%WDIR%
cd "%EXEC_DIR%"
goto endDetectBaseDir
:baseDirNotFound
set MAVEN_PROJECTBASEDIR=%EXEC_DIR%
cd "%EXEC_DIR%"
:endDetectBaseDir
IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig
@setlocal EnableExtensions EnableDelayedExpansion
for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a
@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS%
:endReadAdditionalConfig
SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe"
set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar"
set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.5/maven-wrapper-0.5.5.jar"
FOR /F "tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO (
IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B
)
@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
@REM This allows using the maven wrapper in projects that prohibit checking in binary data.
if exist %WRAPPER_JAR% (
if "%MVNW_VERBOSE%" == "true" (
echo Found %WRAPPER_JAR%
)
) else (
if not "%MVNW_REPOURL%" == "" (
SET DOWNLOAD_URL="%MVNW_REPOURL%/io/takari/maven-wrapper/0.5.5/maven-wrapper-0.5.5.jar"
)
if "%MVNW_VERBOSE%" == "true" (
echo Couldn't find %WRAPPER_JAR%, downloading it ...
echo Downloading from: %DOWNLOAD_URL%
)
powershell -Command "&{"^
"$webclient = new-object System.Net.WebClient;"^
"if (-not ([string]::IsNullOrEmpty('%MVNW_USERNAME%') -and [string]::IsNullOrEmpty('%MVNW_PASSWORD%'))) {"^
"$webclient.Credentials = new-object System.Net.NetworkCredential('%MVNW_USERNAME%', '%MVNW_PASSWORD%');"^
"}"^
"[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $webclient.DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')"^
"}"
if "%MVNW_VERBOSE%" == "true" (
echo Finished downloading %WRAPPER_JAR%
)
)
@REM End of extension
@REM Provide a "standardized" way to retrieve the CLI args that will
@REM work with both Windows and non-Windows executions.
set MAVEN_CMD_LINE_ARGS=%*
%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %*
if ERRORLEVEL 1 goto error
goto end
:error
set ERROR_CODE=1
:end
@endlocal & set ERROR_CODE=%ERROR_CODE%
if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost
@REM check for post script, once with legacy .bat ending and once with .cmd ending
if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat"
if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd"
:skipRcPost
@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on'
if "%MAVEN_BATCH_PAUSE%" == "on" pause
if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE%
exit /B %ERROR_CODE%
================================================
FILE: admin-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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.2.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.jourwon.springcloud</groupId>
<artifactId>admin-server</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>admin-server</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
<spring-boot-admin.version>2.2.0</spring-boot-admin.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-starter-server</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
<version>2.2.1.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-dependencies</artifactId>
<version>${spring-boot-admin.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>
================================================
FILE: admin-server/src/main/java/com/jourwon/springcloud/AdminServerApplication.java
================================================
package com.jourwon.springcloud;
import de.codecentric.boot.admin.server.config.EnableAdminServer;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
/**
* Description:
*
* @author JourWon
* @date 2019/12/23 10:52
*/
@EnableDiscoveryClient
@EnableAdminServer
@SpringBootApplication
public class AdminServerApplication {
public static void main(String[] args) {
SpringApplication.run(AdminServerApplication.class, args);
}
}
================================================
FILE: admin-server/src/main/resources/application-eureka.yml
================================================
server:
port: 9301
spring:
application:
name: admin-server
eureka:
client:
service-url:
defaultZone: http://localhost:8001/eureka/
================================================
FILE: admin-server/src/main/resources/application.yml
================================================
server:
port: 9301
spring:
application:
name: admin-server
================================================
FILE: admin-server/src/test/java/com/jourwon/springcloud/AdminServerApplicationTests.java
================================================
package com.jourwon.springcloud;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
@SpringBootTest
class AdminServerApplicationTests {
@Test
void contextLoads() {
}
}
================================================
FILE: api-gateway/.gitignore
================================================
HELP.md
target/
!.mvn/wrapper/maven-wrapper.jar
!**/src/main/**
!**/src/test/**
### STS ###
.apt_generated
.classpath
.factorypath
.project
.settings
.springBeans
.sts4-cache
### IntelliJ IDEA ###
.idea
*.iws
*.iml
*.ipr
### NetBeans ###
/nbproject/private/
/nbbuild/
/dist/
/nbdist/
/.nb-gradle/
build/
### VS Code ###
.vscode/
================================================
FILE: api-gateway/.mvn/wrapper/MavenWrapperDownloader.java
================================================
/*
* Copyright 2012-2019 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import java.net.*;
import java.io.*;
import java.nio.channels.*;
import java.util.Properties;
public class MavenWrapperDownloader {
private static final String WRAPPER_VERSION = "0.5.5";
/**
* Default URL to download the maven-wrapper.jar from, if no 'downloadUrl' is provided.
*/
private static final String DEFAULT_DOWNLOAD_URL = "https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/"
+ WRAPPER_VERSION + "/maven-wrapper-" + WRAPPER_VERSION + ".jar";
/**
* Path to the maven-wrapper.properties file, which might contain a downloadUrl property to
* use instead of the default one.
*/
private static final String MAVEN_WRAPPER_PROPERTIES_PATH =
".mvn/wrapper/maven-wrapper.properties";
/**
* Path where the maven-wrapper.jar will be saved to.
*/
private static final String MAVEN_WRAPPER_JAR_PATH =
".mvn/wrapper/maven-wrapper.jar";
/**
* Name of the property which should be used to override the default download url for the wrapper.
*/
private static final String PROPERTY_NAME_WRAPPER_URL = "wrapperUrl";
public static void main(String args[]) {
System.out.println("- Downloader started");
File baseDirectory = new File(args[0]);
System.out.println("- Using base directory: " + baseDirectory.getAbsolutePath());
// If the maven-wrapper.properties exists, read it and check if it contains a custom
// wrapperUrl parameter.
File mavenWrapperPropertyFile = new File(baseDirectory, MAVEN_WRAPPER_PROPERTIES_PATH);
String url = DEFAULT_DOWNLOAD_URL;
if (mavenWrapperPropertyFile.exists()) {
FileInputStream mavenWrapperPropertyFileInputStream = null;
try {
mavenWrapperPropertyFileInputStream = new FileInputStream(mavenWrapperPropertyFile);
Properties mavenWrapperProperties = new Properties();
mavenWrapperProperties.load(mavenWrapperPropertyFileInputStream);
url = mavenWrapperProperties.getProperty(PROPERTY_NAME_WRAPPER_URL, url);
} catch (IOException e) {
System.out.println("- ERROR loading '" + MAVEN_WRAPPER_PROPERTIES_PATH + "'");
} finally {
try {
if (mavenWrapperPropertyFileInputStream != null) {
mavenWrapperPropertyFileInputStream.close();
}
} catch (IOException e) {
// Ignore ...
}
}
}
System.out.println("- Downloading from: " + url);
File outputFile = new File(baseDirectory.getAbsolutePath(), MAVEN_WRAPPER_JAR_PATH);
if (!outputFile.getParentFile().exists()) {
if (!outputFile.getParentFile().mkdirs()) {
System.out.println(
"- ERROR creating output directory '" + outputFile.getParentFile().getAbsolutePath() + "'");
}
}
System.out.println("- Downloading to: " + outputFile.getAbsolutePath());
try {
downloadFileFromURL(url, outputFile);
System.out.println("Done");
System.exit(0);
} catch (Throwable e) {
System.out.println("- Error downloading");
e.printStackTrace();
System.exit(1);
}
}
private static void downloadFileFromURL(String urlString, File destination) throws Exception {
if (System.getenv("MVNW_USERNAME") != null && System.getenv("MVNW_PASSWORD") != null) {
String username = System.getenv("MVNW_USERNAME");
char[] password = System.getenv("MVNW_PASSWORD").toCharArray();
Authenticator.setDefault(new Authenticator() {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(username, password);
}
});
}
URL website = new URL(urlString);
ReadableByteChannel rbc;
rbc = Channels.newChannel(website.openStream());
FileOutputStream fos = new FileOutputStream(destination);
fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE);
fos.close();
rbc.close();
}
}
================================================
FILE: api-gateway/.mvn/wrapper/maven-wrapper.properties
================================================
distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.2/apache-maven-3.6.2-bin.zip
wrapperUrl=https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.5/maven-wrapper-0.5.5.jar
================================================
FILE: api-gateway/mvnw
================================================
#!/bin/sh
# ----------------------------------------------------------------------------
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
# ----------------------------------------------------------------------------
# ----------------------------------------------------------------------------
# Maven2 Start Up Batch script
#
# Required ENV vars:
# ------------------
# JAVA_HOME - location of a JDK home dir
#
# Optional ENV vars
# -----------------
# M2_HOME - location of maven2's installed home dir
# MAVEN_OPTS - parameters passed to the Java VM when running Maven
# e.g. to debug Maven itself, use
# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
# MAVEN_SKIP_RC - flag to disable loading of mavenrc files
# ----------------------------------------------------------------------------
if [ -z "$MAVEN_SKIP_RC" ] ; then
if [ -f /etc/mavenrc ] ; then
. /etc/mavenrc
fi
if [ -f "$HOME/.mavenrc" ] ; then
. "$HOME/.mavenrc"
fi
fi
# OS specific support. $var _must_ be set to either true or false.
cygwin=false;
darwin=false;
mingw=false
case "`uname`" in
CYGWIN*) cygwin=true ;;
MINGW*) mingw=true;;
Darwin*) darwin=true
# Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home
# See https://developer.apple.com/library/mac/qa/qa1170/_index.html
if [ -z "$JAVA_HOME" ]; then
if [ -x "/usr/libexec/java_home" ]; then
export JAVA_HOME="`/usr/libexec/java_home`"
else
export JAVA_HOME="/Library/Java/Home"
fi
fi
;;
esac
if [ -z "$JAVA_HOME" ] ; then
if [ -r /etc/gentoo-release ] ; then
JAVA_HOME=`java-config --jre-home`
fi
fi
if [ -z "$M2_HOME" ] ; then
## resolve links - $0 may be a link to maven's home
PRG="$0"
# need this for relative symlinks
while [ -h "$PRG" ] ; do
ls=`ls -ld "$PRG"`
link=`expr "$ls" : '.*-> \(.*\)$'`
if expr "$link" : '/.*' > /dev/null; then
PRG="$link"
else
PRG="`dirname "$PRG"`/$link"
fi
done
saveddir=`pwd`
M2_HOME=`dirname "$PRG"`/..
# make it fully qualified
M2_HOME=`cd "$M2_HOME" && pwd`
cd "$saveddir"
# echo Using m2 at $M2_HOME
fi
# For Cygwin, ensure paths are in UNIX format before anything is touched
if $cygwin ; then
[ -n "$M2_HOME" ] &&
M2_HOME=`cygpath --unix "$M2_HOME"`
[ -n "$JAVA_HOME" ] &&
JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
[ -n "$CLASSPATH" ] &&
CLASSPATH=`cygpath --path --unix "$CLASSPATH"`
fi
# For Mingw, ensure paths are in UNIX format before anything is touched
if $mingw ; then
[ -n "$M2_HOME" ] &&
M2_HOME="`(cd "$M2_HOME"; pwd)`"
[ -n "$JAVA_HOME" ] &&
JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`"
fi
if [ -z "$JAVA_HOME" ]; then
javaExecutable="`which javac`"
if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then
# readlink(1) is not available as standard on Solaris 10.
readLink=`which readlink`
if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then
if $darwin ; then
javaHome="`dirname \"$javaExecutable\"`"
javaExecutable="`cd \"$javaHome\" && pwd -P`/javac"
else
javaExecutable="`readlink -f \"$javaExecutable\"`"
fi
javaHome="`dirname \"$javaExecutable\"`"
javaHome=`expr "$javaHome" : '\(.*\)/bin'`
JAVA_HOME="$javaHome"
export JAVA_HOME
fi
fi
fi
if [ -z "$JAVACMD" ] ; then
if [ -n "$JAVA_HOME" ] ; then
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
# IBM's JDK on AIX uses strange locations for the executables
JAVACMD="$JAVA_HOME/jre/sh/java"
else
JAVACMD="$JAVA_HOME/bin/java"
fi
else
JAVACMD="`which java`"
fi
fi
if [ ! -x "$JAVACMD" ] ; then
echo "Error: JAVA_HOME is not defined correctly." >&2
echo " We cannot execute $JAVACMD" >&2
exit 1
fi
if [ -z "$JAVA_HOME" ] ; then
echo "Warning: JAVA_HOME environment variable is not set."
fi
CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher
# traverses directory structure from process work directory to filesystem root
# first directory with .mvn subdirectory is considered project base directory
find_maven_basedir() {
if [ -z "$1" ]
then
echo "Path not specified to find_maven_basedir"
return 1
fi
basedir="$1"
wdir="$1"
while [ "$wdir" != '/' ] ; do
if [ -d "$wdir"/.mvn ] ; then
basedir=$wdir
break
fi
# workaround for JBEAP-8937 (on Solaris 10/Sparc)
if [ -d "${wdir}" ]; then
wdir=`cd "$wdir/.."; pwd`
fi
# end of workaround
done
echo "${basedir}"
}
# concatenates all lines of a file
concat_lines() {
if [ -f "$1" ]; then
echo "$(tr -s '\n' ' ' < "$1")"
fi
}
BASE_DIR=`find_maven_basedir "$(pwd)"`
if [ -z "$BASE_DIR" ]; then
exit 1;
fi
##########################################################################################
# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
# This allows using the maven wrapper in projects that prohibit checking in binary data.
##########################################################################################
if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then
if [ "$MVNW_VERBOSE" = true ]; then
echo "Found .mvn/wrapper/maven-wrapper.jar"
fi
else
if [ "$MVNW_VERBOSE" = true ]; then
echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..."
fi
if [ -n "$MVNW_REPOURL" ]; then
jarUrl="$MVNW_REPOURL/io/takari/maven-wrapper/0.5.5/maven-wrapper-0.5.5.jar"
else
jarUrl="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.5/maven-wrapper-0.5.5.jar"
fi
while IFS="=" read key value; do
case "$key" in (wrapperUrl) jarUrl="$value"; break ;;
esac
done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties"
if [ "$MVNW_VERBOSE" = true ]; then
echo "Downloading from: $jarUrl"
fi
wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar"
if $cygwin; then
wrapperJarPath=`cygpath --path --windows "$wrapperJarPath"`
fi
if command -v wget > /dev/null; then
if [ "$MVNW_VERBOSE" = true ]; then
echo "Found wget ... using wget"
fi
if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then
wget "$jarUrl" -O "$wrapperJarPath"
else
wget --http-user=$MVNW_USERNAME --http-password=$MVNW_PASSWORD "$jarUrl" -O "$wrapperJarPath"
fi
elif command -v curl > /dev/null; then
if [ "$MVNW_VERBOSE" = true ]; then
echo "Found curl ... using curl"
fi
if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then
curl -o "$wrapperJarPath" "$jarUrl" -f
else
curl --user $MVNW_USERNAME:$MVNW_PASSWORD -o "$wrapperJarPath" "$jarUrl" -f
fi
else
if [ "$MVNW_VERBOSE" = true ]; then
echo "Falling back to using Java to download"
fi
javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java"
# For Cygwin, switch paths to Windows format before running javac
if $cygwin; then
javaClass=`cygpath --path --windows "$javaClass"`
fi
if [ -e "$javaClass" ]; then
if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
if [ "$MVNW_VERBOSE" = true ]; then
echo " - Compiling MavenWrapperDownloader.java ..."
fi
# Compiling the Java class
("$JAVA_HOME/bin/javac" "$javaClass")
fi
if [ -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
# Running the downloader
if [ "$MVNW_VERBOSE" = true ]; then
echo " - Running MavenWrapperDownloader.java ..."
fi
("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR")
fi
fi
fi
fi
##########################################################################################
# End of extension
##########################################################################################
export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"}
if [ "$MVNW_VERBOSE" = true ]; then
echo $MAVEN_PROJECTBASEDIR
fi
MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS"
# For Cygwin, switch paths to Windows format before running java
if $cygwin; then
[ -n "$M2_HOME" ] &&
M2_HOME=`cygpath --path --windows "$M2_HOME"`
[ -n "$JAVA_HOME" ] &&
JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"`
[ -n "$CLASSPATH" ] &&
CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
[ -n "$MAVEN_PROJECTBASEDIR" ] &&
MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"`
fi
# Provide a "standardized" way to retrieve the CLI args that will
# work with both Windows and non-Windows executions.
MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $@"
export MAVEN_CMD_LINE_ARGS
WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
exec "$JAVACMD" \
$MAVEN_OPTS \
-classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \
"-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \
${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@"
================================================
FILE: api-gateway/mvnw.cmd
================================================
@REM ----------------------------------------------------------------------------
@REM Licensed to the Apache Software Foundation (ASF) under one
@REM or more contributor license agreements. See the NOTICE file
@REM distributed with this work for additional information
@REM regarding copyright ownership. The ASF licenses this file
@REM to you under the Apache License, Version 2.0 (the
@REM "License"); you may not use this file except in compliance
@REM with the License. You may obtain a copy of the License at
@REM
@REM https://www.apache.org/licenses/LICENSE-2.0
@REM
@REM Unless required by applicable law or agreed to in writing,
@REM software distributed under the License is distributed on an
@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@REM KIND, either express or implied. See the License for the
@REM specific language governing permissions and limitations
@REM under the License.
@REM ----------------------------------------------------------------------------
@REM ----------------------------------------------------------------------------
@REM Maven2 Start Up Batch script
@REM
@REM Required ENV vars:
@REM JAVA_HOME - location of a JDK home dir
@REM
@REM Optional ENV vars
@REM M2_HOME - location of maven2's installed home dir
@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands
@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending
@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven
@REM e.g. to debug Maven itself, use
@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files
@REM ----------------------------------------------------------------------------
@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on'
@echo off
@REM set title of command window
title %0
@REM enable echoing by setting MAVEN_BATCH_ECHO to 'on'
@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO%
@REM set %HOME% to equivalent of $HOME
if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%")
@REM Execute a user defined script before this one
if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre
@REM check for pre script, once with legacy .bat ending and once with .cmd ending
if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat"
if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd"
:skipRcPre
@setlocal
set ERROR_CODE=0
@REM To isolate internal variables from possible post scripts, we use another setlocal
@setlocal
@REM ==== START VALIDATION ====
if not "%JAVA_HOME%" == "" goto OkJHome
echo.
echo Error: JAVA_HOME not found in your environment. >&2
echo Please set the JAVA_HOME variable in your environment to match the >&2
echo location of your Java installation. >&2
echo.
goto error
:OkJHome
if exist "%JAVA_HOME%\bin\java.exe" goto init
echo.
echo Error: JAVA_HOME is set to an invalid directory. >&2
echo JAVA_HOME = "%JAVA_HOME%" >&2
echo Please set the JAVA_HOME variable in your environment to match the >&2
echo location of your Java installation. >&2
echo.
goto error
@REM ==== END VALIDATION ====
:init
@REM Find the project base dir, i.e. the directory that contains the folder ".mvn".
@REM Fallback to current working directory if not found.
set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR%
IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir
set EXEC_DIR=%CD%
set WDIR=%EXEC_DIR%
:findBaseDir
IF EXIST "%WDIR%"\.mvn goto baseDirFound
cd ..
IF "%WDIR%"=="%CD%" goto baseDirNotFound
set WDIR=%CD%
goto findBaseDir
:baseDirFound
set MAVEN_PROJECTBASEDIR=%WDIR%
cd "%EXEC_DIR%"
goto endDetectBaseDir
:baseDirNotFound
set MAVEN_PROJECTBASEDIR=%EXEC_DIR%
cd "%EXEC_DIR%"
:endDetectBaseDir
IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig
@setlocal EnableExtensions EnableDelayedExpansion
for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a
@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS%
:endReadAdditionalConfig
SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe"
set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar"
set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.5/maven-wrapper-0.5.5.jar"
FOR /F "tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO (
IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B
)
@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
@REM This allows using the maven wrapper in projects that prohibit checking in binary data.
if exist %WRAPPER_JAR% (
if "%MVNW_VERBOSE%" == "true" (
echo Found %WRAPPER_JAR%
)
) else (
if not "%MVNW_REPOURL%" == "" (
SET DOWNLOAD_URL="%MVNW_REPOURL%/io/takari/maven-wrapper/0.5.5/maven-wrapper-0.5.5.jar"
)
if "%MVNW_VERBOSE%" == "true" (
echo Couldn't find %WRAPPER_JAR%, downloading it ...
echo Downloading from: %DOWNLOAD_URL%
)
powershell -Command "&{"^
"$webclient = new-object System.Net.WebClient;"^
"if (-not ([string]::IsNullOrEmpty('%MVNW_USERNAME%') -and [string]::IsNullOrEmpty('%MVNW_PASSWORD%'))) {"^
"$webclient.Credentials = new-object System.Net.NetworkCredential('%MVNW_USERNAME%', '%MVNW_PASSWORD%');"^
"}"^
"[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $webclient.DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')"^
"}"
if "%MVNW_VERBOSE%" == "true" (
echo Finished downloading %WRAPPER_JAR%
)
)
@REM End of extension
@REM Provide a "standardized" way to retrieve the CLI args that will
@REM work with both Windows and non-Windows executions.
set MAVEN_CMD_LINE_ARGS=%*
%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %*
if ERRORLEVEL 1 goto error
goto end
:error
set ERROR_CODE=1
:end
@endlocal & set ERROR_CODE=%ERROR_CODE%
if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost
@REM check for post script, once with legacy .bat ending and once with .cmd ending
if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat"
if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd"
:skipRcPost
@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on'
if "%MAVEN_BATCH_PAUSE%" == "on" pause
if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE%
exit /B %ERROR_CODE%
================================================
FILE: api-gateway/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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.2.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.jourwon.springcloud</groupId>
<artifactId>api-gateway</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>api-gateway</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
<spring-cloud.version>Hoxton.RELEASE</spring-cloud.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-gateway</artifactId>
</dependency>
<!--使用注册中心时添加-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<!--使用Hystrix做服务降级时添加-->
<!--<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
</dependency>-->
<!--使用redis对路由限速时添加-->
<!--<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis-reactive</artifactId>
</dependency>-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</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>
================================================
FILE: api-gateway/src/main/java/com/jourwon/springcloud/ApiGatewayApplication.java
================================================
package com.jourwon.springcloud;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
/**
* Description:
*
* @author JourWon
* @date 2019/12/22 18:36
*/
@EnableDiscoveryClient
@SpringBootApplication
public class ApiGatewayApplication {
public static void main(String[] args) {
SpringApplication.run(ApiGatewayApplication.class, args);
}
}
================================================
FILE: api-gateway/src/main/java/com/jourwon/springcloud/config/GatewayConfig.java
================================================
package com.jourwon.springcloud.config;
import org.springframework.context.annotation.Configuration;
/**
* Description:
*
* @author JourWon
* @date 2019/12/22 19:01
*/
@Configuration
public class GatewayConfig {
/*@Bean
public RouteLocator customerRouteLocator(RouteLocatorBuilder builder) {
return builder.routes()
.route("path_route2", r -> r.path("/user/getByUsername")
.uri("http://localhost:8201/user/getByUsername"))
.build();
}*/
}
================================================
FILE: api-gateway/src/main/java/com/jourwon/springcloud/config/RedisRateLimiterConfig.java
================================================
package com.jourwon.springcloud.config;
import org.springframework.cloud.gateway.filter.ratelimit.KeyResolver;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import reactor.core.publisher.Mono;
/**
* Description:
*
* @author JourWon
* @date 2019/12/23 9:10
*/
@Configuration
public class RedisRateLimiterConfig {
@Bean
public KeyResolver userKeyResolver() {
return exchange -> Mono.just(exchange.getRequest().getQueryParams().getFirst("username"));
}
@Bean
public KeyResolver ipKeyResolver() {
return exchange -> Mono.just(exchange.getRequest().getRemoteAddress().getHostName());
}
}
================================================
FILE: api-gateway/src/main/java/com/jourwon/springcloud/controller/FallbackController.java
================================================
package com.jourwon.springcloud.controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.HashMap;
import java.util.Map;
/**
* Description:
*
* @author JourWon
* @date 2019/12/23 8:56
*/
@RestController
public class FallbackController {
@GetMapping("/fallback")
public Object fallback() {
Map<String,Object> result = new HashMap<>();
result.put("data",null);
result.put("message","Get request fallback!");
result.put("code",500);
return result;
}
}
================================================
FILE: api-gateway/src/main/resources/application-eureka.yml
================================================
server:
port: 9201
spring:
application:
name: api-gateway
cloud:
gateway:
routes:
- id: prefixpath_route
uri: lb://user-service #此处需要使用lb协议
predicates:
- Method=GET
filters:
- PrefixPath=/user
discovery:
locator:
enabled: true
eureka:
client:
service-url:
defaultZone: http://localhost:8001/eureka/
logging:
level:
org.springframework.cloud.gateway: debug
================================================
FILE: api-gateway/src/main/resources/application-filter.yml
================================================
server:
port: 9201
service-url:
user-service: http://localhost:8201
spring:
cloud:
gateway:
routes:
- id: add_request_parameter_route
uri: ${service-url.user-service}
filters:
- AddRequestParameter=username, jourwon
predicates:
- Path=/user/**
#spring:
# cloud:
# gateway:
# routes:
# - id: hystrix_route
# uri: ${service-url.user-service}
# predicates:
# - Method=GET
# filters:
# - name: Hystrix
# args:
# name: fallbackcmd
# fallback-uri: forward:/fallback
#spring:
# redis:
# host: localhost
# password: 123456
# port: 6379
# cloud:
# gateway:
# routes:
# - id: requestratelimiter_route
# uri: http://localhost:8201
# filters:
# - name: RequestRateLimiter
# args:
# # 每秒允许处理的请求数量
# redis-rate-limiter.replenishRate: 1
# # 每秒最大处理的请求数量
# redis-rate-limiter.burstCapacity: 2
# # 限流策略,对应策略的Bean
# key-resolver: "#{@ipKeyResolver}"
# predicates:
# - Method=GET
#logging:
# level:
# org.springframework.cloud.gateway: debug
================================================
FILE: api-gateway/src/main/resources/application-predicate.yml
================================================
server:
port: 9201
service-url:
user-service: http://localhost:8201
spring:
cloud:
gateway:
routes:
- id: after_route
uri: ${service-url.user-service}
predicates:
- After=2019-12-22T19:30:00+08:00[Asia/Shanghai]
================================================
FILE: api-gateway/src/main/resources/application.yml
================================================
server:
port: 9201
service-url:
user-service: http://localhost:8201
spring:
cloud:
gateway:
routes:
# 路由的ID
- id: path_route
# 匹配后路由地址
uri: ${service-url.user-service}/user/{id}
predicates:
# 断言,路径相匹配的进行路由
- Path=/user/{id}
================================================
FILE: api-gateway/src/test/java/com/jourwon/springcloud/ApiGatewayApplicationTests.java
================================================
package com.jourwon.springcloud;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
@SpringBootTest
class ApiGatewayApplicationTests {
@Test
void contextLoads() {
}
}
================================================
FILE: config-client/.gitignore
================================================
HELP.md
target/
!.mvn/wrapper/maven-wrapper.jar
!**/src/main/**
!**/src/test/**
### STS ###
.apt_generated
.classpath
.factorypath
.project
.settings
.springBeans
.sts4-cache
### IntelliJ IDEA ###
.idea
*.iws
*.iml
*.ipr
### NetBeans ###
/nbproject/private/
/nbbuild/
/dist/
/nbdist/
/.nb-gradle/
build/
### VS Code ###
.vscode/
================================================
FILE: config-client/.mvn/wrapper/MavenWrapperDownloader.java
================================================
/*
* Copyright 2012-2019 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import java.net.*;
import java.io.*;
import java.nio.channels.*;
import java.util.Properties;
public class MavenWrapperDownloader {
private static final String WRAPPER_VERSION = "0.5.5";
/**
* Default URL to download the maven-wrapper.jar from, if no 'downloadUrl' is provided.
*/
private static final String DEFAULT_DOWNLOAD_URL = "https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/"
+ WRAPPER_VERSION + "/maven-wrapper-" + WRAPPER_VERSION + ".jar";
/**
* Path to the maven-wrapper.properties file, which might contain a downloadUrl property to
* use instead of the default one.
*/
private static final String MAVEN_WRAPPER_PROPERTIES_PATH =
".mvn/wrapper/maven-wrapper.properties";
/**
* Path where the maven-wrapper.jar will be saved to.
*/
private static final String MAVEN_WRAPPER_JAR_PATH =
".mvn/wrapper/maven-wrapper.jar";
/**
* Name of the property which should be used to override the default download url for the wrapper.
*/
private static final String PROPERTY_NAME_WRAPPER_URL = "wrapperUrl";
public static void main(String args[]) {
System.out.println("- Downloader started");
File baseDirectory = new File(args[0]);
System.out.println("- Using base directory: " + baseDirectory.getAbsolutePath());
// If the maven-wrapper.properties exists, read it and check if it contains a custom
// wrapperUrl parameter.
File mavenWrapperPropertyFile = new File(baseDirectory, MAVEN_WRAPPER_PROPERTIES_PATH);
String url = DEFAULT_DOWNLOAD_URL;
if (mavenWrapperPropertyFile.exists()) {
FileInputStream mavenWrapperPropertyFileInputStream = null;
try {
mavenWrapperPropertyFileInputStream = new FileInputStream(mavenWrapperPropertyFile);
Properties mavenWrapperProperties = new Properties();
mavenWrapperProperties.load(mavenWrapperPropertyFileInputStream);
url = mavenWrapperProperties.getProperty(PROPERTY_NAME_WRAPPER_URL, url);
} catch (IOException e) {
System.out.println("- ERROR loading '" + MAVEN_WRAPPER_PROPERTIES_PATH + "'");
} finally {
try {
if (mavenWrapperPropertyFileInputStream != null) {
mavenWrapperPropertyFileInputStream.close();
}
} catch (IOException e) {
// Ignore ...
}
}
}
System.out.println("- Downloading from: " + url);
File outputFile = new File(baseDirectory.getAbsolutePath(), MAVEN_WRAPPER_JAR_PATH);
if (!outputFile.getParentFile().exists()) {
if (!outputFile.getParentFile().mkdirs()) {
System.out.println(
"- ERROR creating output directory '" + outputFile.getParentFile().getAbsolutePath() + "'");
}
}
System.out.println("- Downloading to: " + outputFile.getAbsolutePath());
try {
downloadFileFromURL(url, outputFile);
System.out.println("Done");
System.exit(0);
} catch (Throwable e) {
System.out.println("- Error downloading");
e.printStackTrace();
System.exit(1);
}
}
private static void downloadFileFromURL(String urlString, File destination) throws Exception {
if (System.getenv("MVNW_USERNAME") != null && System.getenv("MVNW_PASSWORD") != null) {
String username = System.getenv("MVNW_USERNAME");
char[] password = System.getenv("MVNW_PASSWORD").toCharArray();
Authenticator.setDefault(new Authenticator() {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(username, password);
}
});
}
URL website = new URL(urlString);
ReadableByteChannel rbc;
rbc = Channels.newChannel(website.openStream());
FileOutputStream fos = new FileOutputStream(destination);
fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE);
fos.close();
rbc.close();
}
}
================================================
FILE: config-client/.mvn/wrapper/maven-wrapper.properties
================================================
distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.2/apache-maven-3.6.2-bin.zip
wrapperUrl=https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.5/maven-wrapper-0.5.5.jar
================================================
FILE: config-client/mvnw
================================================
#!/bin/sh
# ----------------------------------------------------------------------------
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
# ----------------------------------------------------------------------------
# ----------------------------------------------------------------------------
# Maven2 Start Up Batch script
#
# Required ENV vars:
# ------------------
# JAVA_HOME - location of a JDK home dir
#
# Optional ENV vars
# -----------------
# M2_HOME - location of maven2's installed home dir
# MAVEN_OPTS - parameters passed to the Java VM when running Maven
# e.g. to debug Maven itself, use
# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
# MAVEN_SKIP_RC - flag to disable loading of mavenrc files
# ----------------------------------------------------------------------------
if [ -z "$MAVEN_SKIP_RC" ] ; then
if [ -f /etc/mavenrc ] ; then
. /etc/mavenrc
fi
if [ -f "$HOME/.mavenrc" ] ; then
. "$HOME/.mavenrc"
fi
fi
# OS specific support. $var _must_ be set to either true or false.
cygwin=false;
darwin=false;
mingw=false
case "`uname`" in
CYGWIN*) cygwin=true ;;
MINGW*) mingw=true;;
Darwin*) darwin=true
# Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home
# See https://developer.apple.com/library/mac/qa/qa1170/_index.html
if [ -z "$JAVA_HOME" ]; then
if [ -x "/usr/libexec/java_home" ]; then
export JAVA_HOME="`/usr/libexec/java_home`"
else
export JAVA_HOME="/Library/Java/Home"
fi
fi
;;
esac
if [ -z "$JAVA_HOME" ] ; then
if [ -r /etc/gentoo-release ] ; then
JAVA_HOME=`java-config --jre-home`
fi
fi
if [ -z "$M2_HOME" ] ; then
## resolve links - $0 may be a link to maven's home
PRG="$0"
# need this for relative symlinks
while [ -h "$PRG" ] ; do
ls=`ls -ld "$PRG"`
link=`expr "$ls" : '.*-> \(.*\)$'`
if expr "$link" : '/.*' > /dev/null; then
PRG="$link"
else
PRG="`dirname "$PRG"`/$link"
fi
done
saveddir=`pwd`
M2_HOME=`dirname "$PRG"`/..
# make it fully qualified
M2_HOME=`cd "$M2_HOME" && pwd`
cd "$saveddir"
# echo Using m2 at $M2_HOME
fi
# For Cygwin, ensure paths are in UNIX format before anything is touched
if $cygwin ; then
[ -n "$M2_HOME" ] &&
M2_HOME=`cygpath --unix "$M2_HOME"`
[ -n "$JAVA_HOME" ] &&
JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
[ -n "$CLASSPATH" ] &&
CLASSPATH=`cygpath --path --unix "$CLASSPATH"`
fi
# For Mingw, ensure paths are in UNIX format before anything is touched
if $mingw ; then
[ -n "$M2_HOME" ] &&
M2_HOME="`(cd "$M2_HOME"; pwd)`"
[ -n "$JAVA_HOME" ] &&
JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`"
fi
if [ -z "$JAVA_HOME" ]; then
javaExecutable="`which javac`"
if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then
# readlink(1) is not available as standard on Solaris 10.
readLink=`which readlink`
if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then
if $darwin ; then
javaHome="`dirname \"$javaExecutable\"`"
javaExecutable="`cd \"$javaHome\" && pwd -P`/javac"
else
javaExecutable="`readlink -f \"$javaExecutable\"`"
fi
javaHome="`dirname \"$javaExecutable\"`"
javaHome=`expr "$javaHome" : '\(.*\)/bin'`
JAVA_HOME="$javaHome"
export JAVA_HOME
fi
fi
fi
if [ -z "$JAVACMD" ] ; then
if [ -n "$JAVA_HOME" ] ; then
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
# IBM's JDK on AIX uses strange locations for the executables
JAVACMD="$JAVA_HOME/jre/sh/java"
else
JAVACMD="$JAVA_HOME/bin/java"
fi
else
JAVACMD="`which java`"
fi
fi
if [ ! -x "$JAVACMD" ] ; then
echo "Error: JAVA_HOME is not defined correctly." >&2
echo " We cannot execute $JAVACMD" >&2
exit 1
fi
if [ -z "$JAVA_HOME" ] ; then
echo "Warning: JAVA_HOME environment variable is not set."
fi
CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher
# traverses directory structure from process work directory to filesystem root
# first directory with .mvn subdirectory is considered project base directory
find_maven_basedir() {
if [ -z "$1" ]
then
echo "Path not specified to find_maven_basedir"
return 1
fi
basedir="$1"
wdir="$1"
while [ "$wdir" != '/' ] ; do
if [ -d "$wdir"/.mvn ] ; then
basedir=$wdir
break
fi
# workaround for JBEAP-8937 (on Solaris 10/Sparc)
if [ -d "${wdir}" ]; then
wdir=`cd "$wdir/.."; pwd`
fi
# end of workaround
done
echo "${basedir}"
}
# concatenates all lines of a file
concat_lines() {
if [ -f "$1" ]; then
echo "$(tr -s '\n' ' ' < "$1")"
fi
}
BASE_DIR=`find_maven_basedir "$(pwd)"`
if [ -z "$BASE_DIR" ]; then
exit 1;
fi
##########################################################################################
# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
# This allows using the maven wrapper in projects that prohibit checking in binary data.
##########################################################################################
if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then
if [ "$MVNW_VERBOSE" = true ]; then
echo "Found .mvn/wrapper/maven-wrapper.jar"
fi
else
if [ "$MVNW_VERBOSE" = true ]; then
echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..."
fi
if [ -n "$MVNW_REPOURL" ]; then
jarUrl="$MVNW_REPOURL/io/takari/maven-wrapper/0.5.5/maven-wrapper-0.5.5.jar"
else
jarUrl="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.5/maven-wrapper-0.5.5.jar"
fi
while IFS="=" read key value; do
case "$key" in (wrapperUrl) jarUrl="$value"; break ;;
esac
done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties"
if [ "$MVNW_VERBOSE" = true ]; then
echo "Downloading from: $jarUrl"
fi
wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar"
if $cygwin; then
wrapperJarPath=`cygpath --path --windows "$wrapperJarPath"`
fi
if command -v wget > /dev/null; then
if [ "$MVNW_VERBOSE" = true ]; then
echo "Found wget ... using wget"
fi
if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then
wget "$jarUrl" -O "$wrapperJarPath"
else
wget --http-user=$MVNW_USERNAME --http-password=$MVNW_PASSWORD "$jarUrl" -O "$wrapperJarPath"
fi
elif command -v curl > /dev/null; then
if [ "$MVNW_VERBOSE" = true ]; then
echo "Found curl ... using curl"
fi
if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then
curl -o "$wrapperJarPath" "$jarUrl" -f
else
curl --user $MVNW_USERNAME:$MVNW_PASSWORD -o "$wrapperJarPath" "$jarUrl" -f
fi
else
if [ "$MVNW_VERBOSE" = true ]; then
echo "Falling back to using Java to download"
fi
javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java"
# For Cygwin, switch paths to Windows format before running javac
if $cygwin; then
javaClass=`cygpath --path --windows "$javaClass"`
fi
if [ -e "$javaClass" ]; then
if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
if [ "$MVNW_VERBOSE" = true ]; then
echo " - Compiling MavenWrapperDownloader.java ..."
fi
# Compiling the Java class
("$JAVA_HOME/bin/javac" "$javaClass")
fi
if [ -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
# Running the downloader
if [ "$MVNW_VERBOSE" = true ]; then
echo " - Running MavenWrapperDownloader.java ..."
fi
("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR")
fi
fi
fi
fi
##########################################################################################
# End of extension
##########################################################################################
export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"}
if [ "$MVNW_VERBOSE" = true ]; then
echo $MAVEN_PROJECTBASEDIR
fi
MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS"
# For Cygwin, switch paths to Windows format before running java
if $cygwin; then
[ -n "$M2_HOME" ] &&
M2_HOME=`cygpath --path --windows "$M2_HOME"`
[ -n "$JAVA_HOME" ] &&
JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"`
[ -n "$CLASSPATH" ] &&
CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
[ -n "$MAVEN_PROJECTBASEDIR" ] &&
MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"`
fi
# Provide a "standardized" way to retrieve the CLI args that will
# work with both Windows and non-Windows executions.
MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $@"
export MAVEN_CMD_LINE_ARGS
WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
exec "$JAVACMD" \
$MAVEN_OPTS \
-classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \
"-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \
${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@"
================================================
FILE: config-client/mvnw.cmd
================================================
@REM ----------------------------------------------------------------------------
@REM Licensed to the Apache Software Foundation (ASF) under one
@REM or more contributor license agreements. See the NOTICE file
@REM distributed with this work for additional information
@REM regarding copyright ownership. The ASF licenses this file
@REM to you under the Apache License, Version 2.0 (the
@REM "License"); you may not use this file except in compliance
@REM with the License. You may obtain a copy of the License at
@REM
@REM https://www.apache.org/licenses/LICENSE-2.0
@REM
@REM Unless required by applicable law or agreed to in writing,
@REM software distributed under the License is distributed on an
@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@REM KIND, either express or implied. See the License for the
@REM specific language governing permissions and limitations
@REM under the License.
@REM ----------------------------------------------------------------------------
@REM ----------------------------------------------------------------------------
@REM Maven2 Start Up Batch script
@REM
@REM Required ENV vars:
@REM JAVA_HOME - location of a JDK home dir
@REM
@REM Optional ENV vars
@REM M2_HOME - location of maven2's installed home dir
@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands
@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending
@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven
@REM e.g. to debug Maven itself, use
@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files
@REM ----------------------------------------------------------------------------
@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on'
@echo off
@REM set title of command window
title %0
@REM enable echoing by setting MAVEN_BATCH_ECHO to 'on'
@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO%
@REM set %HOME% to equivalent of $HOME
if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%")
@REM Execute a user defined script before this one
if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre
@REM check for pre script, once with legacy .bat ending and once with .cmd ending
if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat"
if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd"
:skipRcPre
@setlocal
set ERROR_CODE=0
@REM To isolate internal variables from possible post scripts, we use another setlocal
@setlocal
@REM ==== START VALIDATION ====
if not "%JAVA_HOME%" == "" goto OkJHome
echo.
echo Error: JAVA_HOME not found in your environment. >&2
echo Please set the JAVA_HOME variable in your environment to match the >&2
echo location of your Java installation. >&2
echo.
goto error
:OkJHome
if exist "%JAVA_HOME%\bin\java.exe" goto init
echo.
echo Error: JAVA_HOME is set to an invalid directory. >&2
echo JAVA_HOME = "%JAVA_HOME%" >&2
echo Please set the JAVA_HOME variable in your environment to match the >&2
echo location of your Java installation. >&2
echo.
goto error
@REM ==== END VALIDATION ====
:init
@REM Find the project base dir, i.e. the directory that contains the folder ".mvn".
@REM Fallback to current working directory if not found.
set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR%
IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir
set EXEC_DIR=%CD%
set WDIR=%EXEC_DIR%
:findBaseDir
IF EXIST "%WDIR%"\.mvn goto baseDirFound
cd ..
IF "%WDIR%"=="%CD%" goto baseDirNotFound
set WDIR=%CD%
goto findBaseDir
:baseDirFound
set MAVEN_PROJECTBASEDIR=%WDIR%
cd "%EXEC_DIR%"
goto endDetectBaseDir
:baseDirNotFound
set MAVEN_PROJECTBASEDIR=%EXEC_DIR%
cd "%EXEC_DIR%"
:endDetectBaseDir
IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig
@setlocal EnableExtensions EnableDelayedExpansion
for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a
@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS%
:endReadAdditionalConfig
SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe"
set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar"
set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.5/maven-wrapper-0.5.5.jar"
FOR /F "tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO (
IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B
)
@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
@REM This allows using the maven wrapper in projects that prohibit checking in binary data.
if exist %WRAPPER_JAR% (
if "%MVNW_VERBOSE%" == "true" (
echo Found %WRAPPER_JAR%
)
) else (
if not "%MVNW_REPOURL%" == "" (
SET DOWNLOAD_URL="%MVNW_REPOURL%/io/takari/maven-wrapper/0.5.5/maven-wrapper-0.5.5.jar"
)
if "%MVNW_VERBOSE%" == "true" (
echo Couldn't find %WRAPPER_JAR%, downloading it ...
echo Downloading from: %DOWNLOAD_URL%
)
powershell -Command "&{"^
"$webclient = new-object System.Net.WebClient;"^
"if (-not ([string]::IsNullOrEmpty('%MVNW_USERNAME%') -and [string]::IsNullOrEmpty('%MVNW_PASSWORD%'))) {"^
"$webclient.Credentials = new-object System.Net.NetworkCredential('%MVNW_USERNAME%', '%MVNW_PASSWORD%');"^
"}"^
"[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $webclient.DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')"^
"}"
if "%MVNW_VERBOSE%" == "true" (
echo Finished downloading %WRAPPER_JAR%
)
)
@REM End of extension
@REM Provide a "standardized" way to retrieve the CLI args that will
@REM work with both Windows and non-Windows executions.
set MAVEN_CMD_LINE_ARGS=%*
%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %*
if ERRORLEVEL 1 goto error
goto end
:error
set ERROR_CODE=1
:end
@endlocal & set ERROR_CODE=%ERROR_CODE%
if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost
@REM check for post script, once with legacy .bat ending and once with .cmd ending
if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat"
if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd"
:skipRcPost
@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on'
if "%MAVEN_BATCH_PAUSE%" == "on" pause
if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE%
exit /B %ERROR_CODE%
================================================
FILE: config-client/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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.2.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.jourwon.springcloud</groupId>
<artifactId>config-client</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>config-client</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
<spring-cloud.version>Hoxton.RELEASE</spring-cloud.version>
</properties>
<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>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bus-amqp</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</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>
================================================
FILE: config-client/src/main/java/com/jourwon/springcloud/ConfigClientApplication.java
================================================
package com.jourwon.springcloud;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
/**
* Description:
*
* @author JourWon
* @date 2019/12/21 11:59
*/
@EnableDiscoveryClient
@SpringBootApplication
public class ConfigClientApplication {
public static void main(String[] args) {
SpringApplication.run(ConfigClientApplication.class, args);
}
}
================================================
FILE: config-client/src/main/java/com/jourwon/springcloud/controller/ConfigClientController.java
================================================
package com.jourwon.springcloud.controller;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* Description:在ConfigClientController类添加@RefreshScope注解用于刷新配置
*
* @author JourWon
* @date 2019/12/21 11:59
*/
@RefreshScope
@RestController
public class ConfigClientController {
@Value("${config.info}")
private String configInfo;
@GetMapping("/configInfo")
public String getConfigInfo() {
return configInfo;
}
}
================================================
FILE: config-client/src/main/resources/bootstrap-amqp1.yml
================================================
server:
port: 9004
spring:
application:
name: config-client
cloud:
# config客户端配置
config:
# 分支名称
label: master
# 启用配置后缀名称
profile: dev
# 配置文件名称
name: config
discovery:
enabled: true
service-id: config-server
# rabbitmq配置
rabbitmq:
host: localhost
port: 5672
username: guest
password: guest
eureka:
client:
register-with-eureka: true
fetch-registry: true
service-url:
defaultZone: http://localhost:8001/eureka/
management:
endpoints:
web:
exposure:
include: 'refresh'
================================================
FILE: config-client/src/main/resources/bootstrap-amqp2.yml
================================================
server:
port: 9005
spring:
application:
name: config-client
cloud:
# config客户端配置
config:
# 分支名称
label: master
# 启用配置后缀名称
profile: dev
# 配置文件名称
name: config
discovery:
enabled: true
service-id: config-server
# rabbitmq配置
rabbitmq:
host: localhost
port: 5672
username: guest
password: guest
eureka:
client:
register-with-eureka: true
fetch-registry: true
service-url:
defaultZone: http://localhost:8001/eureka/
management:
endpoints:
web:
exposure:
include: 'refresh'
================================================
FILE: config-client/src/main/resources/bootstrap-cluster.yml
================================================
server:
port: 9003
spring:
application:
name: config-client
cloud:
# config客户端配置
config:
# 分支名称
label: master
# 启用配置后缀名称
profile: dev
# 配置文件名称
name: config
# config-sever集群搭建
discovery:
enabled: true
service-id: config-server
eureka:
client:
register-with-eureka: true
fetch-registry: true
service-url:
defaultZone: http://localhost:8001/eureka/
management:
endpoints:
web:
exposure:
include: 'refresh'
================================================
FILE: config-client/src/main/resources/bootstrap-security.yml
================================================
server:
port: 9002
spring:
application:
name: config-client
cloud:
# config客户端配置
config:
# 分支名称
label: master
# 启用配置后缀名称
profile: dev
# 配置文件名称
name: config
# 配置中心地址
uri: http://localhost:8905
username: root
password: 123456
eureka:
client:
register-with-eureka: true
fetch-registry: true
service-url:
defaultZone: http://localhost:8001/eureka/
management:
endpoints:
web:
exposure:
include: 'refresh'
================================================
FILE: config-client/src/main/resources/bootstrap.yml
================================================
server:
port: 9001
spring:
application:
name: config-client
cloud:
# config客户端配置
config:
# 分支名称
label: master
# 启用配置后缀名称
profile: dev
# 配置文件名称
name: config
# 配置中心地址
uri: http://localhost:8901
eureka:
client:
register-with-eureka: true
fetch-registry: true
service-url:
defaultZone: http://localhost:8001/eureka/
management:
endpoints:
web:
exposure:
include: 'refresh'
================================================
FILE: config-client/src/test/java/com/jourwon/springcloud/ConfigClientApplicationTests.java
================================================
package com.jourwon.springcloud;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
@SpringBootTest
class ConfigClientApplicationTests {
@Test
void contextLoads() {
}
}
================================================
FILE: config-security-server/.gitignore
================================================
HELP.md
target/
!.mvn/wrapper/maven-wrapper.jar
!**/src/main/**
!**/src/test/**
### STS ###
.apt_generated
.classpath
.factorypath
.project
.settings
.springBeans
.sts4-cache
### IntelliJ IDEA ###
.idea
*.iws
*.iml
*.ipr
### NetBeans ###
/nbproject/private/
/nbbuild/
/dist/
/nbdist/
/.nb-gradle/
build/
### VS Code ###
.vscode/
================================================
FILE: config-security-server/.mvn/wrapper/MavenWrapperDownloader.java
================================================
/*
* Copyright 2012-2019 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import java.net.*;
import java.io.*;
import java.nio.channels.*;
import java.util.Properties;
public class MavenWrapperDownloader {
private static final String WRAPPER_VERSION = "0.5.5";
/**
* Default URL to download the maven-wrapper.jar from, if no 'downloadUrl' is provided.
*/
private static final String DEFAULT_DOWNLOAD_URL = "https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/"
+ WRAPPER_VERSION + "/maven-wrapper-" + WRAPPER_VERSION + ".jar";
/**
* Path to the maven-wrapper.properties file, which might contain a downloadUrl property to
* use instead of the default one.
*/
private static final String MAVEN_WRAPPER_PROPERTIES_PATH =
".mvn/wrapper/maven-wrapper.properties";
/**
* Path where the maven-wrapper.jar will be saved to.
*/
private static final String MAVEN_WRAPPER_JAR_PATH =
".mvn/wrapper/maven-wrapper.jar";
/**
* Name of the property which should be used to override the default download url for the wrapper.
*/
private static final String PROPERTY_NAME_WRAPPER_URL = "wrapperUrl";
public static void main(String args[]) {
System.out.println("- Downloader started");
File baseDirectory = new File(args[0]);
System.out.println("- Using base directory: " + baseDirectory.getAbsolutePath());
// If the maven-wrapper.properties exists, read it and check if it contains a custom
// wrapperUrl parameter.
File mavenWrapperPropertyFile = new File(baseDirectory, MAVEN_WRAPPER_PROPERTIES_PATH);
String url = DEFAULT_DOWNLOAD_URL;
if (mavenWrapperPropertyFile.exists()) {
FileInputStream mavenWrapperPropertyFileInputStream = null;
try {
mavenWrapperPropertyFileInputStream = new FileInputStream(mavenWrapperPropertyFile);
Properties mavenWrapperProperties = new Properties();
mavenWrapperProperties.load(mavenWrapperPropertyFileInputStream);
url = mavenWrapperProperties.getProperty(PROPERTY_NAME_WRAPPER_URL, url);
} catch (IOException e) {
System.out.println("- ERROR loading '" + MAVEN_WRAPPER_PROPERTIES_PATH + "'");
} finally {
try {
if (mavenWrapperPropertyFileInputStream != null) {
mavenWrapperPropertyFileInputStream.close();
}
} catch (IOException e) {
// Ignore ...
}
}
}
System.out.println("- Downloading from: " + url);
File outputFile = new File(baseDirectory.getAbsolutePath(), MAVEN_WRAPPER_JAR_PATH);
if (!outputFile.getParentFile().exists()) {
if (!outputFile.getParentFile().mkdirs()) {
System.out.println(
"- ERROR creating output directory '" + outputFile.getParentFile().getAbsolutePath() + "'");
}
}
System.out.println("- Downloading to: " + outputFile.getAbsolutePath());
try {
downloadFileFromURL(url, outputFile);
System.out.println("Done");
System.exit(0);
} catch (Throwable e) {
System.out.println("- Error downloading");
e.printStackTrace();
System.exit(1);
}
}
private static void downloadFileFromURL(String urlString, File destination) throws Exception {
if (System.getenv("MVNW_USERNAME") != null && System.getenv("MVNW_PASSWORD") != null) {
String username = System.getenv("MVNW_USERNAME");
char[] password = System.getenv("MVNW_PASSWORD").toCharArray();
Authenticator.setDefault(new Authenticator() {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(username, password);
}
});
}
URL website = new URL(urlString);
ReadableByteChannel rbc;
rbc = Channels.newChannel(website.openStream());
FileOutputStream fos = new FileOutputStream(destination);
fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE);
fos.close();
rbc.close();
}
}
================================================
FILE: config-security-server/.mvn/wrapper/maven-wrapper.properties
================================================
distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.2/apache-maven-3.6.2-bin.zip
wrapperUrl=https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.5/maven-wrapper-0.5.5.jar
================================================
FILE: config-security-server/mvnw
================================================
#!/bin/sh
# ----------------------------------------------------------------------------
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
# ----------------------------------------------------------------------------
# ----------------------------------------------------------------------------
# Maven2 Start Up Batch script
#
# Required ENV vars:
# ------------------
# JAVA_HOME - location of a JDK home dir
#
# Optional ENV vars
# -----------------
# M2_HOME - location of maven2's installed home dir
# MAVEN_OPTS - parameters passed to the Java VM when running Maven
# e.g. to debug Maven itself, use
# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
# MAVEN_SKIP_RC - flag to disable loading of mavenrc files
# ----------------------------------------------------------------------------
if [ -z "$MAVEN_SKIP_RC" ] ; then
if [ -f /etc/mavenrc ] ; then
. /etc/mavenrc
fi
if [ -f "$HOME/.mavenrc" ] ; then
. "$HOME/.mavenrc"
fi
fi
# OS specific support. $var _must_ be set to either true or false.
cygwin=false;
darwin=false;
mingw=false
case "`uname`" in
CYGWIN*) cygwin=true ;;
MINGW*) mingw=true;;
Darwin*) darwin=true
# Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home
# See https://developer.apple.com/library/mac/qa/qa1170/_index.html
if [ -z "$JAVA_HOME" ]; then
if [ -x "/usr/libexec/java_home" ]; then
export JAVA_HOME="`/usr/libexec/java_home`"
else
export JAVA_HOME="/Library/Java/Home"
fi
fi
;;
esac
if [ -z "$JAVA_HOME" ] ; then
if [ -r /etc/gentoo-release ] ; then
JAVA_HOME=`java-config --jre-home`
fi
fi
if [ -z "$M2_HOME" ] ; then
## resolve links - $0 may be a link to maven's home
PRG="$0"
# need this for relative symlinks
while [ -h "$PRG" ] ; do
ls=`ls -ld "$PRG"`
link=`expr "$ls" : '.*-> \(.*\)$'`
if expr "$link" : '/.*' > /dev/null; then
PRG="$link"
else
PRG="`dirname "$PRG"`/$link"
fi
done
saveddir=`pwd`
M2_HOME=`dirname "$PRG"`/..
# make it fully qualified
M2_HOME=`cd "$M2_HOME" && pwd`
cd "$saveddir"
# echo Using m2 at $M2_HOME
fi
# For Cygwin, ensure paths are in UNIX format before anything is touched
if $cygwin ; then
[ -n "$M2_HOME" ] &&
M2_HOME=`cygpath --unix "$M2_HOME"`
[ -n "$JAVA_HOME" ] &&
JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
[ -n "$CLASSPATH" ] &&
CLASSPATH=`cygpath --path --unix "$CLASSPATH"`
fi
# For Mingw, ensure paths are in UNIX format before anything is touched
if $mingw ; then
[ -n "$M2_HOME" ] &&
M2_HOME="`(cd "$M2_HOME"; pwd)`"
[ -n "$JAVA_HOME" ] &&
JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`"
fi
if [ -z "$JAVA_HOME" ]; then
javaExecutable="`which javac`"
if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then
# readlink(1) is not available as standard on Solaris 10.
readLink=`which readlink`
if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then
if $darwin ; then
javaHome="`dirname \"$javaExecutable\"`"
javaExecutable="`cd \"$javaHome\" && pwd -P`/javac"
else
javaExecutable="`readlink -f \"$javaExecutable\"`"
fi
javaHome="`dirname \"$javaExecutable\"`"
javaHome=`expr "$javaHome" : '\(.*\)/bin'`
JAVA_HOME="$javaHome"
export JAVA_HOME
fi
fi
fi
if [ -z "$JAVACMD" ] ; then
if [ -n "$JAVA_HOME" ] ; then
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
# IBM's JDK on AIX uses strange locations for the executables
JAVACMD="$JAVA_HOME/jre/sh/java"
else
JAVACMD="$JAVA_HOME/bin/java"
fi
else
JAVACMD="`which java`"
fi
fi
if [ ! -x "$JAVACMD" ] ; then
echo "Error: JAVA_HOME is not defined correctly." >&2
echo " We cannot execute $JAVACMD" >&2
exit 1
fi
if [ -z "$JAVA_HOME" ] ; then
echo "Warning: JAVA_HOME environment variable is not set."
fi
CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher
# traverses directory structure from process work directory to filesystem root
# first directory with .mvn subdirectory is considered project base directory
find_maven_basedir() {
if [ -z "$1" ]
then
echo "Path not specified to find_maven_basedir"
return 1
fi
basedir="$1"
wdir="$1"
while [ "$wdir" != '/' ] ; do
if [ -d "$wdir"/.mvn ] ; then
basedir=$wdir
break
fi
# workaround for JBEAP-8937 (on Solaris 10/Sparc)
if [ -d "${wdir}" ]; then
wdir=`cd "$wdir/.."; pwd`
fi
# end of workaround
done
echo "${basedir}"
}
# concatenates all lines of a file
concat_lines() {
if [ -f "$1" ]; then
echo "$(tr -s '\n' ' ' < "$1")"
fi
}
BASE_DIR=`find_maven_basedir "$(pwd)"`
if [ -z "$BASE_DIR" ]; then
exit 1;
fi
##########################################################################################
# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central
# This allows using the maven wrapper in projects that prohibit checking in binary data.
##########################################################################################
if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then
if [ "$MVNW_VERBOSE" = true ]; then
echo "Found .mvn/wrapper/maven-wrapper.jar"
fi
else
if [ "$MVNW_VERBOSE" = true ]; then
echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..."
fi
if [ -n "$MVNW_REPOURL" ]; then
jarUrl="$MVNW_REPOURL/io/takari/maven-wrapper/0.5.5/maven-wrapper-0.5.5.jar"
else
jarUrl="https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.5/maven-wrapper-0.5.5.jar"
fi
while IFS="=" read key value; do
case "$key" in (wrapperUrl) jarUrl="$value"; break ;;
esac
done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties"
if [ "$MVNW_VERBOSE" = true ]; then
echo "Downloading from: $jarUrl"
fi
wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar"
if $cygwin; then
wrapperJarPath=`cygpath --path --windows "$wrapperJarPath"`
fi
if command -v wget > /dev/null; then
if [ "$MVNW_VERBOSE" = true ]; then
echo "Found wget ... using wget"
fi
if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then
wget "$jarUrl" -O "$wrapperJarPath"
else
wget --http-user=$MVNW_USERNAME --http-password=$MVNW_PASSWORD "$jarUrl" -O "$wrapperJarPath"
fi
elif command -v curl > /dev/null; then
if [ "$MVNW_VERBOSE" = true ]; then
echo "Found curl ... using curl"
fi
if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then
curl -o "$wrapperJarPath" "$jarUrl" -f
else
curl --user $MVNW_USERNAME:$MVNW_PASSWORD -o "$wrapperJarPath" "$jarUrl" -f
fi
else
if [ "$MVNW_VERBOSE" = true ]; then
echo "Falling back to using Java to download"
fi
javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java"
# For Cygwin, switch paths to Windows format before running javac
if $cygwin; then
javaClass=`cygpath --path --windows "$javaClass"`
fi
if [ -e "$javaClass" ]; then
if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
if [ "$MVNW_VERBOSE" = true ]; then
echo " - Compiling MavenWrapperDownloader.java ..."
fi
# Compiling the Java class
("$JAVA_HOME/bin/javac" "$javaClass")
fi
if [ -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then
# Running the downloader
if [ "$MVNW_VERBOSE" = true ]; then
echo " - Running MavenWrapperDownloader.java ..."
fi
("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR")
fi
fi
fi
fi
##########################################################################################
# End of extension
##########################################################################################
export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"}
if [ "$MVNW_VERBOSE" = true ]; then
echo $MAVEN_PROJECTBASEDIR
fi
MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS"
# For Cygwin, switch paths to Windows format before running java
if $cygwin; then
[ -n "$M2_HOME" ] &&
M2_HOME=`cygpath --path --windows "$M2_HOME"`
[ -n "$JAVA_HOME" ] &&
JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"`
[ -n "$CLASSPATH" ] &&
CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
[ -n "$MAVEN_PROJECTBASEDIR" ] &&
MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"`
fi
# Provide a "standardized" way to retrieve the CLI args that will
# work with both Windows and non-Windows executions.
MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $@"
export MAVEN_CMD_LINE_ARGS
WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
exec "$JAVACMD" \
$MAVEN_OPTS \
-classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \
"-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \
${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@"
================================================
FILE: config-security-server/mvnw.cmd
================================================
@REM ----------------------------------------------------------------------------
@REM Licensed to the Apache Software Foundation (ASF) under one
@REM or more contributor license agreements. See the NOTICE file
@REM distributed with this work for additional information
@REM regarding copyright ownership. The ASF licenses this file
@REM to you under the Apache License, Version 2.0 (the
@REM "License"); you may not use this file except in compliance
@REM with the License. You may obtain a copy of the License at
@REM
@REM https://www.apache.org/licenses/LICENSE-2.0
@REM
@REM Unless required by applicable law or agreed to in writing,
@REM software distributed under the License is distributed on an
@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@REM KIND, either express or implied. See the License for the
@REM specific language governing permissions and limitations
@REM under the License.
@REM ----------------------------------------------------------------------------
@REM ----------------------------------------------------------------------------
@REM Maven2 Start Up Batch script
@REM
@REM Required ENV vars:
@REM JAVA_HOME - location of a JDK home dir
@REM
@REM Optional ENV vars
@REM M2_HOME - location of maven2's installed home dir
@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands
@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending
@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven
@REM e.g. to debug Maven itself, use
@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files
@REM ----------------------------------------------------------------------------
@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on'
@echo off
@REM set title of command window
title %0
@REM enable echoing by setting MAVEN_BATCH_ECHO to 'on'
@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO%
@REM set %HOME% to equivalent of $HOME
if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%")
@REM Execute a user defined script before this one
if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre
@REM check for pre script, once with legacy .bat ending and once with .cmd ending
if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat"
if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd"
:skipRcPre
@setlocal
set ERROR_CODE=0
@REM To isolate internal variables from possible post scripts, we use another setlocal
@setlocal
@REM ==== START VALIDATION ====
if
gitextract_xg76vfy_/
├── .gitignore
├── README.md
├── admin-client/
│ ├── .gitignore
│ ├── .mvn/
│ │ └── wrapper/
│ │ ├── MavenWrapperDownloader.java
│ │ ├── maven-wrapper.jar
│ │ └── maven-wrapper.properties
│ ├── mvnw
│ ├── mvnw.cmd
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── jourwon/
│ │ │ └── springcloud/
│ │ │ ├── AdminClientApplication.java
│ │ │ ├── controller/
│ │ │ │ └── UserController.java
│ │ │ ├── pojo/
│ │ │ │ ├── Result.java
│ │ │ │ └── User.java
│ │ │ └── service/
│ │ │ ├── UserService.java
│ │ │ └── impl/
│ │ │ └── UserServiceImpl.java
│ │ └── resources/
│ │ ├── application-eureka.yml
│ │ └── application.yml
│ └── test/
│ └── java/
│ └── com/
│ └── jourwon/
│ └── springcloud/
│ └── AdminClientApplicationTests.java
├── admin-client.log
├── admin-security-server/
│ ├── .gitignore
│ ├── .mvn/
│ │ └── wrapper/
│ │ ├── MavenWrapperDownloader.java
│ │ ├── maven-wrapper.jar
│ │ └── maven-wrapper.properties
│ ├── mvnw
│ ├── mvnw.cmd
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── jourwon/
│ │ │ └── springcloud/
│ │ │ ├── AdminSecurityServerApplication.java
│ │ │ └── config/
│ │ │ └── SecuritySecureConfig.java
│ │ └── resources/
│ │ └── application.yml
│ └── test/
│ └── java/
│ └── com/
│ └── jourwon/
│ └── springcloud/
│ └── AdminSecurityServerApplicationTests.java
├── admin-server/
│ ├── .gitignore
│ ├── .mvn/
│ │ └── wrapper/
│ │ ├── MavenWrapperDownloader.java
│ │ ├── maven-wrapper.jar
│ │ └── maven-wrapper.properties
│ ├── mvnw
│ ├── mvnw.cmd
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── jourwon/
│ │ │ └── springcloud/
│ │ │ └── AdminServerApplication.java
│ │ └── resources/
│ │ ├── application-eureka.yml
│ │ └── application.yml
│ └── test/
│ └── java/
│ └── com/
│ └── jourwon/
│ └── springcloud/
│ └── AdminServerApplicationTests.java
├── api-gateway/
│ ├── .gitignore
│ ├── .mvn/
│ │ └── wrapper/
│ │ ├── MavenWrapperDownloader.java
│ │ ├── maven-wrapper.jar
│ │ └── maven-wrapper.properties
│ ├── mvnw
│ ├── mvnw.cmd
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── jourwon/
│ │ │ └── springcloud/
│ │ │ ├── ApiGatewayApplication.java
│ │ │ ├── config/
│ │ │ │ ├── GatewayConfig.java
│ │ │ │ └── RedisRateLimiterConfig.java
│ │ │ └── controller/
│ │ │ └── FallbackController.java
│ │ └── resources/
│ │ ├── application-eureka.yml
│ │ ├── application-filter.yml
│ │ ├── application-predicate.yml
│ │ └── application.yml
│ └── test/
│ └── java/
│ └── com/
│ └── jourwon/
│ └── springcloud/
│ └── ApiGatewayApplicationTests.java
├── config-client/
│ ├── .gitignore
│ ├── .mvn/
│ │ └── wrapper/
│ │ ├── MavenWrapperDownloader.java
│ │ ├── maven-wrapper.jar
│ │ └── maven-wrapper.properties
│ ├── mvnw
│ ├── mvnw.cmd
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── jourwon/
│ │ │ └── springcloud/
│ │ │ ├── ConfigClientApplication.java
│ │ │ └── controller/
│ │ │ └── ConfigClientController.java
│ │ └── resources/
│ │ ├── bootstrap-amqp1.yml
│ │ ├── bootstrap-amqp2.yml
│ │ ├── bootstrap-cluster.yml
│ │ ├── bootstrap-security.yml
│ │ └── bootstrap.yml
│ └── test/
│ └── java/
│ └── com/
│ └── jourwon/
│ └── springcloud/
│ └── ConfigClientApplicationTests.java
├── config-security-server/
│ ├── .gitignore
│ ├── .mvn/
│ │ └── wrapper/
│ │ ├── MavenWrapperDownloader.java
│ │ ├── maven-wrapper.jar
│ │ └── maven-wrapper.properties
│ ├── mvnw
│ ├── mvnw.cmd
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── jourwon/
│ │ │ └── springcloud/
│ │ │ └── ConfigSecurityServerApplication.java
│ │ └── resources/
│ │ └── application.yml
│ └── test/
│ └── java/
│ └── com/
│ └── jourwon/
│ └── springcloud/
│ └── ConfigSecurityServerApplicationTests.java
├── config-server/
│ ├── .gitignore
│ ├── .mvn/
│ │ └── wrapper/
│ │ ├── MavenWrapperDownloader.java
│ │ ├── maven-wrapper.jar
│ │ └── maven-wrapper.properties
│ ├── mvnw
│ ├── mvnw.cmd
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── jourwon/
│ │ │ └── springcloud/
│ │ │ └── ConfigServerApplication.java
│ │ └── resources/
│ │ ├── application-amqp.yml
│ │ ├── application-replica1.yml
│ │ ├── application-replica2.yml
│ │ └── application.yml
│ └── test/
│ └── java/
│ └── com/
│ └── jourwon/
│ └── springcloud/
│ └── ConfigServerApplicationTests.java
├── consul-config-client/
│ ├── .gitignore
│ ├── .mvn/
│ │ └── wrapper/
│ │ ├── MavenWrapperDownloader.java
│ │ ├── maven-wrapper.jar
│ │ └── maven-wrapper.properties
│ ├── mvnw
│ ├── mvnw.cmd
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── jourwon/
│ │ │ └── springcloud/
│ │ │ ├── ConsulConfigClientApplication.java
│ │ │ └── controller/
│ │ │ └── ConfigClientController.java
│ │ └── resources/
│ │ ├── application.yml
│ │ └── bootstrap.yml
│ └── test/
│ └── java/
│ └── com/
│ └── jourwon/
│ └── springcloud/
│ └── ConsulConfigClientApplicationTests.java
├── consul-ribbon-service/
│ ├── .gitignore
│ ├── .mvn/
│ │ └── wrapper/
│ │ ├── MavenWrapperDownloader.java
│ │ ├── maven-wrapper.jar
│ │ └── maven-wrapper.properties
│ ├── mvnw
│ ├── mvnw.cmd
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── jourwon/
│ │ │ └── springcloud/
│ │ │ ├── ConsulRibbonServiceApplication.java
│ │ │ ├── config/
│ │ │ │ └── RibbonConfig.java
│ │ │ ├── controller/
│ │ │ │ └── UserRibbonController.java
│ │ │ └── pojo/
│ │ │ ├── Result.java
│ │ │ └── User.java
│ │ └── resources/
│ │ └── application.yml
│ └── test/
│ └── java/
│ └── com/
│ └── jourwon/
│ └── springcloud/
│ └── ConsulRibbonServiceApplicationTests.java
├── consul-user-service/
│ ├── .gitignore
│ ├── .mvn/
│ │ └── wrapper/
│ │ ├── MavenWrapperDownloader.java
│ │ ├── maven-wrapper.jar
│ │ └── maven-wrapper.properties
│ ├── mvnw
│ ├── mvnw.cmd
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── jourwon/
│ │ │ └── springcloud/
│ │ │ ├── ConsulUserServiceApplication.java
│ │ │ ├── controller/
│ │ │ │ └── UserController.java
│ │ │ ├── pojo/
│ │ │ │ ├── Result.java
│ │ │ │ └── User.java
│ │ │ └── service/
│ │ │ ├── UserService.java
│ │ │ └── impl/
│ │ │ └── UserServiceImpl.java
│ │ └── resources/
│ │ ├── application-replica1.yml
│ │ └── application.yml
│ └── test/
│ └── java/
│ └── com/
│ └── jourwon/
│ └── springcloud/
│ └── ConsulUserServiceApplicationTests.java
├── eureka-client/
│ ├── .gitignore
│ ├── .mvn/
│ │ └── wrapper/
│ │ ├── MavenWrapperDownloader.java
│ │ ├── maven-wrapper.jar
│ │ └── maven-wrapper.properties
│ ├── mvnw
│ ├── mvnw.cmd
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── jourwon/
│ │ │ └── springcloud/
│ │ │ └── EurekaClientApplication.java
│ │ └── resources/
│ │ ├── application-replica.yml
│ │ ├── application-security.yml
│ │ └── application.yml
│ └── test/
│ └── java/
│ └── com/
│ └── jourwon/
│ └── springcloud/
│ └── EurekaClientApplicationTests.java
├── eureka-security-server/
│ ├── .gitignore
│ ├── .mvn/
│ │ └── wrapper/
│ │ ├── MavenWrapperDownloader.java
│ │ ├── maven-wrapper.jar
│ │ └── maven-wrapper.properties
│ ├── mvnw
│ ├── mvnw.cmd
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── jourwon/
│ │ │ └── springcloud/
│ │ │ ├── EurekaSecurityServerApplication.java
│ │ │ └── config/
│ │ │ └── WebSecurityConfig.java
│ │ └── resources/
│ │ └── application.yml
│ └── test/
│ └── java/
│ └── com/
│ └── jourwon/
│ └── springcloud/
│ └── EurekaSecurityServerApplicationTests.java
├── eureka-server/
│ ├── .gitignore
│ ├── .mvn/
│ │ └── wrapper/
│ │ ├── MavenWrapperDownloader.java
│ │ ├── maven-wrapper.jar
│ │ └── maven-wrapper.properties
│ ├── mvnw
│ ├── mvnw.cmd
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── jourwon/
│ │ │ └── springcloud/
│ │ │ └── EurekaServerApplication.java
│ │ └── resources/
│ │ ├── application-replica1.yml
│ │ ├── application-replica2.yml
│ │ └── application.yml
│ └── test/
│ └── java/
│ └── com/
│ └── jourwon/
│ └── springcloud/
│ └── EurekaServerApplicationTests.java
├── feign-service/
│ ├── .gitignore
│ ├── .mvn/
│ │ └── wrapper/
│ │ ├── MavenWrapperDownloader.java
│ │ ├── maven-wrapper.jar
│ │ └── maven-wrapper.properties
│ ├── mvnw
│ ├── mvnw.cmd
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── jourwon/
│ │ │ └── springcloud/
│ │ │ ├── FeignServiceApplication.java
│ │ │ ├── config/
│ │ │ │ └── FeignConfig.java
│ │ │ ├── controller/
│ │ │ │ └── UserFeignController.java
│ │ │ ├── pojo/
│ │ │ │ ├── Result.java
│ │ │ │ └── User.java
│ │ │ └── service/
│ │ │ ├── UserService.java
│ │ │ └── impl/
│ │ │ └── UserFallbackService.java
│ │ └── resources/
│ │ └── application.yml
│ └── test/
│ └── java/
│ └── com/
│ └── jourwon/
│ └── springcloud/
│ └── FeignServiceApplicationTests.java
├── hystrix-dashboard/
│ ├── .gitignore
│ ├── .mvn/
│ │ └── wrapper/
│ │ ├── MavenWrapperDownloader.java
│ │ ├── maven-wrapper.jar
│ │ └── maven-wrapper.properties
│ ├── mvnw
│ ├── mvnw.cmd
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── jourwon/
│ │ │ └── springcloud/
│ │ │ └── HystrixDashboardApplication.java
│ │ └── resources/
│ │ └── application.yml
│ └── test/
│ └── java/
│ └── com/
│ └── jourwon/
│ └── springcloud/
│ └── HystrixDashboardApplicationTests.java
├── hystrix-service/
│ ├── .gitignore
│ ├── .mvn/
│ │ └── wrapper/
│ │ ├── MavenWrapperDownloader.java
│ │ ├── maven-wrapper.jar
│ │ └── maven-wrapper.properties
│ ├── mvnw
│ ├── mvnw.cmd
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── jourwon/
│ │ │ └── springcloud/
│ │ │ ├── HystrixServiceApplication.java
│ │ │ ├── config/
│ │ │ │ └── RibbonConfig.java
│ │ │ ├── controller/
│ │ │ │ └── UserHystrixController.java
│ │ │ ├── filter/
│ │ │ │ └── HystrixRequestContextFilter.java
│ │ │ ├── pojo/
│ │ │ │ ├── Result.java
│ │ │ │ └── User.java
│ │ │ └── service/
│ │ │ └── UserService.java
│ │ └── resources/
│ │ ├── application-replica1.yml
│ │ └── application.yml
│ └── test/
│ └── java/
│ └── com/
│ └── jourwon/
│ └── springcloud/
│ └── HystrixServiceApplicationTests.java
├── nacos-config-client/
│ ├── .gitignore
│ ├── .mvn/
│ │ └── wrapper/
│ │ ├── MavenWrapperDownloader.java
│ │ ├── maven-wrapper.jar
│ │ └── maven-wrapper.properties
│ ├── mvnw
│ ├── mvnw.cmd
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── jourwon/
│ │ │ └── springcloud/
│ │ │ ├── NacosConfigClientApplication.java
│ │ │ └── controller/
│ │ │ └── ConfigClientController.java
│ │ └── resources/
│ │ ├── application.yml
│ │ └── bootstrap.yml
│ └── test/
│ └── java/
│ └── com/
│ └── jourwon/
│ └── springcloud/
│ └── NacosConfigClientApplicationTests.java
├── nacos-ribbon-service/
│ ├── .gitignore
│ ├── .mvn/
│ │ └── wrapper/
│ │ ├── MavenWrapperDownloader.java
│ │ ├── maven-wrapper.jar
│ │ └── maven-wrapper.properties
│ ├── mvnw
│ ├── mvnw.cmd
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── jourwon/
│ │ │ └── springcloud/
│ │ │ ├── NacosRibbonServiceApplication.java
│ │ │ ├── config/
│ │ │ │ └── RibbonConfig.java
│ │ │ ├── controller/
│ │ │ │ └── UserRibbonController.java
│ │ │ └── pojo/
│ │ │ ├── Result.java
│ │ │ └── User.java
│ │ └── resources/
│ │ └── application.yml
│ └── test/
│ └── java/
│ └── com/
│ └── jourwon/
│ └── springcloud/
│ └── NacosRibbonServiceApplicationTests.java
├── nacos-user-service/
│ ├── .gitignore
│ ├── .mvn/
│ │ └── wrapper/
│ │ ├── MavenWrapperDownloader.java
│ │ ├── maven-wrapper.jar
│ │ └── maven-wrapper.properties
│ ├── mvnw
│ ├── mvnw.cmd
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── jourwon/
│ │ │ └── springcloud/
│ │ │ ├── NacosUserServiceApplication.java
│ │ │ ├── controller/
│ │ │ │ └── UserController.java
│ │ │ ├── pojo/
│ │ │ │ ├── Result.java
│ │ │ │ └── User.java
│ │ │ └── service/
│ │ │ ├── UserService.java
│ │ │ └── impl/
│ │ │ └── UserServiceImpl.java
│ │ └── resources/
│ │ ├── application-replica.yml
│ │ └── application.yml
│ └── test/
│ └── java/
│ └── com/
│ └── jourwon/
│ └── springcloud/
│ └── NacosUserServiceApplicationTests.java
├── oauth2-client/
│ ├── .gitignore
│ ├── .mvn/
│ │ └── wrapper/
│ │ ├── MavenWrapperDownloader.java
│ │ ├── maven-wrapper.jar
│ │ └── maven-wrapper.properties
│ ├── mvnw
│ ├── mvnw.cmd
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── jourwon/
│ │ │ └── springcloud/
│ │ │ ├── Oauth2ClientApplication.java
│ │ │ ├── config/
│ │ │ │ └── SecurityConfig.java
│ │ │ └── controller/
│ │ │ └── UserController.java
│ │ └── resources/
│ │ └── application.yml
│ └── test/
│ └── java/
│ └── com/
│ └── jourwon/
│ └── springcloud/
│ └── Oauth2ClientApplicationTests.java
├── oauth2-jwt-server/
│ ├── .gitignore
│ ├── .mvn/
│ │ └── wrapper/
│ │ ├── MavenWrapperDownloader.java
│ │ ├── maven-wrapper.jar
│ │ └── maven-wrapper.properties
│ ├── mvnw
│ ├── mvnw.cmd
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── jourwon/
│ │ │ └── springcloud/
│ │ │ ├── Oauth2JwtServerApplication.java
│ │ │ ├── config/
│ │ │ │ ├── AuthorizationServerConfig.java
│ │ │ │ ├── JwtTokenStoreConfig.java
│ │ │ │ ├── RedisTokenStoreConfig.java
│ │ │ │ ├── ResourceServerConfig.java
│ │ │ │ └── SecurityConfig.java
│ │ │ ├── controller/
│ │ │ │ └── UserController.java
│ │ │ ├── enhancer/
│ │ │ │ └── JwtTokenEnhancer.java
│ │ │ ├── pojo/
│ │ │ │ └── User.java
│ │ │ └── service/
│ │ │ └── UserService.java
│ │ └── resources/
│ │ └── application.yml
│ └── test/
│ └── java/
│ └── com/
│ └── jourwon/
│ └── springcloud/
│ └── Oauth2JwtServerApplicationTests.java
├── oauth2-server/
│ ├── .gitignore
│ ├── .mvn/
│ │ └── wrapper/
│ │ ├── MavenWrapperDownloader.java
│ │ ├── maven-wrapper.jar
│ │ └── maven-wrapper.properties
│ ├── mvnw
│ ├── mvnw.cmd
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── jourwon/
│ │ │ └── springcloud/
│ │ │ ├── Oauth2ServerApplication.java
│ │ │ ├── config/
│ │ │ │ ├── AuthorizationServerConfig.java
│ │ │ │ ├── ResourceServerConfig.java
│ │ │ │ └── SecurityConfig.java
│ │ │ ├── controller/
│ │ │ │ └── UserController.java
│ │ │ ├── pojo/
│ │ │ │ └── User.java
│ │ │ └── service/
│ │ │ └── UserService.java
│ │ └── resources/
│ │ └── application.yml
│ └── test/
│ └── java/
│ └── com/
│ └── jourwon/
│ └── springcloud/
│ └── Oauth2ServerApplicationTests.java
├── pom.xml
├── ribbon-service/
│ ├── .gitignore
│ ├── .mvn/
│ │ └── wrapper/
│ │ ├── MavenWrapperDownloader.java
│ │ ├── maven-wrapper.jar
│ │ └── maven-wrapper.properties
│ ├── mvnw
│ ├── mvnw.cmd
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── jourwon/
│ │ │ └── springcloud/
│ │ │ ├── RibbonServiceApplication.java
│ │ │ ├── config/
│ │ │ │ └── RibbonConfig.java
│ │ │ ├── controller/
│ │ │ │ └── UserRibbonController.java
│ │ │ └── pojo/
│ │ │ ├── Result.java
│ │ │ └── User.java
│ │ └── resources/
│ │ └── application.yml
│ └── test/
│ └── java/
│ └── com/
│ └── jourwon/
│ └── springcloud/
│ └── RibbonServiceApplicationTests.java
├── seata-account-service/
│ ├── .gitignore
│ ├── .mvn/
│ │ └── wrapper/
│ │ ├── MavenWrapperDownloader.java
│ │ ├── maven-wrapper.jar
│ │ └── maven-wrapper.properties
│ ├── mvnw
│ ├── mvnw.cmd
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── jourwon/
│ │ │ └── springcloud/
│ │ │ ├── SeataAccountServiceApplication.java
│ │ │ ├── config/
│ │ │ │ └── DataSourceProxyConfig.java
│ │ │ ├── controller/
│ │ │ │ └── AccountController.java
│ │ │ ├── mapper/
│ │ │ │ └── AccountMapper.java
│ │ │ ├── pojo/
│ │ │ │ ├── Account.java
│ │ │ │ └── Result.java
│ │ │ └── service/
│ │ │ ├── AccountService.java
│ │ │ └── impl/
│ │ │ └── AccountServiceImpl.java
│ │ └── resources/
│ │ ├── account.sql
│ │ ├── application.yml
│ │ ├── file.conf
│ │ ├── mapper/
│ │ │ └── AccountMapper.xml
│ │ └── registry.conf
│ └── test/
│ └── java/
│ └── com/
│ └── jourwon/
│ └── springcloud/
│ └── SeataAccountServiceApplicationTests.java
├── seata-order-service/
│ ├── .gitignore
│ ├── .mvn/
│ │ └── wrapper/
│ │ ├── MavenWrapperDownloader.java
│ │ ├── maven-wrapper.jar
│ │ └── maven-wrapper.properties
│ ├── mvnw
│ ├── mvnw.cmd
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── jourwon/
│ │ │ └── springcloud/
│ │ │ ├── SeataOrderServiceApplication.java
│ │ │ ├── config/
│ │ │ │ └── DataSourceProxyConfig.java
│ │ │ ├── controller/
│ │ │ │ └── OrderController.java
│ │ │ ├── mapper/
│ │ │ │ └── OrderMapper.java
│ │ │ ├── pojo/
│ │ │ │ ├── Order.java
│ │ │ │ └── Result.java
│ │ │ └── service/
│ │ │ ├── AccountService.java
│ │ │ ├── OrderService.java
│ │ │ ├── StorageService.java
│ │ │ └── impl/
│ │ │ └── OrderServiceImpl.java
│ │ └── resources/
│ │ ├── application.yml
│ │ ├── file.conf
│ │ ├── mapper/
│ │ │ └── OrderMapper.xml
│ │ ├── order.sql
│ │ └── registry.conf
│ └── test/
│ └── java/
│ └── com/
│ └── jourwon/
│ └── springcloud/
│ └── SeataOrderServiceApplicationTests.java
├── seata-storage-service/
│ ├── .gitignore
│ ├── .mvn/
│ │ └── wrapper/
│ │ ├── MavenWrapperDownloader.java
│ │ ├── maven-wrapper.jar
│ │ └── maven-wrapper.properties
│ ├── mvnw
│ ├── mvnw.cmd
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── jourwon/
│ │ │ └── springcloud/
│ │ │ ├── SeataStorageServiceApplication.java
│ │ │ ├── config/
│ │ │ │ └── DataSourceProxyConfig.java
│ │ │ ├── controller/
│ │ │ │ └── StorageController.java
│ │ │ ├── mapper/
│ │ │ │ └── StorageMapper.java
│ │ │ ├── pojo/
│ │ │ │ ├── Result.java
│ │ │ │ └── Storage.java
│ │ │ └── service/
│ │ │ ├── StorageService.java
│ │ │ └── impl/
│ │ │ └── StorageServiceImpl.java
│ │ └── resources/
│ │ ├── application.yml
│ │ ├── file.conf
│ │ ├── mapper/
│ │ │ └── StorageMapper.xml
│ │ ├── registry.conf
│ │ └── storage.sql
│ └── test/
│ └── java/
│ └── com/
│ └── jourwon/
│ └── springcloud/
│ └── SeataStorageServiceApplicationTests.java
├── sentinel-service/
│ ├── .gitignore
│ ├── .mvn/
│ │ └── wrapper/
│ │ ├── MavenWrapperDownloader.java
│ │ ├── maven-wrapper.jar
│ │ └── maven-wrapper.properties
│ ├── mvnw
│ ├── mvnw.cmd
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── jourwon/
│ │ │ └── springcloud/
│ │ │ ├── SentinelServiceApplication.java
│ │ │ ├── config/
│ │ │ │ └── RibbonConfig.java
│ │ │ ├── controller/
│ │ │ │ ├── CircleBreakerController.java
│ │ │ │ ├── RateLimitController.java
│ │ │ │ └── UserFeignController.java
│ │ │ ├── handler/
│ │ │ │ └── CustomBlockHandler.java
│ │ │ ├── pojo/
│ │ │ │ ├── Result.java
│ │ │ │ └── User.java
│ │ │ └── service/
│ │ │ ├── UserService.java
│ │ │ └── impl/
│ │ │ └── UserFallbackService.java
│ │ └── resources/
│ │ └── application.yml
│ └── test/
│ └── java/
│ └── com/
│ └── jourwon/
│ └── springcloud/
│ └── SentinelServiceApplicationTests.java
├── turbine-service/
│ ├── .gitignore
│ ├── .mvn/
│ │ └── wrapper/
│ │ ├── MavenWrapperDownloader.java
│ │ ├── maven-wrapper.jar
│ │ └── maven-wrapper.properties
│ ├── mvnw
│ ├── mvnw.cmd
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── jourwon/
│ │ │ └── springcloud/
│ │ │ └── TurbineServiceApplication.java
│ │ └── resources/
│ │ └── application.yml
│ └── test/
│ └── java/
│ └── com/
│ └── jourwon/
│ └── springcloud/
│ └── TurbineServiceApplicationTests.java
├── user-service/
│ ├── .gitignore
│ ├── .mvn/
│ │ └── wrapper/
│ │ ├── MavenWrapperDownloader.java
│ │ ├── maven-wrapper.jar
│ │ └── maven-wrapper.properties
│ ├── mvnw
│ ├── mvnw.cmd
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── jourwon/
│ │ │ └── springcloud/
│ │ │ ├── UserServiceApplication.java
│ │ │ ├── controller/
│ │ │ │ └── UserController.java
│ │ │ ├── pojo/
│ │ │ │ ├── Result.java
│ │ │ │ └── User.java
│ │ │ └── service/
│ │ │ ├── UserService.java
│ │ │ └── impl/
│ │ │ └── UserServiceImpl.java
│ │ └── resources/
│ │ ├── application-replica.yml
│ │ └── application.yml
│ └── test/
│ └── java/
│ └── com/
│ └── jourwon/
│ └── springcloud/
│ └── UserServiceApplicationTests.java
└── zuul-proxy/
├── .gitignore
├── .mvn/
│ └── wrapper/
│ ├── MavenWrapperDownloader.java
│ ├── maven-wrapper.jar
│ └── maven-wrapper.properties
├── mvnw
├── mvnw.cmd
├── pom.xml
└── src/
├── main/
│ ├── java/
│ │ └── com/
│ │ └── jourwon/
│ │ └── springcloud/
│ │ ├── ZuulProxyApplication.java
│ │ └── filter/
│ │ └── PreLogFilter.java
│ └── resources/
│ └── application.yml
└── test/
└── java/
└── com/
└── jourwon/
└── springcloud/
└── ZuulProxyApplicationTests.java
SYMBOL INDEX (766 symbols across 195 files)
FILE: admin-client/.mvn/wrapper/MavenWrapperDownloader.java
class MavenWrapperDownloader (line 22) | public class MavenWrapperDownloader {
method main (line 49) | public static void main(String args[]) {
method downloadFileFromURL (line 98) | private static void downloadFileFromURL(String urlString, File destina...
FILE: admin-client/src/main/java/com/jourwon/springcloud/AdminClientApplication.java
class AdminClientApplication (line 13) | @EnableDiscoveryClient
method main (line 17) | public static void main(String[] args) {
FILE: admin-client/src/main/java/com/jourwon/springcloud/controller/UserController.java
class UserController (line 19) | @RestController
method insert (line 28) | @PostMapping("/insert")
method getUser (line 34) | @GetMapping("/{id}")
method listUsersByIds (line 41) | @GetMapping("/listUsersByIds")
method getByUsername (line 48) | @GetMapping("/getByUsername")
method update (line 54) | @PostMapping("/update")
method delete (line 60) | @PostMapping("/delete/{id}")
FILE: admin-client/src/main/java/com/jourwon/springcloud/pojo/Result.java
class Result (line 9) | public class Result<T> {
method Result (line 17) | public Result() {
method Result (line 20) | public Result(T data, String message, int code) {
method Result (line 26) | public Result(String message, Integer code) {
method Result (line 30) | public Result(T data) {
method getData (line 34) | public T getData() {
method setData (line 38) | public void setData(T data) {
method getMessage (line 42) | public String getMessage() {
method setMessage (line 46) | public void setMessage(String message) {
method getCode (line 50) | public int getCode() {
method setCode (line 54) | public void setCode(int code) {
FILE: admin-client/src/main/java/com/jourwon/springcloud/pojo/User.java
class User (line 9) | public class User {
method User (line 15) | public User() {
method User (line 18) | public User(Long id, String username, String password) {
method getId (line 24) | public Long getId() {
method setId (line 28) | public void setId(Long id) {
method getUsername (line 32) | public String getUsername() {
method setUsername (line 36) | public void setUsername(String username) {
method getPassword (line 40) | public String getPassword() {
method setPassword (line 44) | public void setPassword(String password) {
FILE: admin-client/src/main/java/com/jourwon/springcloud/service/UserService.java
type UserService (line 13) | public interface UserService {
method insert (line 15) | void insert(User user);
method getUser (line 17) | User getUser(Long id);
method update (line 19) | void update(User user);
method delete (line 21) | void delete(Long id);
method getByUsername (line 23) | User getByUsername(String username);
method listUsersByIds (line 25) | List<User> listUsersByIds(List<Long> ids);
FILE: admin-client/src/main/java/com/jourwon/springcloud/service/impl/UserServiceImpl.java
class UserServiceImpl (line 19) | @Service
method insert (line 24) | @Override
method getUser (line 29) | @Override
method update (line 38) | @Override
method delete (line 46) | @Override
method getByUsername (line 54) | @Override
method listUsersByIds (line 63) | @Override
method initData (line 68) | @PostConstruct
FILE: admin-client/src/test/java/com/jourwon/springcloud/AdminClientApplicationTests.java
class AdminClientApplicationTests (line 6) | @SpringBootTest
method contextLoads (line 9) | @Test
FILE: admin-security-server/.mvn/wrapper/MavenWrapperDownloader.java
class MavenWrapperDownloader (line 22) | public class MavenWrapperDownloader {
method main (line 49) | public static void main(String args[]) {
method downloadFileFromURL (line 98) | private static void downloadFileFromURL(String urlString, File destina...
FILE: admin-security-server/src/main/java/com/jourwon/springcloud/AdminSecurityServerApplication.java
class AdminSecurityServerApplication (line 14) | @EnableAdminServer
method main (line 19) | public static void main(String[] args) {
FILE: admin-security-server/src/main/java/com/jourwon/springcloud/config/SecuritySecureConfig.java
class SecuritySecureConfig (line 16) | @Configuration
method SecuritySecureConfig (line 21) | public SecuritySecureConfig(AdminServerProperties adminServerPropertie...
method configure (line 25) | @Override
FILE: admin-security-server/src/test/java/com/jourwon/springcloud/AdminSecurityServerApplicationTests.java
class AdminSecurityServerApplicationTests (line 6) | @SpringBootTest
method contextLoads (line 9) | @Test
FILE: admin-server/.mvn/wrapper/MavenWrapperDownloader.java
class MavenWrapperDownloader (line 22) | public class MavenWrapperDownloader {
method main (line 49) | public static void main(String args[]) {
method downloadFileFromURL (line 98) | private static void downloadFileFromURL(String urlString, File destina...
FILE: admin-server/src/main/java/com/jourwon/springcloud/AdminServerApplication.java
class AdminServerApplication (line 14) | @EnableDiscoveryClient
method main (line 19) | public static void main(String[] args) {
FILE: admin-server/src/test/java/com/jourwon/springcloud/AdminServerApplicationTests.java
class AdminServerApplicationTests (line 6) | @SpringBootTest
method contextLoads (line 9) | @Test
FILE: api-gateway/.mvn/wrapper/MavenWrapperDownloader.java
class MavenWrapperDownloader (line 22) | public class MavenWrapperDownloader {
method main (line 49) | public static void main(String args[]) {
method downloadFileFromURL (line 98) | private static void downloadFileFromURL(String urlString, File destina...
FILE: api-gateway/src/main/java/com/jourwon/springcloud/ApiGatewayApplication.java
class ApiGatewayApplication (line 13) | @EnableDiscoveryClient
method main (line 17) | public static void main(String[] args) {
FILE: api-gateway/src/main/java/com/jourwon/springcloud/config/GatewayConfig.java
class GatewayConfig (line 11) | @Configuration
FILE: api-gateway/src/main/java/com/jourwon/springcloud/config/RedisRateLimiterConfig.java
class RedisRateLimiterConfig (line 14) | @Configuration
method userKeyResolver (line 17) | @Bean
method ipKeyResolver (line 23) | @Bean
FILE: api-gateway/src/main/java/com/jourwon/springcloud/controller/FallbackController.java
class FallbackController (line 15) | @RestController
method fallback (line 18) | @GetMapping("/fallback")
FILE: api-gateway/src/test/java/com/jourwon/springcloud/ApiGatewayApplicationTests.java
class ApiGatewayApplicationTests (line 6) | @SpringBootTest
method contextLoads (line 9) | @Test
FILE: config-client/.mvn/wrapper/MavenWrapperDownloader.java
class MavenWrapperDownloader (line 22) | public class MavenWrapperDownloader {
method main (line 49) | public static void main(String args[]) {
method downloadFileFromURL (line 98) | private static void downloadFileFromURL(String urlString, File destina...
FILE: config-client/src/main/java/com/jourwon/springcloud/ConfigClientApplication.java
class ConfigClientApplication (line 13) | @EnableDiscoveryClient
method main (line 17) | public static void main(String[] args) {
FILE: config-client/src/main/java/com/jourwon/springcloud/controller/ConfigClientController.java
class ConfigClientController (line 14) | @RefreshScope
method getConfigInfo (line 21) | @GetMapping("/configInfo")
FILE: config-client/src/test/java/com/jourwon/springcloud/ConfigClientApplicationTests.java
class ConfigClientApplicationTests (line 6) | @SpringBootTest
method contextLoads (line 9) | @Test
FILE: config-security-server/.mvn/wrapper/MavenWrapperDownloader.java
class MavenWrapperDownloader (line 22) | public class MavenWrapperDownloader {
method main (line 49) | public static void main(String args[]) {
method downloadFileFromURL (line 98) | private static void downloadFileFromURL(String urlString, File destina...
FILE: config-security-server/src/main/java/com/jourwon/springcloud/ConfigSecurityServerApplication.java
class ConfigSecurityServerApplication (line 14) | @EnableConfigServer
method main (line 19) | public static void main(String[] args) {
FILE: config-security-server/src/test/java/com/jourwon/springcloud/ConfigSecurityServerApplicationTests.java
class ConfigSecurityServerApplicationTests (line 6) | @SpringBootTest
method contextLoads (line 9) | @Test
FILE: config-server/.mvn/wrapper/MavenWrapperDownloader.java
class MavenWrapperDownloader (line 22) | public class MavenWrapperDownloader {
method main (line 49) | public static void main(String args[]) {
method downloadFileFromURL (line 98) | private static void downloadFileFromURL(String urlString, File destina...
FILE: config-server/src/main/java/com/jourwon/springcloud/ConfigServerApplication.java
class ConfigServerApplication (line 14) | @EnableConfigServer
method main (line 19) | public static void main(String[] args) {
FILE: config-server/src/test/java/com/jourwon/springcloud/ConfigServerApplicationTests.java
class ConfigServerApplicationTests (line 6) | @SpringBootTest
method contextLoads (line 9) | @Test
FILE: consul-config-client/.mvn/wrapper/MavenWrapperDownloader.java
class MavenWrapperDownloader (line 22) | public class MavenWrapperDownloader {
method main (line 49) | public static void main(String args[]) {
method downloadFileFromURL (line 98) | private static void downloadFileFromURL(String urlString, File destina...
FILE: consul-config-client/src/main/java/com/jourwon/springcloud/ConsulConfigClientApplication.java
class ConsulConfigClientApplication (line 13) | @EnableDiscoveryClient
method main (line 17) | public static void main(String[] args) {
FILE: consul-config-client/src/main/java/com/jourwon/springcloud/controller/ConfigClientController.java
class ConfigClientController (line 14) | @RefreshScope
method getConfigInfo (line 21) | @GetMapping("/configInfo")
FILE: consul-config-client/src/test/java/com/jourwon/springcloud/ConsulConfigClientApplicationTests.java
class ConsulConfigClientApplicationTests (line 6) | @SpringBootTest
method contextLoads (line 9) | @Test
FILE: consul-ribbon-service/.mvn/wrapper/MavenWrapperDownloader.java
class MavenWrapperDownloader (line 22) | public class MavenWrapperDownloader {
method main (line 49) | public static void main(String args[]) {
method downloadFileFromURL (line 98) | private static void downloadFileFromURL(String urlString, File destina...
FILE: consul-ribbon-service/src/main/java/com/jourwon/springcloud/ConsulRibbonServiceApplication.java
class ConsulRibbonServiceApplication (line 13) | @EnableDiscoveryClient
method main (line 17) | public static void main(String[] args) {
FILE: consul-ribbon-service/src/main/java/com/jourwon/springcloud/config/RibbonConfig.java
class RibbonConfig (line 14) | @Configuration
method restTemplate (line 17) | @Bean
FILE: consul-ribbon-service/src/main/java/com/jourwon/springcloud/controller/UserRibbonController.java
class UserRibbonController (line 17) | @RestController
method getUser (line 27) | @GetMapping("/{id}")
method getByUsername (line 32) | @GetMapping("/getByUsername")
method getEntityByUsername (line 37) | @GetMapping("/getEntityByUsername")
method insert (line 47) | @PostMapping("/insert")
method update (line 52) | @PostMapping("/update")
method delete (line 57) | @PostMapping("/delete/{id}")
FILE: consul-ribbon-service/src/main/java/com/jourwon/springcloud/pojo/Result.java
class Result (line 9) | public class Result<T> {
method Result (line 17) | public Result() {
method Result (line 20) | public Result(T data, String message, int code) {
method Result (line 26) | public Result(String message, Integer code) {
method Result (line 30) | public Result(T data) {
method getData (line 34) | public T getData() {
method setData (line 38) | public void setData(T data) {
method getMessage (line 42) | public String getMessage() {
method setMessage (line 46) | public void setMessage(String message) {
method getCode (line 50) | public int getCode() {
method setCode (line 54) | public void setCode(int code) {
FILE: consul-ribbon-service/src/main/java/com/jourwon/springcloud/pojo/User.java
class User (line 9) | public class User {
method User (line 15) | public User() {
method User (line 18) | public User(Long id, String username, String password) {
method getId (line 24) | public Long getId() {
method setId (line 28) | public void setId(Long id) {
method getUsername (line 32) | public String getUsername() {
method setUsername (line 36) | public void setUsername(String username) {
method getPassword (line 40) | public String getPassword() {
method setPassword (line 44) | public void setPassword(String password) {
FILE: consul-ribbon-service/src/test/java/com/jourwon/springcloud/ConsulRibbonServiceApplicationTests.java
class ConsulRibbonServiceApplicationTests (line 6) | @SpringBootTest
method contextLoads (line 9) | @Test
FILE: consul-user-service/.mvn/wrapper/MavenWrapperDownloader.java
class MavenWrapperDownloader (line 22) | public class MavenWrapperDownloader {
method main (line 49) | public static void main(String args[]) {
method downloadFileFromURL (line 98) | private static void downloadFileFromURL(String urlString, File destina...
FILE: consul-user-service/src/main/java/com/jourwon/springcloud/ConsulUserServiceApplication.java
class ConsulUserServiceApplication (line 13) | @EnableDiscoveryClient
method main (line 17) | public static void main(String[] args) {
FILE: consul-user-service/src/main/java/com/jourwon/springcloud/controller/UserController.java
class UserController (line 19) | @RestController
method insert (line 28) | @PostMapping("/insert")
method getUser (line 34) | @GetMapping("/{id}")
method listUsersByIds (line 41) | @GetMapping("/listUsersByIds")
method getByUsername (line 48) | @GetMapping("/getByUsername")
method update (line 54) | @PostMapping("/update")
method delete (line 60) | @PostMapping("/delete/{id}")
FILE: consul-user-service/src/main/java/com/jourwon/springcloud/pojo/Result.java
class Result (line 9) | public class Result<T> {
method Result (line 17) | public Result() {
method Result (line 20) | public Result(T data, String message, int code) {
method Result (line 26) | public Result(String message, Integer code) {
method Result (line 30) | public Result(T data) {
method getData (line 34) | public T getData() {
method setData (line 38) | public void setData(T data) {
method getMessage (line 42) | public String getMessage() {
method setMessage (line 46) | public void setMessage(String message) {
method getCode (line 50) | public int getCode() {
method setCode (line 54) | public void setCode(int code) {
FILE: consul-user-service/src/main/java/com/jourwon/springcloud/pojo/User.java
class User (line 9) | public class User {
method User (line 15) | public User() {
method User (line 18) | public User(Long id, String username, String password) {
method getId (line 24) | public Long getId() {
method setId (line 28) | public void setId(Long id) {
method getUsername (line 32) | public String getUsername() {
method setUsername (line 36) | public void setUsername(String username) {
method getPassword (line 40) | public String getPassword() {
method setPassword (line 44) | public void setPassword(String password) {
FILE: consul-user-service/src/main/java/com/jourwon/springcloud/service/UserService.java
type UserService (line 13) | public interface UserService {
method insert (line 15) | void insert(User user);
method getUser (line 17) | User getUser(Long id);
method update (line 19) | void update(User user);
method delete (line 21) | void delete(Long id);
method getByUsername (line 23) | User getByUsername(String username);
method listUsersByIds (line 25) | List<User> listUsersByIds(List<Long> ids);
FILE: consul-user-service/src/main/java/com/jourwon/springcloud/service/impl/UserServiceImpl.java
class UserServiceImpl (line 19) | @Service
method insert (line 24) | @Override
method getUser (line 29) | @Override
method update (line 38) | @Override
method delete (line 46) | @Override
method getByUsername (line 54) | @Override
method listUsersByIds (line 63) | @Override
method initData (line 68) | @PostConstruct
FILE: consul-user-service/src/test/java/com/jourwon/springcloud/ConsulUserServiceApplicationTests.java
class ConsulUserServiceApplicationTests (line 6) | @SpringBootTest
method contextLoads (line 9) | @Test
FILE: eureka-client/.mvn/wrapper/MavenWrapperDownloader.java
class MavenWrapperDownloader (line 22) | public class MavenWrapperDownloader {
method main (line 49) | public static void main(String args[]) {
method downloadFileFromURL (line 98) | private static void downloadFileFromURL(String urlString, File destina...
FILE: eureka-client/src/main/java/com/jourwon/springcloud/EurekaClientApplication.java
class EurekaClientApplication (line 13) | @EnableDiscoveryClient
method main (line 17) | public static void main(String[] args) {
FILE: eureka-client/src/test/java/com/jourwon/springcloud/EurekaClientApplicationTests.java
class EurekaClientApplicationTests (line 6) | @SpringBootTest
method contextLoads (line 9) | @Test
FILE: eureka-security-server/.mvn/wrapper/MavenWrapperDownloader.java
class MavenWrapperDownloader (line 22) | public class MavenWrapperDownloader {
method main (line 49) | public static void main(String args[]) {
method downloadFileFromURL (line 98) | private static void downloadFileFromURL(String urlString, File destina...
FILE: eureka-security-server/src/main/java/com/jourwon/springcloud/EurekaSecurityServerApplication.java
class EurekaSecurityServerApplication (line 13) | @EnableEurekaServer
method main (line 17) | public static void main(String[] args) {
FILE: eureka-security-server/src/main/java/com/jourwon/springcloud/config/WebSecurityConfig.java
class WebSecurityConfig (line 13) | @EnableWebSecurity
method configure (line 16) | @Override
FILE: eureka-security-server/src/test/java/com/jourwon/springcloud/EurekaSecurityServerApplicationTests.java
class EurekaSecurityServerApplicationTests (line 6) | @SpringBootTest
method contextLoads (line 9) | @Test
FILE: eureka-server/.mvn/wrapper/MavenWrapperDownloader.java
class MavenWrapperDownloader (line 22) | public class MavenWrapperDownloader {
method main (line 49) | public static void main(String args[]) {
method downloadFileFromURL (line 98) | private static void downloadFileFromURL(String urlString, File destina...
FILE: eureka-server/src/main/java/com/jourwon/springcloud/EurekaServerApplication.java
class EurekaServerApplication (line 14) | @EnableEurekaServer
method main (line 18) | public static void main(String[] args) {
FILE: eureka-server/src/test/java/com/jourwon/springcloud/EurekaServerApplicationTests.java
class EurekaServerApplicationTests (line 6) | @SpringBootTest
method contextLoads (line 9) | @Test
FILE: feign-service/.mvn/wrapper/MavenWrapperDownloader.java
class MavenWrapperDownloader (line 22) | public class MavenWrapperDownloader {
method main (line 49) | public static void main(String args[]) {
method downloadFileFromURL (line 98) | private static void downloadFileFromURL(String urlString, File destina...
FILE: feign-service/src/main/java/com/jourwon/springcloud/FeignServiceApplication.java
class FeignServiceApplication (line 15) | @EnableFeignClients
method main (line 20) | public static void main(String[] args) {
FILE: feign-service/src/main/java/com/jourwon/springcloud/config/FeignConfig.java
class FeignConfig (line 13) | @Configuration
method level (line 16) | @Bean
FILE: feign-service/src/main/java/com/jourwon/springcloud/controller/UserFeignController.java
class UserFeignController (line 17) | @RestController
method insert (line 24) | @PostMapping("/insert")
method getUser (line 29) | @GetMapping("/{id}")
method listUsersByIds (line 34) | @GetMapping("/listUsersByIds")
method getByUsername (line 39) | @GetMapping("/getByUsername")
method update (line 44) | @PostMapping("/update")
method delete (line 49) | @PostMapping("/delete/{id}")
FILE: feign-service/src/main/java/com/jourwon/springcloud/pojo/Result.java
class Result (line 9) | public class Result<T> {
method Result (line 17) | public Result() {
method Result (line 20) | public Result(T data, String message, int code) {
method Result (line 26) | public Result(String message, Integer code) {
method Result (line 30) | public Result(T data) {
method getData (line 34) | public T getData() {
method setData (line 38) | public void setData(T data) {
method getMessage (line 42) | public String getMessage() {
method setMessage (line 46) | public void setMessage(String message) {
method getCode (line 50) | public int getCode() {
method setCode (line 54) | public void setCode(int code) {
FILE: feign-service/src/main/java/com/jourwon/springcloud/pojo/User.java
class User (line 9) | public class User {
method User (line 15) | public User() {
method User (line 18) | public User(Long id, String username, String password) {
method getId (line 24) | public Long getId() {
method setId (line 28) | public void setId(Long id) {
method getUsername (line 32) | public String getUsername() {
method setUsername (line 36) | public void setUsername(String username) {
method getPassword (line 40) | public String getPassword() {
method setPassword (line 44) | public void setPassword(String password) {
FILE: feign-service/src/main/java/com/jourwon/springcloud/service/UserService.java
type UserService (line 18) | @FeignClient(value = "user-service", fallback = UserFallbackService.class)
method insert (line 21) | @PostMapping("/user/insert")
method getUser (line 24) | @GetMapping("/user/{id}")
method listUsersByIds (line 27) | @GetMapping("/user/listUsersByIds")
method getByUsername (line 30) | @GetMapping("/user/getByUsername")
method update (line 33) | @PostMapping("/user/update")
method delete (line 36) | @PostMapping("/user/delete/{id}")
FILE: feign-service/src/main/java/com/jourwon/springcloud/service/impl/UserFallbackService.java
class UserFallbackService (line 16) | @Component
method insert (line 19) | @Override
method getUser (line 24) | @Override
method listUsersByIds (line 29) | @Override
method getByUsername (line 34) | @Override
method update (line 39) | @Override
method delete (line 44) | @Override
FILE: feign-service/src/test/java/com/jourwon/springcloud/FeignServiceApplicationTests.java
class FeignServiceApplicationTests (line 6) | @SpringBootTest
method contextLoads (line 9) | @Test
FILE: hystrix-dashboard/.mvn/wrapper/MavenWrapperDownloader.java
class MavenWrapperDownloader (line 22) | public class MavenWrapperDownloader {
method main (line 49) | public static void main(String args[]) {
method downloadFileFromURL (line 98) | private static void downloadFileFromURL(String urlString, File destina...
FILE: hystrix-dashboard/src/main/java/com/jourwon/springcloud/HystrixDashboardApplication.java
class HystrixDashboardApplication (line 14) | @EnableHystrixDashboard
method main (line 19) | public static void main(String[] args) {
FILE: hystrix-dashboard/src/test/java/com/jourwon/springcloud/HystrixDashboardApplicationTests.java
class HystrixDashboardApplicationTests (line 6) | @SpringBootTest
method contextLoads (line 9) | @Test
FILE: hystrix-service/.mvn/wrapper/MavenWrapperDownloader.java
class MavenWrapperDownloader (line 22) | public class MavenWrapperDownloader {
method main (line 49) | public static void main(String args[]) {
method downloadFileFromURL (line 98) | private static void downloadFileFromURL(String urlString, File destina...
FILE: hystrix-service/src/main/java/com/jourwon/springcloud/HystrixServiceApplication.java
class HystrixServiceApplication (line 14) | @EnableCircuitBreaker
method main (line 19) | public static void main(String[] args) {
FILE: hystrix-service/src/main/java/com/jourwon/springcloud/config/RibbonConfig.java
class RibbonConfig (line 14) | @Configuration
method restTemplate (line 17) | @Bean
FILE: hystrix-service/src/main/java/com/jourwon/springcloud/controller/UserHystrixController.java
class UserHystrixController (line 22) | @RestController
method testFallback (line 29) | @GetMapping("/testFallback/{id}")
method testException (line 34) | @GetMapping("/testException/{id}")
method getUserCommand (line 39) | @GetMapping("/testCommand/{id}")
method testCache (line 44) | @GetMapping("/testCache/{id}")
method testRemoveCache (line 52) | @GetMapping("/testRemoveCache/{id}")
method testCollapser (line 60) | @GetMapping("/testCollapser")
FILE: hystrix-service/src/main/java/com/jourwon/springcloud/filter/HystrixRequestContextFilter.java
class HystrixRequestContextFilter (line 16) | @Component
method doFilter (line 20) | @Override
FILE: hystrix-service/src/main/java/com/jourwon/springcloud/pojo/Result.java
class Result (line 9) | public class Result<T> {
method Result (line 17) | public Result() {
method Result (line 20) | public Result(T data, String message, int code) {
method Result (line 26) | public Result(String message, Integer code) {
method Result (line 30) | public Result(T data) {
method getData (line 34) | public T getData() {
method setData (line 38) | public void setData(T data) {
method getMessage (line 42) | public String getMessage() {
method setMessage (line 46) | public void setMessage(String message) {
method getCode (line 50) | public int getCode() {
method setCode (line 54) | public void setCode(int code) {
FILE: hystrix-service/src/main/java/com/jourwon/springcloud/pojo/User.java
class User (line 9) | public class User {
method User (line 15) | public User() {
method User (line 18) | public User(Long id, String username, String password) {
method getId (line 24) | public Long getId() {
method setId (line 28) | public void setId(Long id) {
method getUsername (line 32) | public String getUsername() {
method setUsername (line 36) | public void setUsername(String username) {
method getPassword (line 40) | public String getPassword() {
method setPassword (line 44) | public void setPassword(String password) {
FILE: hystrix-service/src/main/java/com/jourwon/springcloud/service/UserService.java
class UserService (line 31) | @Service
method getUser (line 42) | @HystrixCommand(fallbackMethod = "fallbackMethod1")
method fallbackMethod1 (line 53) | public Result fallbackMethod1(@PathVariable Long id) {
method getUserException (line 57) | @HystrixCommand(fallbackMethod = "fallbackMethod2", ignoreExceptions =...
method fallbackMethod2 (line 68) | public Result fallbackMethod2(@PathVariable Long id, Throwable e) {
method getUserCommand (line 73) | @HystrixCommand(fallbackMethod = "fallbackMethod1",
method getUserCache (line 82) | @CacheResult(cacheKeyMethod = "getCacheKey")
method getCacheKey (line 94) | public String getCacheKey(Long id) {
method removeCache (line 98) | @HystrixCommand
method getUserFuture (line 105) | @HystrixCollapser(batchMethod = "listUsersByIds",collapserProperties = {
method listUsersByIds (line 121) | @HystrixCommand
FILE: hystrix-service/src/test/java/com/jourwon/springcloud/HystrixServiceApplicationTests.java
class HystrixServiceApplicationTests (line 6) | @SpringBootTest
method contextLoads (line 9) | @Test
FILE: nacos-config-client/.mvn/wrapper/MavenWrapperDownloader.java
class MavenWrapperDownloader (line 22) | public class MavenWrapperDownloader {
method main (line 49) | public static void main(String args[]) {
method downloadFileFromURL (line 98) | private static void downloadFileFromURL(String urlString, File destina...
FILE: nacos-config-client/src/main/java/com/jourwon/springcloud/NacosConfigClientApplication.java
class NacosConfigClientApplication (line 13) | @EnableDiscoveryClient
method main (line 17) | public static void main(String[] args) {
FILE: nacos-config-client/src/main/java/com/jourwon/springcloud/controller/ConfigClientController.java
class ConfigClientController (line 15) | @RefreshScope
method getConfigInfo (line 22) | @GetMapping("/configInfo")
FILE: nacos-config-client/src/test/java/com/jourwon/springcloud/NacosConfigClientApplicationTests.java
class NacosConfigClientApplicationTests (line 6) | @SpringBootTest
method contextLoads (line 9) | @Test
FILE: nacos-ribbon-service/.mvn/wrapper/MavenWrapperDownloader.java
class MavenWrapperDownloader (line 22) | public class MavenWrapperDownloader {
method main (line 49) | public static void main(String args[]) {
method downloadFileFromURL (line 98) | private static void downloadFileFromURL(String urlString, File destina...
FILE: nacos-ribbon-service/src/main/java/com/jourwon/springcloud/NacosRibbonServiceApplication.java
class NacosRibbonServiceApplication (line 13) | @EnableDiscoveryClient
method main (line 17) | public static void main(String[] args) {
FILE: nacos-ribbon-service/src/main/java/com/jourwon/springcloud/config/RibbonConfig.java
class RibbonConfig (line 14) | @Configuration
method restTemplate (line 17) | @Bean
FILE: nacos-ribbon-service/src/main/java/com/jourwon/springcloud/controller/UserRibbonController.java
class UserRibbonController (line 17) | @RestController
method getUser (line 27) | @GetMapping("/{id}")
method getByUsername (line 32) | @GetMapping("/getByUsername")
method getEntityByUsername (line 37) | @GetMapping("/getEntityByUsername")
method insert (line 47) | @PostMapping("/insert")
method update (line 52) | @PostMapping("/update")
method delete (line 57) | @PostMapping("/delete/{id}")
FILE: nacos-ribbon-service/src/main/java/com/jourwon/springcloud/pojo/Result.java
class Result (line 9) | public class Result<T> {
method Result (line 17) | public Result() {
method Result (line 20) | public Result(T data, String message, int code) {
method Result (line 26) | public Result(String message, Integer code) {
method Result (line 30) | public Result(T data) {
method getData (line 34) | public T getData() {
method setData (line 38) | public void setData(T data) {
method getMessage (line 42) | public String getMessage() {
method setMessage (line 46) | public void setMessage(String message) {
method getCode (line 50) | public int getCode() {
method setCode (line 54) | public void setCode(int code) {
FILE: nacos-ribbon-service/src/main/java/com/jourwon/springcloud/pojo/User.java
class User (line 9) | public class User {
method User (line 15) | public User() {
method User (line 18) | public User(Long id, String username, String password) {
method getId (line 24) | public Long getId() {
method setId (line 28) | public void setId(Long id) {
method getUsername (line 32) | public String getUsername() {
method setUsername (line 36) | public void setUsername(String username) {
method getPassword (line 40) | public String getPassword() {
method setPassword (line 44) | public void setPassword(String password) {
FILE: nacos-ribbon-service/src/test/java/com/jourwon/springcloud/NacosRibbonServiceApplicationTests.java
class NacosRibbonServiceApplicationTests (line 6) | @SpringBootTest
method contextLoads (line 9) | @Test
FILE: nacos-user-service/.mvn/wrapper/MavenWrapperDownloader.java
class MavenWrapperDownloader (line 22) | public class MavenWrapperDownloader {
method main (line 49) | public static void main(String args[]) {
method downloadFileFromURL (line 98) | private static void downloadFileFromURL(String urlString, File destina...
FILE: nacos-user-service/src/main/java/com/jourwon/springcloud/NacosUserServiceApplication.java
class NacosUserServiceApplication (line 13) | @EnableDiscoveryClient
method main (line 17) | public static void main(String[] args) {
FILE: nacos-user-service/src/main/java/com/jourwon/springcloud/controller/UserController.java
class UserController (line 19) | @RestController
method insert (line 28) | @PostMapping("/insert")
method getUser (line 34) | @GetMapping("/{id}")
method listUsersByIds (line 41) | @GetMapping("/listUsersByIds")
method getByUsername (line 48) | @GetMapping("/getByUsername")
method update (line 54) | @PostMapping("/update")
method delete (line 60) | @PostMapping("/delete/{id}")
FILE: nacos-user-service/src/main/java/com/jourwon/springcloud/pojo/Result.java
class Result (line 9) | public class Result<T> {
method Result (line 17) | public Result() {
method Result (line 20) | public Result(T data, String message, int code) {
method Result (line 26) | public Result(String message, Integer code) {
method Result (line 30) | public Result(T data) {
method getData (line 34) | public T getData() {
method setData (line 38) | public void setData(T data) {
method getMessage (line 42) | public String getMessage() {
method setMessage (line 46) | public void setMessage(String message) {
method getCode (line 50) | public int getCode() {
method setCode (line 54) | public void setCode(int code) {
FILE: nacos-user-service/src/main/java/com/jourwon/springcloud/pojo/User.java
class User (line 9) | public class User {
method User (line 15) | public User() {
method User (line 18) | public User(Long id, String username, String password) {
method getId (line 24) | public Long getId() {
method setId (line 28) | public void setId(Long id) {
method getUsername (line 32) | public String getUsername() {
method setUsername (line 36) | public void setUsername(String username) {
method getPassword (line 40) | public String getPassword() {
method setPassword (line 44) | public void setPassword(String password) {
FILE: nacos-user-service/src/main/java/com/jourwon/springcloud/service/UserService.java
type UserService (line 13) | public interface UserService {
method insert (line 15) | void insert(User user);
method getUser (line 17) | User getUser(Long id);
method update (line 19) | void update(User user);
method delete (line 21) | void delete(Long id);
method getByUsername (line 23) | User getByUsername(String username);
method listUsersByIds (line 25) | List<User> listUsersByIds(List<Long> ids);
FILE: nacos-user-service/src/main/java/com/jourwon/springcloud/service/impl/UserServiceImpl.java
class UserServiceImpl (line 19) | @Service
method insert (line 24) | @Override
method getUser (line 29) | @Override
method update (line 38) | @Override
method delete (line 46) | @Override
method getByUsername (line 54) | @Override
method listUsersByIds (line 63) | @Override
method initData (line 68) | @PostConstruct
FILE: nacos-user-service/src/test/java/com/jourwon/springcloud/NacosUserServiceApplicationTests.java
class NacosUserServiceApplicationTests (line 6) | @SpringBootTest
method contextLoads (line 9) | @Test
FILE: oauth2-client/.mvn/wrapper/MavenWrapperDownloader.java
class MavenWrapperDownloader (line 22) | public class MavenWrapperDownloader {
method main (line 49) | public static void main(String args[]) {
method downloadFileFromURL (line 98) | private static void downloadFileFromURL(String urlString, File destina...
FILE: oauth2-client/src/main/java/com/jourwon/springcloud/Oauth2ClientApplication.java
class Oauth2ClientApplication (line 13) | @EnableOAuth2Sso
method main (line 17) | public static void main(String[] args) {
FILE: oauth2-client/src/main/java/com/jourwon/springcloud/config/SecurityConfig.java
class SecurityConfig (line 14) | @Configuration
FILE: oauth2-client/src/main/java/com/jourwon/springcloud/controller/UserController.java
class UserController (line 15) | @RestController
method getCurrentUser (line 19) | @GetMapping("/getCurrentUser")
method adminAuth (line 25) | @PreAuthorize("hasAuthority('admin')")
FILE: oauth2-client/src/test/java/com/jourwon/springcloud/Oauth2ClientApplicationTests.java
class Oauth2ClientApplicationTests (line 6) | @SpringBootTest
method contextLoads (line 9) | @Test
FILE: oauth2-jwt-server/.mvn/wrapper/MavenWrapperDownloader.java
class MavenWrapperDownloader (line 22) | public class MavenWrapperDownloader {
method main (line 49) | public static void main(String args[]) {
method downloadFileFromURL (line 98) | private static void downloadFileFromURL(String urlString, File destina...
FILE: oauth2-jwt-server/src/main/java/com/jourwon/springcloud/Oauth2JwtServerApplication.java
class Oauth2JwtServerApplication (line 12) | @SpringBootApplication
method main (line 15) | public static void main(String[] args) {
FILE: oauth2-jwt-server/src/main/java/com/jourwon/springcloud/config/AuthorizationServerConfig.java
class AuthorizationServerConfig (line 29) | @Configuration
method configure (line 58) | @Override
method configure (line 75) | @Override
method configure (line 98) | @Override
FILE: oauth2-jwt-server/src/main/java/com/jourwon/springcloud/config/JwtTokenStoreConfig.java
class JwtTokenStoreConfig (line 17) | @Configuration
method jwtTokenStore (line 20) | @Bean
method jwtTokenEnhancer (line 26) | @Bean
method jwtAccessTokenConverter (line 31) | @Bean
FILE: oauth2-jwt-server/src/main/java/com/jourwon/springcloud/config/RedisTokenStoreConfig.java
class RedisTokenStoreConfig (line 16) | @Configuration
method redisTokenStore (line 22) | @Bean
FILE: oauth2-jwt-server/src/main/java/com/jourwon/springcloud/config/ResourceServerConfig.java
class ResourceServerConfig (line 14) | @Configuration
method configure (line 18) | @Override
FILE: oauth2-jwt-server/src/main/java/com/jourwon/springcloud/config/SecurityConfig.java
class SecurityConfig (line 18) | @Configuration
method passwordEncoder (line 22) | @Bean
method authenticationManagerBean (line 27) | @Bean
method configure (line 33) | @Override
FILE: oauth2-jwt-server/src/main/java/com/jourwon/springcloud/controller/UserController.java
class UserController (line 19) | @RestController
method getCurrentUser (line 23) | @GetMapping("/getCurrentUser")
FILE: oauth2-jwt-server/src/main/java/com/jourwon/springcloud/enhancer/JwtTokenEnhancer.java
class JwtTokenEnhancer (line 17) | public class JwtTokenEnhancer implements TokenEnhancer {
method enhance (line 19) | @Override
FILE: oauth2-jwt-server/src/main/java/com/jourwon/springcloud/pojo/User.java
class User (line 15) | public class User implements UserDetails {
method User (line 21) | public User(String username, String password,List<GrantedAuthority> au...
method getAuthorities (line 27) | @Override
method getPassword (line 32) | @Override
method getUsername (line 37) | @Override
method isAccountNonExpired (line 42) | @Override
method isAccountNonLocked (line 47) | @Override
method isCredentialsNonExpired (line 52) | @Override
method isEnabled (line 57) | @Override
FILE: oauth2-jwt-server/src/main/java/com/jourwon/springcloud/service/UserService.java
class UserService (line 24) | @Service
method initData (line 32) | @PostConstruct
method loadUserByUsername (line 42) | @Override
FILE: oauth2-jwt-server/src/test/java/com/jourwon/springcloud/Oauth2JwtServerApplicationTests.java
class Oauth2JwtServerApplicationTests (line 6) | @SpringBootTest
method contextLoads (line 9) | @Test
FILE: oauth2-server/.mvn/wrapper/MavenWrapperDownloader.java
class MavenWrapperDownloader (line 22) | public class MavenWrapperDownloader {
method main (line 49) | public static void main(String args[]) {
method downloadFileFromURL (line 98) | private static void downloadFileFromURL(String urlString, File destina...
FILE: oauth2-server/src/main/java/com/jourwon/springcloud/Oauth2ServerApplication.java
class Oauth2ServerApplication (line 12) | @SpringBootApplication
method main (line 15) | public static void main(String[] args) {
FILE: oauth2-server/src/main/java/com/jourwon/springcloud/config/AuthorizationServerConfig.java
class AuthorizationServerConfig (line 19) | @Configuration
method configure (line 38) | @Override
method configure (line 44) | @Override
FILE: oauth2-server/src/main/java/com/jourwon/springcloud/config/ResourceServerConfig.java
class ResourceServerConfig (line 14) | @Configuration
method configure (line 18) | @Override
FILE: oauth2-server/src/main/java/com/jourwon/springcloud/config/SecurityConfig.java
class SecurityConfig (line 18) | @Configuration
method passwordEncoder (line 22) | @Bean
method authenticationManagerBean (line 27) | @Bean
method configure (line 33) | @Override
FILE: oauth2-server/src/main/java/com/jourwon/springcloud/controller/UserController.java
class UserController (line 14) | @RestController
method getCurrentUser (line 18) | @GetMapping("/getCurrentUser")
FILE: oauth2-server/src/main/java/com/jourwon/springcloud/pojo/User.java
class User (line 15) | public class User implements UserDetails {
method User (line 21) | public User(String username, String password,List<GrantedAuthority> au...
method getAuthorities (line 27) | @Override
method getPassword (line 32) | @Override
method getUsername (line 37) | @Override
method isAccountNonExpired (line 42) | @Override
method isAccountNonLocked (line 47) | @Override
method isCredentialsNonExpired (line 52) | @Override
method isEnabled (line 57) | @Override
FILE: oauth2-server/src/main/java/com/jourwon/springcloud/service/UserService.java
class UserService (line 24) | @Service
method initData (line 32) | @PostConstruct
method loadUserByUsername (line 42) | @Override
FILE: oauth2-server/src/test/java/com/jourwon/springcloud/Oauth2ServerApplicationTests.java
class Oauth2ServerApplicationTests (line 6) | @SpringBootTest
method contextLoads (line 9) | @Test
FILE: ribbon-service/.mvn/wrapper/MavenWrapperDownloader.java
class MavenWrapperDownloader (line 22) | public class MavenWrapperDownloader {
method main (line 49) | public static void main(String args[]) {
method downloadFileFromURL (line 98) | private static void downloadFileFromURL(String urlString, File destina...
FILE: ribbon-service/src/main/java/com/jourwon/springcloud/RibbonServiceApplication.java
class RibbonServiceApplication (line 13) | @EnableDiscoveryClient
method main (line 17) | public static void main(String[] args) {
FILE: ribbon-service/src/main/java/com/jourwon/springcloud/config/RibbonConfig.java
class RibbonConfig (line 14) | @Configuration
method restTemplate (line 17) | @Bean
FILE: ribbon-service/src/main/java/com/jourwon/springcloud/controller/UserRibbonController.java
class UserRibbonController (line 17) | @RestController
method getUser (line 27) | @GetMapping("/{id}")
method getByUsername (line 32) | @GetMapping("/getByUsername")
method getEntityByUsername (line 37) | @GetMapping("/getEntityByUsername")
method insert (line 47) | @PostMapping("/insert")
method update (line 52) | @PostMapping("/update")
method delete (line 57) | @PostMapping("/delete/{id}")
FILE: ribbon-service/src/main/java/com/jourwon/springcloud/pojo/Result.java
class Result (line 9) | public class Result<T> {
method Result (line 17) | public Result() {
method Result (line 20) | public Result(T data, String message, int code) {
method Result (line 26) | public Result(String message, Integer code) {
method Result (line 30) | public Result(T data) {
method getData (line 34) | public T getData() {
method setData (line 38) | public void setData(T data) {
method getMessage (line 42) | public String getMessage() {
method setMessage (line 46) | public void setMessage(String message) {
method getCode (line 50) | public int getCode() {
method setCode (line 54) | public void setCode(int code) {
FILE: ribbon-service/src/main/java/com/jourwon/springcloud/pojo/User.java
class User (line 9) | public class User {
method User (line 15) | public User() {
method User (line 18) | public User(Long id, String username, String password) {
method getId (line 24) | public Long getId() {
method setId (line 28) | public void setId(Long id) {
method getUsername (line 32) | public String getUsername() {
method setUsername (line 36) | public void setUsername(String username) {
method getPassword (line 40) | public String getPassword() {
method setPassword (line 44) | public void setPassword(String password) {
FILE: ribbon-service/src/test/java/com/jourwon/springcloud/RibbonServiceApplicationTests.java
class RibbonServiceApplicationTests (line 6) | @SpringBootTest
method contextLoads (line 9) | @Test
FILE: seata-account-service/.mvn/wrapper/MavenWrapperDownloader.java
class MavenWrapperDownloader (line 22) | public class MavenWrapperDownloader {
method main (line 49) | public static void main(String args[]) {
method downloadFileFromURL (line 98) | private static void downloadFileFromURL(String urlString, File destina...
FILE: seata-account-service/src/main/java/com/jourwon/springcloud/SeataAccountServiceApplication.java
class SeataAccountServiceApplication (line 16) | @EnableFeignClients
method main (line 22) | public static void main(String[] args) {
FILE: seata-account-service/src/main/java/com/jourwon/springcloud/config/DataSourceProxyConfig.java
class DataSourceProxyConfig (line 22) | @Configuration
method druidDataSource (line 28) | @Bean
method dataSourceProxy (line 34) | @Bean
method sqlSessionFactoryBean (line 39) | @Bean
FILE: seata-account-service/src/main/java/com/jourwon/springcloud/controller/AccountController.java
class AccountController (line 12) | @RestController
method decrease (line 22) | @RequestMapping("/decrease")
FILE: seata-account-service/src/main/java/com/jourwon/springcloud/mapper/AccountMapper.java
type AccountMapper (line 8) | @Repository
method decrease (line 14) | void decrease(@Param("userId") Long userId, @Param("money") BigDecimal...
FILE: seata-account-service/src/main/java/com/jourwon/springcloud/pojo/Account.java
class Account (line 7) | @Data
FILE: seata-account-service/src/main/java/com/jourwon/springcloud/pojo/Result.java
class Result (line 9) | public class Result<T> {
method Result (line 17) | public Result() {
method Result (line 20) | public Result(T data, String message, int code) {
method Result (line 26) | public Result(String message, Integer code) {
method Result (line 30) | public Result(T data) {
method getData (line 34) | public T getData() {
method setData (line 38) | public void setData(T data) {
method getMessage (line 42) | public String getMessage() {
method setMessage (line 46) | public void setMessage(String message) {
method getCode (line 50) | public int getCode() {
method setCode (line 54) | public void setCode(int code) {
FILE: seata-account-service/src/main/java/com/jourwon/springcloud/service/AccountService.java
type AccountService (line 5) | public interface AccountService {
method decrease (line 12) | void decrease(Long userId, BigDecimal money);
FILE: seata-account-service/src/main/java/com/jourwon/springcloud/service/impl/AccountServiceImpl.java
class AccountServiceImpl (line 18) | @Service
method decrease (line 28) | @Override
FILE: seata-account-service/src/main/resources/account.sql
type `account` (line 1) | CREATE TABLE `account` (
FILE: seata-account-service/src/test/java/com/jourwon/springcloud/SeataAccountServiceApplicationTests.java
class SeataAccountServiceApplicationTests (line 6) | @SpringBootTest
method contextLoads (line 9) | @Test
FILE: seata-order-service/.mvn/wrapper/MavenWrapperDownloader.java
class MavenWrapperDownloader (line 22) | public class MavenWrapperDownloader {
method main (line 49) | public static void main(String args[]) {
method downloadFileFromURL (line 98) | private static void downloadFileFromURL(String urlString, File destina...
FILE: seata-order-service/src/main/java/com/jourwon/springcloud/SeataOrderServiceApplication.java
class SeataOrderServiceApplication (line 17) | @EnableFeignClients
method main (line 23) | public static void main(String[] args) {
FILE: seata-order-service/src/main/java/com/jourwon/springcloud/config/DataSourceProxyConfig.java
class DataSourceProxyConfig (line 22) | @Configuration
method druidDataSource (line 28) | @Bean
method dataSourceProxy (line 34) | @Bean
method sqlSessionFactoryBean (line 39) | @Bean
FILE: seata-order-service/src/main/java/com/jourwon/springcloud/controller/OrderController.java
class OrderController (line 11) | @RestController
method create (line 21) | @GetMapping("/create")
FILE: seata-order-service/src/main/java/com/jourwon/springcloud/mapper/OrderMapper.java
type OrderMapper (line 8) | @Repository
method create (line 14) | void create(Order order);
method update (line 19) | void update(@Param("userId") Long userId, @Param("status") Integer sta...
FILE: seata-order-service/src/main/java/com/jourwon/springcloud/pojo/Order.java
class Order (line 14) | @Data
FILE: seata-order-service/src/main/java/com/jourwon/springcloud/pojo/Result.java
class Result (line 9) | public class Result<T> {
method Result (line 17) | public Result() {
method Result (line 20) | public Result(T data, String message, int code) {
method Result (line 26) | public Result(String message, Integer code) {
method Result (line 30) | public Result(T data) {
method getData (line 34) | public T getData() {
method setData (line 38) | public void setData(T data) {
method getMessage (line 42) | public String getMessage() {
method setMessage (line 46) | public void setMessage(String message) {
method getCode (line 50) | public int getCode() {
method setCode (line 54) | public void setCode(int code) {
FILE: seata-order-service/src/main/java/com/jourwon/springcloud/service/AccountService.java
type AccountService (line 10) | @FeignClient(value = "seata-account-service")
method decrease (line 16) | @RequestMapping("/account/decrease")
FILE: seata-order-service/src/main/java/com/jourwon/springcloud/service/OrderService.java
type OrderService (line 6) | public interface OrderService {
method create (line 11) | void create(Order order);
FILE: seata-order-service/src/main/java/com/jourwon/springcloud/service/StorageService.java
type StorageService (line 8) | @FeignClient(value = "seata-storage-service")
method decrease (line 14) | @GetMapping(value = "/storage/decrease")
FILE: seata-order-service/src/main/java/com/jourwon/springcloud/service/impl/OrderServiceImpl.java
class OrderServiceImpl (line 20) | @Service
method create (line 35) | @Override
FILE: seata-order-service/src/main/resources/order.sql
type `order` (line 1) | CREATE TABLE `order` (
FILE: seata-order-service/src/test/java/com/jourwon/springcloud/SeataOrderServiceApplicationTests.java
class SeataOrderServiceApplicationTests (line 6) | @SpringBootTest
method contextLoads (line 9) | @Test
FILE: seata-storage-service/.mvn/wrapper/MavenWrapperDownloader.java
class MavenWrapperDownloader (line 22) | public class MavenWrapperDownloader {
method main (line 49) | public static void main(String args[]) {
method downloadFileFromURL (line 98) | private static void downloadFileFromURL(String urlString, File destina...
FILE: seata-storage-service/src/main/java/com/jourwon/springcloud/SeataStorageServiceApplication.java
class SeataStorageServiceApplication (line 10) | @EnableFeignClients
method main (line 16) | public static void main(String[] args) {
FILE: seata-storage-service/src/main/java/com/jourwon/springcloud/config/DataSourceProxyConfig.java
class DataSourceProxyConfig (line 22) | @Configuration
method druidDataSource (line 28) | @Bean
method dataSourceProxy (line 34) | @Bean
method sqlSessionFactoryBean (line 39) | @Bean
FILE: seata-storage-service/src/main/java/com/jourwon/springcloud/controller/StorageController.java
class StorageController (line 10) | @RestController
method decrease (line 20) | @RequestMapping("/decrease")
FILE: seata-storage-service/src/main/java/com/jourwon/springcloud/mapper/StorageMapper.java
type StorageMapper (line 6) | @Repository
method decrease (line 12) | void decrease(@Param("id") Long productId, @Param("ct") Integer count);
FILE: seata-storage-service/src/main/java/com/jourwon/springcloud/pojo/Result.java
class Result (line 9) | public class Result<T> {
method Result (line 17) | public Result() {
method Result (line 20) | public Result(T data, String message, int code) {
method Result (line 26) | public Result(String message, Integer code) {
method Result (line 30) | public Result(T data) {
method getData (line 34) | public T getData() {
method setData (line 38) | public void setData(T data) {
method getMessage (line 42) | public String getMessage() {
method setMessage (line 46) | public void setMessage(String message) {
method getCode (line 50) | public int getCode() {
method setCode (line 54) | public void setCode(int code) {
FILE: seata-storage-service/src/main/java/com/jourwon/springcloud/pojo/Storage.java
class Storage (line 5) | @Data
FILE: seata-storage-service/src/main/java/com/jourwon/springcloud/service/StorageService.java
type StorageService (line 4) | public interface StorageService {
method decrease (line 8) | void decrease(Long productId, Integer count);
FILE: seata-storage-service/src/main/java/com/jourwon/springcloud/service/impl/StorageServiceImpl.java
class StorageServiceImpl (line 11) | @Service
method decrease (line 22) | @Override
FILE: seata-storage-service/src/main/resources/storage.sql
type `storage` (line 1) | CREATE TABLE `storage` (
FILE: seata-storage-service/src/test/java/com/jourwon/springcloud/SeataStorageServiceApplicationTests.java
class SeataStorageServiceApplicationTests (line 6) | @SpringBootTest
method contextLoads (line 9) | @Test
FILE: sentinel-service/.mvn/wrapper/MavenWrapperDownloader.java
class MavenWrapperDownloader (line 22) | public class MavenWrapperDownloader {
method main (line 49) | public static void main(String args[]) {
method downloadFileFromURL (line 98) | private static void downloadFileFromURL(String urlString, File destina...
FILE: sentinel-service/src/main/java/com/jourwon/springcloud/SentinelServiceApplication.java
class SentinelServiceApplication (line 14) | @EnableFeignClients
method main (line 19) | public static void main(String[] args) {
FILE: sentinel-service/src/main/java/com/jourwon/springcloud/config/RibbonConfig.java
class RibbonConfig (line 15) | @Configuration
method restTemplate (line 18) | @Bean
FILE: sentinel-service/src/main/java/com/jourwon/springcloud/controller/CircleBreakerController.java
class CircleBreakerController (line 21) | @RestController
method fallback (line 33) | @GetMapping("/fallback/{id}")
method fallbackException (line 41) | @GetMapping("/fallbackException/{id}")
method handleFallback (line 53) | public Result handleFallback(Long id) {
method handleFallback2 (line 57) | public Result handleFallback2(Long id, Throwable e) {
FILE: sentinel-service/src/main/java/com/jourwon/springcloud/controller/RateLimitController.java
class RateLimitController (line 17) | @RestController
method byResource (line 26) | @GetMapping("/byResource")
method byUrl (line 37) | @GetMapping("byUrl")
method handleException (line 43) | public Result handleException(BlockException exception) {
method blockHandler (line 47) | @GetMapping("/customBlockHandler")
FILE: sentinel-service/src/main/java/com/jourwon/springcloud/controller/UserFeignController.java
class UserFeignController (line 17) | @RestController
method insert (line 24) | @PostMapping("/insert")
method getUser (line 29) | @GetMapping("/{id}")
method listUsersByIds (line 34) | @GetMapping("/listUsersByIds")
method getByUsername (line 39) | @GetMapping("/getByUsername")
method update (line 44) | @PostMapping("/update")
method delete (line 49) | @PostMapping("/delete/{id}")
FILE: sentinel-service/src/main/java/com/jourwon/springcloud/handler/CustomBlockHandler.java
class CustomBlockHandler (line 12) | public class CustomBlockHandler {
method handleException (line 14) | public Result handleException(BlockException exception) {
FILE: sentinel-service/src/main/java/com/jourwon/springcloud/pojo/Result.java
class Result (line 9) | public class Result<T> {
method Result (line 17) | public Result() {
method Result (line 20) | public Result(T data, String message, int code) {
method Result (line 26) | public Result(String message, Integer code) {
method Result (line 30) | public Result(T data) {
method getData (line 34) | public T getData() {
method setData (line 38) | public void setData(T data) {
method getMessage (line 42) | public String getMessage() {
method setMessage (line 46) | public void setMessage(String message) {
method getCode (line 50) | public int getCode() {
method setCode (line 54) | public void setCode(int code) {
FILE: sentinel-service/src/main/java/com/jourwon/springcloud/pojo/User.java
class User (line 9) | public class User {
method User (line 15) | public User() {
method User (line 18) | public User(Long id, String username, String password) {
method getId (line 24) | public Long getId() {
method setId (line 28) | public void setId(Long id) {
method getUsername (line 32) | public String getUsername() {
method setUsername (line 36) | public void setUsername(String username) {
method getPassword (line 40) | public String getPassword() {
method setPassword (line 44) | public void setPassword(String password) {
FILE: sentinel-service/src/main/java/com/jourwon/springcloud/service/UserService.java
type UserService (line 17) | @FeignClient(value = "nacos-user-service", fallback = UserFallbackServic...
method insert (line 20) | @PostMapping("/user/insert")
method getUser (line 23) | @GetMapping("/user/{id}")
method listUsersByIds (line 26) | @GetMapping("/user/listUsersByIds")
method getByUsername (line 29) | @GetMapping("/user/getByUsername")
method update (line 32) | @PostMapping("/user/update")
method delete (line 35) | @PostMapping("/user/delete/{id}")
FILE: sentinel-service/src/main/java/com/jourwon/springcloud/service/impl/UserFallbackService.java
class UserFallbackService (line 16) | @Component
method insert (line 19) | @Override
method getUser (line 24) | @Override
method listUsersByIds (line 29) | @Override
method getByUsername (line 34) | @Override
method update (line 39) | @Override
method delete (line 44) | @Override
FILE: sentinel-service/src/test/java/com/jourwon/springcloud/SentinelServiceApplicationTests.java
class SentinelServiceApplicationTests (line 6) | @SpringBootTest
method contextLoads (line 9) | @Test
FILE: turbine-service/.mvn/wrapper/MavenWrapperDownloader.java
class MavenWrapperDownloader (line 22) | public class MavenWrapperDownloader {
method main (line 49) | public static void main(String args[]) {
method downloadFileFromURL (line 98) | private static void downloadFileFromURL(String urlString, File destina...
FILE: turbine-service/src/main/java/com/jourwon/springcloud/TurbineServiceApplication.java
class TurbineServiceApplication (line 14) | @EnableTurbine
method main (line 19) | public static void main(String[] args) {
FILE: turbine-service/src/test/java/com/jourwon/springcloud/TurbineServiceApplicationTests.java
class TurbineServiceApplicationTests (line 6) | @SpringBootTest
method contextLoads (line 9) | @Test
FILE: user-service/.mvn/wrapper/MavenWrapperDownloader.java
class MavenWrapperDownloader (line 22) | public class MavenWrapperDownloader {
method main (line 49) | public static void main(String args[]) {
method downloadFileFromURL (line 98) | private static void downloadFileFromURL(String urlString, File destina...
FILE: user-service/src/main/java/com/jourwon/springcloud/UserServiceApplication.java
class UserServiceApplication (line 13) | @EnableDiscoveryClient
method main (line 17) | public static void main(String[] args) {
FILE: user-service/src/main/java/com/jourwon/springcloud/controller/UserController.java
class UserController (line 19) | @RestController
method insert (line 28) | @PostMapping("/insert")
method getUser (line 34) | @GetMapping("/{id}")
method listUsersByIds (line 41) | @GetMapping("/listUsersByIds")
method getByUsername (line 48) | @GetMapping("/getByUsername")
method update (line 54) | @PostMapping("/update")
method delete (line 60) | @PostMapping("/delete/{id}")
FILE: user-service/src/main/java/com/jourwon/springcloud/pojo/Result.java
class Result (line 9) | public class Result<T> {
method Result (line 17) | public Result() {
method Result (line 20) | public Result(T data, String message, int code) {
method Result (line 26) | public Result(String message, Integer code) {
method Result (line 30) | public Result(T data) {
method getData (line 34) | public T getData() {
method setData (line 38) | public void setData(T data) {
method getMessage (line 42) | public String getMessage() {
method setMessage (line 46) | public void setMessage(String message) {
method getCode (line 50) | public int getCode() {
method setCode (line 54) | public void setCode(int code) {
FILE: user-service/src/main/java/com/jourwon/springcloud/pojo/User.java
class User (line 9) | public class User {
method User (line 15) | public User() {
method User (line 18) | public User(Long id, String username, String password) {
method getId (line 24) | public Long getId() {
method setId (line 28) | public void setId(Long id) {
method getUsername (line 32) | public String getUsername() {
method setUsername (line 36) | public void setUsername(String username) {
method getPassword (line 40) | public String getPassword() {
method setPassword (line 44) | public void setPassword(String password) {
FILE: user-service/src/main/java/com/jourwon/springcloud/service/UserService.java
type UserService (line 13) | public interface UserService {
method insert (line 15) | void insert(User user);
method getUser (line 17) | User getUser(Long id);
method update (line 19) | void update(User user);
method delete (line 21) | void delete(Long id);
method getByUsername (line 23) | User getByUsername(String username);
method listUsersByIds (line 25) | List<User> listUsersByIds(List<Long> ids);
FILE: user-service/src/main/java/com/jourwon/springcloud/service/impl/UserServiceImpl.java
class UserServiceImpl (line 19) | @Service
method insert (line 24) | @Override
method getUser (line 29) | @Override
method update (line 38) | @Override
method delete (line 46) | @Override
method getByUsername (line 54) | @Override
method listUsersByIds (line 63) | @Override
method initData (line 68) | @PostConstruct
FILE: user-service/src/test/java/com/jourwon/springcloud/UserServiceApplicationTests.java
class UserServiceApplicationTests (line 6) | @SpringBootTest
method contextLoads (line 9) | @Test
FILE: zuul-proxy/.mvn/wrapper/MavenWrapperDownloader.java
class MavenWrapperDownloader (line 22) | public class MavenWrapperDownloader {
method main (line 49) | public static void main(String args[]) {
method downloadFileFromURL (line 98) | private static void downloadFileFromURL(String urlString, File destina...
FILE: zuul-proxy/src/main/java/com/jourwon/springcloud/ZuulProxyApplication.java
class ZuulProxyApplication (line 14) | @EnableZuulProxy
method main (line 19) | public static void main(String[] args) {
FILE: zuul-proxy/src/main/java/com/jourwon/springcloud/filter/PreLogFilter.java
class PreLogFilter (line 18) | @Component
method filterType (line 26) | @Override
method filterOrder (line 34) | @Override
method shouldFilter (line 42) | @Override
method run (line 50) | @Override
FILE: zuul-proxy/src/test/java/com/jourwon/springcloud/ZuulProxyApplicationTests.java
class ZuulProxyApplicationTests (line 6) | @SpringBootTest
method contextLoads (line 9) | @Test
Condensed preview — 440 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (1,034K chars).
[
{
"path": ".gitignore",
"chars": 333,
"preview": "HELP.md\ntarget/\n!.mvn/wrapper/maven-wrapper.jar\n!**/src/main/**\n!**/src/test/**\n\n### STS ###\n.apt_generated\n.classpath\n."
},
{
"path": "README.md",
"chars": 141,
"preview": "# springcloud-learning\n学习Spring Cloud框架的总结,使用的是最新的Hoxton版本。主要包括Eureka、Ribbon、Hystrix、Feign、Zuul、Gateway、Security、Bus、Ope"
},
{
"path": "admin-client/.gitignore",
"chars": 333,
"preview": "HELP.md\ntarget/\n!.mvn/wrapper/maven-wrapper.jar\n!**/src/main/**\n!**/src/test/**\n\n### STS ###\n.apt_generated\n.classpath\n."
},
{
"path": "admin-client/.mvn/wrapper/MavenWrapperDownloader.java",
"chars": 4948,
"preview": "/*\n * Copyright 2012-2019 the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"Lic"
},
{
"path": "admin-client/.mvn/wrapper/maven-wrapper.properties",
"chars": 218,
"preview": "distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.2/apache-maven-3.6.2-bin.zip\nwrap"
},
{
"path": "admin-client/mvnw",
"chars": 10079,
"preview": "#!/bin/sh\n# ----------------------------------------------------------------------------\n# Licensed to the Apache Softwa"
},
{
"path": "admin-client/mvnw.cmd",
"chars": 6610,
"preview": "@REM ----------------------------------------------------------------------------\n@REM Licensed to the Apache Software F"
},
{
"path": "admin-client/pom.xml",
"chars": 2564,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2"
},
{
"path": "admin-client/src/main/java/com/jourwon/springcloud/AdminClientApplication.java",
"chars": 507,
"preview": "package com.jourwon.springcloud;\n\nimport org.springframework.boot.SpringApplication;\nimport org.springframework.boot.aut"
},
{
"path": "admin-client/src/main/java/com/jourwon/springcloud/controller/UserController.java",
"chars": 1876,
"preview": "package com.jourwon.springcloud.controller;\n\nimport com.jourwon.springcloud.pojo.Result;\nimport com.jourwon.springcloud."
},
{
"path": "admin-client/src/main/java/com/jourwon/springcloud/pojo/Result.java",
"chars": 946,
"preview": "package com.jourwon.springcloud.pojo;\n\n/**\n * Description:统一返回前端的对象\n *\n * @author JourWon\n * @date 2019/12/18 13:57\n */\n"
},
{
"path": "admin-client/src/main/java/com/jourwon/springcloud/pojo/User.java",
"chars": 823,
"preview": "package com.jourwon.springcloud.pojo;\n\n/**\n * Description:用户\n *\n * @author JourWon\n * @date 2019/12/18 14:00\n */\npublic "
},
{
"path": "admin-client/src/main/java/com/jourwon/springcloud/service/UserService.java",
"chars": 418,
"preview": "package com.jourwon.springcloud.service;\n\nimport com.jourwon.springcloud.pojo.User;\n\nimport java.util.List;\n\n/**\n * Desc"
},
{
"path": "admin-client/src/main/java/com/jourwon/springcloud/service/impl/UserServiceImpl.java",
"chars": 2114,
"preview": "package com.jourwon.springcloud.service.impl;\n\nimport com.jourwon.springcloud.pojo.User;\nimport com.jourwon.springcloud."
},
{
"path": "admin-client/src/main/resources/application-eureka.yml",
"chars": 422,
"preview": "server:\n port: 9305\n\nspring:\n application:\n name: admin-client\n boot:\n admin:\n client:\n # 配置admin-s"
},
{
"path": "admin-client/src/main/resources/application.yml",
"chars": 337,
"preview": "server:\n port: 9305\n\nspring:\n application:\n name: admin-client\n boot:\n admin:\n client:\n # 配置admin-s"
},
{
"path": "admin-client/src/test/java/com/jourwon/springcloud/AdminClientApplicationTests.java",
"chars": 229,
"preview": "package com.jourwon.springcloud;\n\nimport org.junit.jupiter.api.Test;\nimport org.springframework.boot.test.context.Spring"
},
{
"path": "admin-client.log",
"chars": 23862,
"preview": "2019-12-23 11:40:34.569 INFO 13588 --- [main] c.j.springcloud.AdminClientApplication : Starting AdminClientApplicatio"
},
{
"path": "admin-security-server/.gitignore",
"chars": 333,
"preview": "HELP.md\ntarget/\n!.mvn/wrapper/maven-wrapper.jar\n!**/src/main/**\n!**/src/test/**\n\n### STS ###\n.apt_generated\n.classpath\n."
},
{
"path": "admin-security-server/.mvn/wrapper/MavenWrapperDownloader.java",
"chars": 4948,
"preview": "/*\n * Copyright 2012-2019 the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"Lic"
},
{
"path": "admin-security-server/.mvn/wrapper/maven-wrapper.properties",
"chars": 218,
"preview": "distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.2/apache-maven-3.6.2-bin.zip\nwrap"
},
{
"path": "admin-security-server/mvnw",
"chars": 10079,
"preview": "#!/bin/sh\n# ----------------------------------------------------------------------------\n# Licensed to the Apache Softwa"
},
{
"path": "admin-security-server/mvnw.cmd",
"chars": 6610,
"preview": "@REM ----------------------------------------------------------------------------\n@REM Licensed to the Apache Software F"
},
{
"path": "admin-security-server/pom.xml",
"chars": 3271,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2"
},
{
"path": "admin-security-server/src/main/java/com/jourwon/springcloud/AdminSecurityServerApplication.java",
"chars": 608,
"preview": "package com.jourwon.springcloud;\n\nimport de.codecentric.boot.admin.server.config.EnableAdminServer;\nimport org.springfra"
},
{
"path": "admin-security-server/src/main/java/com/jourwon/springcloud/config/SecuritySecureConfig.java",
"chars": 2224,
"preview": "package com.jourwon.springcloud.config;\n\nimport de.codecentric.boot.admin.server.config.AdminServerProperties;\nimport or"
},
{
"path": "admin-security-server/src/main/resources/application.yml",
"chars": 371,
"preview": "server:\n port: 9301\n\neureka:\n client:\n service-url:\n defaultZone: http://localhost:8001/eureka/\n\nspring:\n app"
},
{
"path": "admin-security-server/src/test/java/com/jourwon/springcloud/AdminSecurityServerApplicationTests.java",
"chars": 237,
"preview": "package com.jourwon.springcloud;\n\nimport org.junit.jupiter.api.Test;\nimport org.springframework.boot.test.context.Spring"
},
{
"path": "admin-server/.gitignore",
"chars": 333,
"preview": "HELP.md\ntarget/\n!.mvn/wrapper/maven-wrapper.jar\n!**/src/main/**\n!**/src/test/**\n\n### STS ###\n.apt_generated\n.classpath\n."
},
{
"path": "admin-server/.mvn/wrapper/MavenWrapperDownloader.java",
"chars": 4948,
"preview": "/*\n * Copyright 2012-2019 the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"Lic"
},
{
"path": "admin-server/.mvn/wrapper/maven-wrapper.properties",
"chars": 218,
"preview": "distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.2/apache-maven-3.6.2-bin.zip\nwrap"
},
{
"path": "admin-server/mvnw",
"chars": 10079,
"preview": "#!/bin/sh\n# ----------------------------------------------------------------------------\n# Licensed to the Apache Softwa"
},
{
"path": "admin-server/mvnw.cmd",
"chars": 6610,
"preview": "@REM ----------------------------------------------------------------------------\n@REM Licensed to the Apache Software F"
},
{
"path": "admin-server/pom.xml",
"chars": 2565,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2"
},
{
"path": "admin-server/src/main/java/com/jourwon/springcloud/AdminServerApplication.java",
"chars": 592,
"preview": "package com.jourwon.springcloud;\n\nimport de.codecentric.boot.admin.server.config.EnableAdminServer;\nimport org.springfra"
},
{
"path": "admin-server/src/main/resources/application-eureka.yml",
"chars": 152,
"preview": "server:\n port: 9301\n\nspring:\n application:\n name: admin-server\n\neureka:\n client:\n service-url:\n defaultZon"
},
{
"path": "admin-server/src/main/resources/application.yml",
"chars": 67,
"preview": "server:\n port: 9301\n\nspring:\n application:\n name: admin-server"
},
{
"path": "admin-server/src/test/java/com/jourwon/springcloud/AdminServerApplicationTests.java",
"chars": 229,
"preview": "package com.jourwon.springcloud;\n\nimport org.junit.jupiter.api.Test;\nimport org.springframework.boot.test.context.Spring"
},
{
"path": "api-gateway/.gitignore",
"chars": 333,
"preview": "HELP.md\ntarget/\n!.mvn/wrapper/maven-wrapper.jar\n!**/src/main/**\n!**/src/test/**\n\n### STS ###\n.apt_generated\n.classpath\n."
},
{
"path": "api-gateway/.mvn/wrapper/MavenWrapperDownloader.java",
"chars": 4948,
"preview": "/*\n * Copyright 2012-2019 the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"Lic"
},
{
"path": "api-gateway/.mvn/wrapper/maven-wrapper.properties",
"chars": 218,
"preview": "distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.2/apache-maven-3.6.2-bin.zip\nwrap"
},
{
"path": "api-gateway/mvnw",
"chars": 10079,
"preview": "#!/bin/sh\n# ----------------------------------------------------------------------------\n# Licensed to the Apache Softwa"
},
{
"path": "api-gateway/mvnw.cmd",
"chars": 6610,
"preview": "@REM ----------------------------------------------------------------------------\n@REM Licensed to the Apache Software F"
},
{
"path": "api-gateway/pom.xml",
"chars": 2820,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2"
},
{
"path": "api-gateway/src/main/java/com/jourwon/springcloud/ApiGatewayApplication.java",
"chars": 505,
"preview": "package com.jourwon.springcloud;\n\nimport org.springframework.boot.SpringApplication;\nimport org.springframework.boot.aut"
},
{
"path": "api-gateway/src/main/java/com/jourwon/springcloud/config/GatewayConfig.java",
"chars": 524,
"preview": "package com.jourwon.springcloud.config;\n\nimport org.springframework.context.annotation.Configuration;\n\n/**\n * Descriptio"
},
{
"path": "api-gateway/src/main/java/com/jourwon/springcloud/config/RedisRateLimiterConfig.java",
"chars": 702,
"preview": "package com.jourwon.springcloud.config;\n\nimport org.springframework.cloud.gateway.filter.ratelimit.KeyResolver;\nimport o"
},
{
"path": "api-gateway/src/main/java/com/jourwon/springcloud/controller/FallbackController.java",
"chars": 605,
"preview": "package com.jourwon.springcloud.controller;\n\nimport org.springframework.web.bind.annotation.GetMapping;\nimport org.sprin"
},
{
"path": "api-gateway/src/main/resources/application-eureka.yml",
"chars": 479,
"preview": "server:\n port: 9201\nspring:\n application:\n name: api-gateway\n cloud:\n gateway:\n routes:\n - id: pref"
},
{
"path": "api-gateway/src/main/resources/application-filter.yml",
"chars": 1294,
"preview": "server:\n port: 9201\nservice-url:\n user-service: http://localhost:8201\n\nspring:\n cloud:\n gateway:\n routes:\n "
},
{
"path": "api-gateway/src/main/resources/application-predicate.yml",
"chars": 268,
"preview": "server:\n port: 9201\nservice-url:\n user-service: http://localhost:8201\n\nspring:\n cloud:\n gateway:\n routes:\n "
},
{
"path": "api-gateway/src/main/resources/application.yml",
"chars": 318,
"preview": "server:\n port: 9201\n\nservice-url:\n user-service: http://localhost:8201\n\n\nspring:\n cloud:\n gateway:\n routes:\n "
},
{
"path": "api-gateway/src/test/java/com/jourwon/springcloud/ApiGatewayApplicationTests.java",
"chars": 228,
"preview": "package com.jourwon.springcloud;\n\nimport org.junit.jupiter.api.Test;\nimport org.springframework.boot.test.context.Spring"
},
{
"path": "config-client/.gitignore",
"chars": 333,
"preview": "HELP.md\ntarget/\n!.mvn/wrapper/maven-wrapper.jar\n!**/src/main/**\n!**/src/test/**\n\n### STS ###\n.apt_generated\n.classpath\n."
},
{
"path": "config-client/.mvn/wrapper/MavenWrapperDownloader.java",
"chars": 4948,
"preview": "/*\n * Copyright 2012-2019 the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"Lic"
},
{
"path": "config-client/.mvn/wrapper/maven-wrapper.properties",
"chars": 218,
"preview": "distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.2/apache-maven-3.6.2-bin.zip\nwrap"
},
{
"path": "config-client/mvnw",
"chars": 10079,
"preview": "#!/bin/sh\n# ----------------------------------------------------------------------------\n# Licensed to the Apache Softwa"
},
{
"path": "config-client/mvnw.cmd",
"chars": 6610,
"preview": "@REM ----------------------------------------------------------------------------\n@REM Licensed to the Apache Software F"
},
{
"path": "config-client/pom.xml",
"chars": 2859,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2"
},
{
"path": "config-client/src/main/java/com/jourwon/springcloud/ConfigClientApplication.java",
"chars": 509,
"preview": "package com.jourwon.springcloud;\n\nimport org.springframework.boot.SpringApplication;\nimport org.springframework.boot.aut"
},
{
"path": "config-client/src/main/java/com/jourwon/springcloud/controller/ConfigClientController.java",
"chars": 652,
"preview": "package com.jourwon.springcloud.controller;\n\nimport org.springframework.beans.factory.annotation.Value;\nimport org.sprin"
},
{
"path": "config-client/src/main/resources/bootstrap-amqp1.yml",
"chars": 604,
"preview": "server:\n port: 9004\n\nspring:\n application:\n name: config-client\n cloud:\n # config客户端配置\n config:\n # 分支名称"
},
{
"path": "config-client/src/main/resources/bootstrap-amqp2.yml",
"chars": 604,
"preview": "server:\n port: 9005\n\nspring:\n application:\n name: config-client\n cloud:\n # config客户端配置\n config:\n # 分支名称"
},
{
"path": "config-client/src/main/resources/bootstrap-cluster.yml",
"chars": 527,
"preview": "server:\n port: 9003\n\nspring:\n application:\n name: config-client\n cloud:\n # config客户端配置\n config:\n # 分支名称"
},
{
"path": "config-client/src/main/resources/bootstrap-security.yml",
"chars": 521,
"preview": "server:\n port: 9002\n\nspring:\n application:\n name: config-client\n cloud:\n # config客户端配置\n config:\n # 分支名称"
},
{
"path": "config-client/src/main/resources/bootstrap.yml",
"chars": 477,
"preview": "server:\n port: 9001\n\nspring:\n application:\n name: config-client\n cloud:\n # config客户端配置\n config:\n # 分支名称"
},
{
"path": "config-client/src/test/java/com/jourwon/springcloud/ConfigClientApplicationTests.java",
"chars": 230,
"preview": "package com.jourwon.springcloud;\n\nimport org.junit.jupiter.api.Test;\nimport org.springframework.boot.test.context.Spring"
},
{
"path": "config-security-server/.gitignore",
"chars": 333,
"preview": "HELP.md\ntarget/\n!.mvn/wrapper/maven-wrapper.jar\n!**/src/main/**\n!**/src/test/**\n\n### STS ###\n.apt_generated\n.classpath\n."
},
{
"path": "config-security-server/.mvn/wrapper/MavenWrapperDownloader.java",
"chars": 4948,
"preview": "/*\n * Copyright 2012-2019 the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"Lic"
},
{
"path": "config-security-server/.mvn/wrapper/maven-wrapper.properties",
"chars": 218,
"preview": "distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.2/apache-maven-3.6.2-bin.zip\nwrap"
},
{
"path": "config-security-server/mvnw",
"chars": 10079,
"preview": "#!/bin/sh\n# ----------------------------------------------------------------------------\n# Licensed to the Apache Softwa"
},
{
"path": "config-security-server/mvnw.cmd",
"chars": 6610,
"preview": "@REM ----------------------------------------------------------------------------\n@REM Licensed to the Apache Software F"
},
{
"path": "config-security-server/pom.xml",
"chars": 2741,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2"
},
{
"path": "config-security-server/src/main/java/com/jourwon/springcloud/ConfigSecurityServerApplication.java",
"chars": 612,
"preview": "package com.jourwon.springcloud;\n\nimport org.springframework.boot.SpringApplication;\nimport org.springframework.boot.aut"
},
{
"path": "config-security-server/src/main/resources/application.yml",
"chars": 495,
"preview": "server:\n port: 8905\n\nspring:\n application:\n name: config-security-server\n cloud:\n config:\n server:\n "
},
{
"path": "config-security-server/src/test/java/com/jourwon/springcloud/ConfigSecurityServerApplicationTests.java",
"chars": 238,
"preview": "package com.jourwon.springcloud;\n\nimport org.junit.jupiter.api.Test;\nimport org.springframework.boot.test.context.Spring"
},
{
"path": "config-server/.gitignore",
"chars": 333,
"preview": "HELP.md\ntarget/\n!.mvn/wrapper/maven-wrapper.jar\n!**/src/main/**\n!**/src/test/**\n\n### STS ###\n.apt_generated\n.classpath\n."
},
{
"path": "config-server/.mvn/wrapper/MavenWrapperDownloader.java",
"chars": 4948,
"preview": "/*\n * Copyright 2012-2019 the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"Lic"
},
{
"path": "config-server/.mvn/wrapper/maven-wrapper.properties",
"chars": 218,
"preview": "distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.2/apache-maven-3.6.2-bin.zip\nwrap"
},
{
"path": "config-server/mvnw",
"chars": 10079,
"preview": "#!/bin/sh\n# ----------------------------------------------------------------------------\n# Licensed to the Apache Softwa"
},
{
"path": "config-server/mvnw.cmd",
"chars": 6610,
"preview": "@REM ----------------------------------------------------------------------------\n@REM Licensed to the Apache Software F"
},
{
"path": "config-server/pom.xml",
"chars": 2698,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2"
},
{
"path": "config-server/src/main/java/com/jourwon/springcloud/ConfigServerApplication.java",
"chars": 596,
"preview": "package com.jourwon.springcloud;\n\nimport org.springframework.boot.SpringApplication;\nimport org.springframework.boot.aut"
},
{
"path": "config-server/src/main/resources/application-amqp.yml",
"chars": 731,
"preview": "server:\n port: 8904\n\nspring:\n application:\n name: config-server\n cloud:\n config:\n server:\n git:\n "
},
{
"path": "config-server/src/main/resources/application-replica1.yml",
"chars": 526,
"preview": "server:\n port: 8902\n\nspring:\n application:\n name: config-server\n cloud:\n config:\n server:\n git:\n "
},
{
"path": "config-server/src/main/resources/application-replica2.yml",
"chars": 526,
"preview": "server:\n port: 8903\n\nspring:\n application:\n name: config-server\n cloud:\n config:\n server:\n git:\n "
},
{
"path": "config-server/src/main/resources/application.yml",
"chars": 526,
"preview": "server:\n port: 8901\n\nspring:\n application:\n name: config-server\n cloud:\n config:\n server:\n git:\n "
},
{
"path": "config-server/src/test/java/com/jourwon/springcloud/ConfigServerApplicationTests.java",
"chars": 230,
"preview": "package com.jourwon.springcloud;\n\nimport org.junit.jupiter.api.Test;\nimport org.springframework.boot.test.context.Spring"
},
{
"path": "consul-config-client/.gitignore",
"chars": 333,
"preview": "HELP.md\ntarget/\n!.mvn/wrapper/maven-wrapper.jar\n!**/src/main/**\n!**/src/test/**\n\n### STS ###\n.apt_generated\n.classpath\n."
},
{
"path": "consul-config-client/.mvn/wrapper/MavenWrapperDownloader.java",
"chars": 4948,
"preview": "/*\n * Copyright 2012-2019 the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"Lic"
},
{
"path": "consul-config-client/.mvn/wrapper/maven-wrapper.properties",
"chars": 218,
"preview": "distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.2/apache-maven-3.6.2-bin.zip\nwrap"
},
{
"path": "consul-config-client/mvnw",
"chars": 10079,
"preview": "#!/bin/sh\n# ----------------------------------------------------------------------------\n# Licensed to the Apache Softwa"
},
{
"path": "consul-config-client/mvnw.cmd",
"chars": 6610,
"preview": "@REM ----------------------------------------------------------------------------\n@REM Licensed to the Apache Software F"
},
{
"path": "consul-config-client/pom.xml",
"chars": 2707,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2"
},
{
"path": "consul-config-client/src/main/java/com/jourwon/springcloud/ConsulConfigClientApplication.java",
"chars": 521,
"preview": "package com.jourwon.springcloud;\n\nimport org.springframework.boot.SpringApplication;\nimport org.springframework.boot.aut"
},
{
"path": "consul-config-client/src/main/java/com/jourwon/springcloud/controller/ConfigClientController.java",
"chars": 605,
"preview": "package com.jourwon.springcloud.controller;\n\nimport org.springframework.beans.factory.annotation.Value;\nimport org.sprin"
},
{
"path": "consul-config-client/src/main/resources/application.yml",
"chars": 35,
"preview": "spring:\n profiles:\n active: dev"
},
{
"path": "consul-config-client/src/main/resources/bootstrap.yml",
"chars": 453,
"preview": "server:\n port: 9101\n\nspring:\n application:\n name: consul-config-client\n cloud:\n consul:\n host: localhost\n "
},
{
"path": "consul-config-client/src/test/java/com/jourwon/springcloud/ConsulConfigClientApplicationTests.java",
"chars": 236,
"preview": "package com.jourwon.springcloud;\n\nimport org.junit.jupiter.api.Test;\nimport org.springframework.boot.test.context.Spring"
},
{
"path": "consul-ribbon-service/.gitignore",
"chars": 333,
"preview": "HELP.md\ntarget/\n!.mvn/wrapper/maven-wrapper.jar\n!**/src/main/**\n!**/src/test/**\n\n### STS ###\n.apt_generated\n.classpath\n."
},
{
"path": "consul-ribbon-service/.mvn/wrapper/MavenWrapperDownloader.java",
"chars": 4948,
"preview": "/*\n * Copyright 2012-2019 the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"Lic"
},
{
"path": "consul-ribbon-service/.mvn/wrapper/maven-wrapper.properties",
"chars": 218,
"preview": "distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.2/apache-maven-3.6.2-bin.zip\nwrap"
},
{
"path": "consul-ribbon-service/mvnw",
"chars": 10079,
"preview": "#!/bin/sh\n# ----------------------------------------------------------------------------\n# Licensed to the Apache Softwa"
},
{
"path": "consul-ribbon-service/mvnw.cmd",
"chars": 6610,
"preview": "@REM ----------------------------------------------------------------------------\n@REM Licensed to the Apache Software F"
},
{
"path": "consul-ribbon-service/pom.xml",
"chars": 2888,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2"
},
{
"path": "consul-ribbon-service/src/main/java/com/jourwon/springcloud/ConsulRibbonServiceApplication.java",
"chars": 523,
"preview": "package com.jourwon.springcloud;\n\nimport org.springframework.boot.SpringApplication;\nimport org.springframework.boot.aut"
},
{
"path": "consul-ribbon-service/src/main/java/com/jourwon/springcloud/config/RibbonConfig.java",
"chars": 541,
"preview": "package com.jourwon.springcloud.config;\n\nimport org.springframework.cloud.client.loadbalancer.LoadBalanced;\nimport org.s"
},
{
"path": "consul-ribbon-service/src/main/java/com/jourwon/springcloud/controller/UserRibbonController.java",
"chars": 2078,
"preview": "package com.jourwon.springcloud.controller;\n\nimport com.jourwon.springcloud.pojo.Result;\nimport com.jourwon.springcloud."
},
{
"path": "consul-ribbon-service/src/main/java/com/jourwon/springcloud/pojo/Result.java",
"chars": 946,
"preview": "package com.jourwon.springcloud.pojo;\n\n/**\n * Description:统一返回前端的对象\n *\n * @author JourWon\n * @date 2019/12/18 13:57\n */\n"
},
{
"path": "consul-ribbon-service/src/main/java/com/jourwon/springcloud/pojo/User.java",
"chars": 823,
"preview": "package com.jourwon.springcloud.pojo;\n\n/**\n * Description:用户\n *\n * @author JourWon\n * @date 2019/12/18 14:00\n */\npublic "
},
{
"path": "consul-ribbon-service/src/main/resources/application.yml",
"chars": 265,
"preview": "server:\n port: 8308\nspring:\n application:\n name: consul-ribbon-service\n cloud:\n consul:\n host: localhost\n "
},
{
"path": "consul-ribbon-service/src/test/java/com/jourwon/springcloud/ConsulRibbonServiceApplicationTests.java",
"chars": 237,
"preview": "package com.jourwon.springcloud;\n\nimport org.junit.jupiter.api.Test;\nimport org.springframework.boot.test.context.Spring"
},
{
"path": "consul-user-service/.gitignore",
"chars": 333,
"preview": "HELP.md\ntarget/\n!.mvn/wrapper/maven-wrapper.jar\n!**/src/main/**\n!**/src/test/**\n\n### STS ###\n.apt_generated\n.classpath\n."
},
{
"path": "consul-user-service/.mvn/wrapper/MavenWrapperDownloader.java",
"chars": 4948,
"preview": "/*\n * Copyright 2012-2019 the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"Lic"
},
{
"path": "consul-user-service/.mvn/wrapper/maven-wrapper.properties",
"chars": 218,
"preview": "distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.2/apache-maven-3.6.2-bin.zip\nwrap"
},
{
"path": "consul-user-service/mvnw",
"chars": 10079,
"preview": "#!/bin/sh\n# ----------------------------------------------------------------------------\n# Licensed to the Apache Softwa"
},
{
"path": "consul-user-service/mvnw.cmd",
"chars": 6610,
"preview": "@REM ----------------------------------------------------------------------------\n@REM Licensed to the Apache Software F"
},
{
"path": "consul-user-service/pom.xml",
"chars": 2533,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2"
},
{
"path": "consul-user-service/src/main/java/com/jourwon/springcloud/ConsulUserServiceApplication.java",
"chars": 519,
"preview": "package com.jourwon.springcloud;\n\nimport org.springframework.boot.SpringApplication;\nimport org.springframework.boot.aut"
},
{
"path": "consul-user-service/src/main/java/com/jourwon/springcloud/controller/UserController.java",
"chars": 1876,
"preview": "package com.jourwon.springcloud.controller;\n\nimport com.jourwon.springcloud.pojo.Result;\nimport com.jourwon.springcloud."
},
{
"path": "consul-user-service/src/main/java/com/jourwon/springcloud/pojo/Result.java",
"chars": 946,
"preview": "package com.jourwon.springcloud.pojo;\n\n/**\n * Description:统一返回前端的对象\n *\n * @author JourWon\n * @date 2019/12/18 13:57\n */\n"
},
{
"path": "consul-user-service/src/main/java/com/jourwon/springcloud/pojo/User.java",
"chars": 823,
"preview": "package com.jourwon.springcloud.pojo;\n\n/**\n * Description:用户\n *\n * @author JourWon\n * @date 2019/12/18 14:00\n */\npublic "
},
{
"path": "consul-user-service/src/main/java/com/jourwon/springcloud/service/UserService.java",
"chars": 418,
"preview": "package com.jourwon.springcloud.service;\n\nimport com.jourwon.springcloud.pojo.User;\n\nimport java.util.List;\n\n/**\n * Desc"
},
{
"path": "consul-user-service/src/main/java/com/jourwon/springcloud/service/impl/UserServiceImpl.java",
"chars": 2114,
"preview": "package com.jourwon.springcloud.service.impl;\n\nimport com.jourwon.springcloud.pojo.User;\nimport com.jourwon.springcloud."
},
{
"path": "consul-user-service/src/main/resources/application-replica1.yml",
"chars": 221,
"preview": "server:\n port: 8207\n\nspring:\n application:\n name: consul-user-service\n cloud:\n consul:\n # 将服务注册到consul\n "
},
{
"path": "consul-user-service/src/main/resources/application.yml",
"chars": 221,
"preview": "server:\n port: 8206\n\nspring:\n application:\n name: consul-user-service\n cloud:\n consul:\n # 将服务注册到consul\n "
},
{
"path": "consul-user-service/src/test/java/com/jourwon/springcloud/ConsulUserServiceApplicationTests.java",
"chars": 235,
"preview": "package com.jourwon.springcloud;\n\nimport org.junit.jupiter.api.Test;\nimport org.springframework.boot.test.context.Spring"
},
{
"path": "eureka-client/.gitignore",
"chars": 333,
"preview": "HELP.md\ntarget/\n!.mvn/wrapper/maven-wrapper.jar\n!**/src/main/**\n!**/src/test/**\n\n### STS ###\n.apt_generated\n.classpath\n."
},
{
"path": "eureka-client/.mvn/wrapper/MavenWrapperDownloader.java",
"chars": 4948,
"preview": "/*\n * Copyright 2012-2019 the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"Lic"
},
{
"path": "eureka-client/.mvn/wrapper/maven-wrapper.properties",
"chars": 218,
"preview": "distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.2/apache-maven-3.6.2-bin.zip\nwrap"
},
{
"path": "eureka-client/mvnw",
"chars": 10079,
"preview": "#!/bin/sh\n# ----------------------------------------------------------------------------\n# Licensed to the Apache Softwa"
},
{
"path": "eureka-client/mvnw.cmd",
"chars": 6610,
"preview": "@REM ----------------------------------------------------------------------------\n@REM Licensed to the Apache Software F"
},
{
"path": "eureka-client/pom.xml",
"chars": 2361,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2"
},
{
"path": "eureka-client/src/main/java/com/jourwon/springcloud/EurekaClientApplication.java",
"chars": 519,
"preview": "package com.jourwon.springcloud;\n\nimport org.springframework.boot.SpringApplication;\nimport org.springframework.boot.aut"
},
{
"path": "eureka-client/src/main/resources/application-replica.yml",
"chars": 311,
"preview": "# 指定运行端口\nserver:\n port: 8102\n\n# 指定服务名称\nspring:\n application:\n name: eureka-client\n\neureka:\n client:\n # 注册到Eurek"
},
{
"path": "eureka-client/src/main/resources/application-security.yml",
"chars": 290,
"preview": "# 指定运行端口\nserver:\n port: 8103\n\n# 指定服务名称\nspring:\n application:\n name: eureka-client\n\neureka:\n client:\n # 注册到Eurek"
},
{
"path": "eureka-client/src/main/resources/application.yml",
"chars": 279,
"preview": "# 指定运行端口\nserver:\n port: 8101\n\n# 指定服务名称\nspring:\n application:\n name: eureka-client\n\neureka:\n client:\n # 注册到Eurek"
},
{
"path": "eureka-client/src/test/java/com/jourwon/springcloud/EurekaClientApplicationTests.java",
"chars": 230,
"preview": "package com.jourwon.springcloud;\n\nimport org.junit.jupiter.api.Test;\nimport org.springframework.boot.test.context.Spring"
},
{
"path": "eureka-security-server/.gitignore",
"chars": 333,
"preview": "HELP.md\ntarget/\n!.mvn/wrapper/maven-wrapper.jar\n!**/src/main/**\n!**/src/test/**\n\n### STS ###\n.apt_generated\n.classpath\n."
},
{
"path": "eureka-security-server/.mvn/wrapper/MavenWrapperDownloader.java",
"chars": 4948,
"preview": "/*\n * Copyright 2012-2019 the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"Lic"
},
{
"path": "eureka-security-server/.mvn/wrapper/maven-wrapper.properties",
"chars": 218,
"preview": "distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.2/apache-maven-3.6.2-bin.zip\nwrap"
},
{
"path": "eureka-security-server/mvnw",
"chars": 10079,
"preview": "#!/bin/sh\n# ----------------------------------------------------------------------------\n# Licensed to the Apache Softwa"
},
{
"path": "eureka-security-server/mvnw.cmd",
"chars": 6610,
"preview": "@REM ----------------------------------------------------------------------------\n@REM Licensed to the Apache Software F"
},
{
"path": "eureka-security-server/pom.xml",
"chars": 2386,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2"
},
{
"path": "eureka-security-server/src/main/java/com/jourwon/springcloud/EurekaSecurityServerApplication.java",
"chars": 524,
"preview": "package com.jourwon.springcloud;\n\nimport org.springframework.boot.SpringApplication;\nimport org.springframework.boot.aut"
},
{
"path": "eureka-security-server/src/main/java/com/jourwon/springcloud/config/WebSecurityConfig.java",
"chars": 678,
"preview": "package com.jourwon.springcloud.config;\n\nimport org.springframework.security.config.annotation.web.builders.HttpSecurity"
},
{
"path": "eureka-security-server/src/main/resources/application.yml",
"chars": 284,
"preview": "server:\n port: 8004\n\nspring:\n application:\n name: eureka-security-server\n security:\n user:\n # 配置spring sec"
},
{
"path": "eureka-security-server/src/test/java/com/jourwon/springcloud/EurekaSecurityServerApplicationTests.java",
"chars": 238,
"preview": "package com.jourwon.springcloud;\n\nimport org.junit.jupiter.api.Test;\nimport org.springframework.boot.test.context.Spring"
},
{
"path": "eureka-server/.gitignore",
"chars": 333,
"preview": "HELP.md\ntarget/\n!.mvn/wrapper/maven-wrapper.jar\n!**/src/main/**\n!**/src/test/**\n\n### STS ###\n.apt_generated\n.classpath\n."
},
{
"path": "eureka-server/.mvn/wrapper/MavenWrapperDownloader.java",
"chars": 4948,
"preview": "/*\n * Copyright 2012-2019 the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"Lic"
},
{
"path": "eureka-server/.mvn/wrapper/maven-wrapper.properties",
"chars": 218,
"preview": "distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.2/apache-maven-3.6.2-bin.zip\nwrap"
},
{
"path": "eureka-server/mvnw",
"chars": 10079,
"preview": "#!/bin/sh\n# ----------------------------------------------------------------------------\n# Licensed to the Apache Softwa"
},
{
"path": "eureka-server/mvnw.cmd",
"chars": 6610,
"preview": "@REM ----------------------------------------------------------------------------\n@REM Licensed to the Apache Software F"
},
{
"path": "eureka-server/pom.xml",
"chars": 2201,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2"
},
{
"path": "eureka-server/src/main/java/com/jourwon/springcloud/EurekaServerApplication.java",
"chars": 518,
"preview": "package com.jourwon.springcloud;\n\nimport org.springframework.boot.SpringApplication;\nimport org.springframework.boot.aut"
},
{
"path": "eureka-server/src/main/resources/application-replica1.yml",
"chars": 295,
"preview": "# 指定运行端口\nserver:\n port: 8002\n\n# 指定服务名称\nspring:\n application:\n name: eureka-server\n\n# 指定主机地址\neureka:\n instance:\n "
},
{
"path": "eureka-server/src/main/resources/application-replica2.yml",
"chars": 297,
"preview": "# 指定运行端口\nserver:\n port: 8003\n\n# 指定服务名称\nspring:\n application:\n name: eureka-server\n\n# 指定主机地址\neureka:\n instance:\n "
},
{
"path": "eureka-server/src/main/resources/application.yml",
"chars": 273,
"preview": "# 指定运行端口\nserver:\n port: 8001\n\n# 指定服务名称\nspring:\n application:\n name: eureka-server\n\n# 指定主机地址\neureka:\n instance:\n "
},
{
"path": "eureka-server/src/test/java/com/jourwon/springcloud/EurekaServerApplicationTests.java",
"chars": 230,
"preview": "package com.jourwon.springcloud;\n\nimport org.junit.jupiter.api.Test;\nimport org.springframework.boot.test.context.Spring"
},
{
"path": "feign-service/.gitignore",
"chars": 333,
"preview": "HELP.md\ntarget/\n!.mvn/wrapper/maven-wrapper.jar\n!**/src/main/**\n!**/src/test/**\n\n### STS ###\n.apt_generated\n.classpath\n."
},
{
"path": "feign-service/.mvn/wrapper/MavenWrapperDownloader.java",
"chars": 4948,
"preview": "/*\n * Copyright 2012-2019 the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"Lic"
},
{
"path": "feign-service/.mvn/wrapper/maven-wrapper.properties",
"chars": 218,
"preview": "distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.2/apache-maven-3.6.2-bin.zip\nwrap"
},
{
"path": "feign-service/mvnw",
"chars": 10079,
"preview": "#!/bin/sh\n# ----------------------------------------------------------------------------\n# Licensed to the Apache Softwa"
},
{
"path": "feign-service/mvnw.cmd",
"chars": 6610,
"preview": "@REM ----------------------------------------------------------------------------\n@REM Licensed to the Apache Software F"
},
{
"path": "feign-service/pom.xml",
"chars": 2529,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2"
},
{
"path": "feign-service/src/main/java/com/jourwon/springcloud/FeignServiceApplication.java",
"chars": 593,
"preview": "package com.jourwon.springcloud;\n\nimport org.springframework.boot.SpringApplication;\nimport org.springframework.boot.aut"
},
{
"path": "feign-service/src/main/java/com/jourwon/springcloud/config/FeignConfig.java",
"chars": 371,
"preview": "package com.jourwon.springcloud.config;\n\nimport feign.Logger;\nimport org.springframework.context.annotation.Bean;\nimport"
},
{
"path": "feign-service/src/main/java/com/jourwon/springcloud/controller/UserFeignController.java",
"chars": 1408,
"preview": "package com.jourwon.springcloud.controller;\n\nimport com.jourwon.springcloud.pojo.Result;\nimport com.jourwon.springcloud."
},
{
"path": "feign-service/src/main/java/com/jourwon/springcloud/pojo/Result.java",
"chars": 946,
"preview": "package com.jourwon.springcloud.pojo;\n\n/**\n * Description:统一返回前端的对象\n *\n * @author JourWon\n * @date 2019/12/18 13:57\n */\n"
},
{
"path": "feign-service/src/main/java/com/jourwon/springcloud/pojo/User.java",
"chars": 823,
"preview": "package com.jourwon.springcloud.pojo;\n\n/**\n * Description:用户\n *\n * @author JourWon\n * @date 2019/12/18 14:00\n */\npublic "
},
{
"path": "feign-service/src/main/java/com/jourwon/springcloud/service/UserService.java",
"chars": 1131,
"preview": "package com.jourwon.springcloud.service;\n\nimport com.jourwon.springcloud.pojo.Result;\nimport com.jourwon.springcloud.poj"
},
{
"path": "feign-service/src/main/java/com/jourwon/springcloud/service/impl/UserFallbackService.java",
"chars": 1074,
"preview": "package com.jourwon.springcloud.service.impl;\n\nimport com.jourwon.springcloud.pojo.Result;\nimport com.jourwon.springclou"
},
{
"path": "feign-service/src/main/resources/application.yml",
"chars": 326,
"preview": "server:\n port: 8701\n\nspring:\n application:\n name: feign-service\n\neureka:\n client:\n register-with-eureka: true\n "
},
{
"path": "feign-service/src/test/java/com/jourwon/springcloud/FeignServiceApplicationTests.java",
"chars": 230,
"preview": "package com.jourwon.springcloud;\n\nimport org.junit.jupiter.api.Test;\nimport org.springframework.boot.test.context.Spring"
},
{
"path": "hystrix-dashboard/.gitignore",
"chars": 333,
"preview": "HELP.md\ntarget/\n!.mvn/wrapper/maven-wrapper.jar\n!**/src/main/**\n!**/src/test/**\n\n### STS ###\n.apt_generated\n.classpath\n."
},
{
"path": "hystrix-dashboard/.mvn/wrapper/MavenWrapperDownloader.java",
"chars": 4948,
"preview": "/*\n * Copyright 2012-2019 the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"Lic"
},
{
"path": "hystrix-dashboard/.mvn/wrapper/maven-wrapper.properties",
"chars": 218,
"preview": "distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.2/apache-maven-3.6.2-bin.zip\nwrap"
},
{
"path": "hystrix-dashboard/mvnw",
"chars": 10079,
"preview": "#!/bin/sh\n# ----------------------------------------------------------------------------\n# Licensed to the Apache Softwa"
},
{
"path": "hystrix-dashboard/mvnw.cmd",
"chars": 6610,
"preview": "@REM ----------------------------------------------------------------------------\n@REM Licensed to the Apache Software F"
},
{
"path": "hystrix-dashboard/pom.xml",
"chars": 2559,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2"
},
{
"path": "hystrix-dashboard/src/main/java/com/jourwon/springcloud/HystrixDashboardApplication.java",
"chars": 624,
"preview": "package com.jourwon.springcloud;\n\nimport org.springframework.boot.SpringApplication;\nimport org.springframework.boot.aut"
},
{
"path": "hystrix-dashboard/src/main/resources/application.yml",
"chars": 215,
"preview": "server:\n port: 8501\n\nspring:\n application:\n name: hystrix-dashboard\n\neureka:\n client:\n register-with-eureka: tr"
},
{
"path": "hystrix-dashboard/src/test/java/com/jourwon/springcloud/HystrixDashboardApplicationTests.java",
"chars": 234,
"preview": "package com.jourwon.springcloud;\n\nimport org.junit.jupiter.api.Test;\nimport org.springframework.boot.test.context.Spring"
},
{
"path": "hystrix-service/.gitignore",
"chars": 333,
"preview": "HELP.md\ntarget/\n!.mvn/wrapper/maven-wrapper.jar\n!**/src/main/**\n!**/src/test/**\n\n### STS ###\n.apt_generated\n.classpath\n."
},
{
"path": "hystrix-service/.mvn/wrapper/MavenWrapperDownloader.java",
"chars": 4948,
"preview": "/*\n * Copyright 2012-2019 the original author or authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"Lic"
},
{
"path": "hystrix-service/.mvn/wrapper/maven-wrapper.properties",
"chars": 218,
"preview": "distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.6.2/apache-maven-3.6.2-bin.zip\nwrap"
},
{
"path": "hystrix-service/mvnw",
"chars": 10079,
"preview": "#!/bin/sh\n# ----------------------------------------------------------------------------\n# Licensed to the Apache Softwa"
},
{
"path": "hystrix-service/mvnw.cmd",
"chars": 6610,
"preview": "@REM ----------------------------------------------------------------------------\n@REM Licensed to the Apache Software F"
},
{
"path": "hystrix-service/pom.xml",
"chars": 2876,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\" xmlns:xsi=\"http://www.w3.org/2"
},
{
"path": "hystrix-service/src/main/java/com/jourwon/springcloud/HystrixServiceApplication.java",
"chars": 657,
"preview": "package com.jourwon.springcloud;\n\nimport org.springframework.boot.SpringApplication;\nimport org.springframework.boot.aut"
},
{
"path": "hystrix-service/src/main/java/com/jourwon/springcloud/config/RibbonConfig.java",
"chars": 503,
"preview": "package com.jourwon.springcloud.config;\n\nimport org.springframework.cloud.client.loadbalancer.LoadBalanced;\nimport org.s"
},
{
"path": "hystrix-service/src/main/java/com/jourwon/springcloud/controller/UserHystrixController.java",
"chars": 2232,
"preview": "package com.jourwon.springcloud.controller;\n\nimport cn.hutool.core.thread.ThreadUtil;\nimport com.jourwon.springcloud.poj"
},
{
"path": "hystrix-service/src/main/java/com/jourwon/springcloud/filter/HystrixRequestContextFilter.java",
"chars": 857,
"preview": "package com.jourwon.springcloud.filter;\n\nimport com.netflix.hystrix.strategy.concurrency.HystrixRequestContext;\nimport o"
},
{
"path": "hystrix-service/src/main/java/com/jourwon/springcloud/pojo/Result.java",
"chars": 946,
"preview": "package com.jourwon.springcloud.pojo;\n\n/**\n * Description:统一返回前端的对象\n *\n * @author JourWon\n * @date 2019/12/18 13:57\n */\n"
},
{
"path": "hystrix-service/src/main/java/com/jourwon/springcloud/pojo/User.java",
"chars": 823,
"preview": "package com.jourwon.springcloud.pojo;\n\n/**\n * Description:用户\n *\n * @author JourWon\n * @date 2019/12/18 14:00\n */\npublic "
},
{
"path": "hystrix-service/src/main/java/com/jourwon/springcloud/service/UserService.java",
"chars": 4445,
"preview": "package com.jourwon.springcloud.service;\n\nimport cn.hutool.core.bean.BeanUtil;\nimport cn.hutool.core.collection.CollUtil"
},
{
"path": "hystrix-service/src/main/resources/application-replica1.yml",
"chars": 371,
"preview": "server:\n port: 8402\n\nspring:\n application:\n name: hystrix-service\n\neureka:\n client:\n register-with-eureka: true"
},
{
"path": "hystrix-service/src/main/resources/application.yml",
"chars": 371,
"preview": "server:\n port: 8401\n\nspring:\n application:\n name: hystrix-service\n\neureka:\n client:\n register-with-eureka: true"
},
{
"path": "hystrix-service/src/test/java/com/jourwon/springcloud/HystrixServiceApplicationTests.java",
"chars": 232,
"preview": "package com.jourwon.springcloud;\n\nimport org.junit.jupiter.api.Test;\nimport org.springframework.boot.test.context.Spring"
},
{
"path": "nacos-config-client/.gitignore",
"chars": 333,
"preview": "HELP.md\ntarget/\n!.mvn/wrapper/maven-wrapper.jar\n!**/src/main/**\n!**/src/test/**\n\n### STS ###\n.apt_generated\n.classpath\n."
}
]
// ... and 240 more files (download for full content)
About this extraction
This page contains the full source code of the JourWon/springcloud-learning GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 440 files (925.1 KB), approximately 261.4k tokens, and a symbol index with 766 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.