Browse Source

Eureka、Ribbon 、Feign、Hystrix、HystrixDashboard、Turbine 、Zuul 、SpringCloudConfig、SpringCloudStream、Springcloud OAuth

青涩知夏 4 years ago
commit
8448ac14b5
100 changed files with 2571 additions and 0 deletions
  1. 32 0
      .gitignore
  2. 20 0
      microcloud-api/pom.xml
  3. 11 0
      microcloud-api/src/main/java/cn/hhj/channel/InputProcess.java
  4. 11 0
      microcloud-api/src/main/java/cn/hhj/channel/OutputProcess.java
  5. 24 0
      microcloud-api/src/main/java/cn/hhj/vo/Company.java
  6. 38 0
      microcloud-api/src/main/java/cn/hhj/vo/Dept.java
  7. 47 0
      microcloud-consumer-feign/pom.xml
  8. 15 0
      microcloud-consumer-feign/src/main/java/cn/hhj/Consumer_Feign_80_StartSpringCloudApplication.java
  9. 28 0
      microcloud-consumer-feign/src/main/java/cn/hhj/config/RestConfig.java
  10. 31 0
      microcloud-consumer-feign/src/main/java/cn/hhj/controller/ConsumerDeptController.java
  11. 14 0
      microcloud-consumer-feign/src/main/resources/application.yml
  12. 27 0
      microcloud-consumer-hystrix-dashboard/pom.xml
  13. 13 0
      microcloud-consumer-hystrix-dashboard/src/main/java/cn/hhj/Consumer_Dashboard_80_StartSpringCloudApplication.java
  14. 2 0
      microcloud-consumer-hystrix-dashboard/src/main/resources/application.yml
  15. 51 0
      microcloud-consumer-hystrix/pom.xml
  16. 17 0
      microcloud-consumer-hystrix/src/main/java/cn/hhj/Consumer_Hystrix_80_StartSpringCloudApplication.java
  17. 28 0
      microcloud-consumer-hystrix/src/main/java/cn/hhj/config/RestConfig.java
  18. 34 0
      microcloud-consumer-hystrix/src/main/java/cn/hhj/controller/ConsumerDeptController.java
  19. 20 0
      microcloud-consumer-hystrix/src/main/resources/application.yml
  20. 63 0
      microcloud-consumer-upload/pom.xml
  21. 15 0
      microcloud-consumer-upload/src/main/java/cn/hhj/Consumer_Upload_80_StartSpringCloudApplication.java
  22. 28 0
      microcloud-consumer-upload/src/main/java/cn/hhj/config/RestConfig.java
  23. 45 0
      microcloud-consumer-upload/src/main/java/cn/hhj/controller/ConsumerUploadController.java
  24. 72 0
      microcloud-consumer-upload/src/main/java/cn/hhj/util/RemoteUploadUtil.java
  25. 17 0
      microcloud-consumer-upload/src/main/resources/application.yml
  26. 15 0
      microcloud-consumer-upload/src/main/view/templates/upload.html
  27. 61 0
      microcloud-consumer/pom.xml
  28. 13 0
      microcloud-consumer/src/main/java/cn/hhj/Consumer_80_StartSpringCloudApplication.java
  29. 28 0
      microcloud-consumer/src/main/java/cn/hhj/config/RestConfig.java
  30. 39 0
      microcloud-consumer/src/main/java/cn/hhj/controller/ConsumerDeptController.java
  31. 7 0
      microcloud-consumer/src/main/resources/application.yml
  32. 29 0
      microcloud-eureka-7001/pom.xml
  33. 13 0
      microcloud-eureka-7001/src/main/java/cn/hhj/Eureka_7001_StartSpringCloudApplication.java
  34. 17 0
      microcloud-eureka-7001/src/main/java/cn/hhj/config/WebSecurityConfig.java
  35. 20 0
      microcloud-eureka-7001/src/main/resources/application.yml
  36. 29 0
      microcloud-eureka-7002/pom.xml
  37. 13 0
      microcloud-eureka-7002/src/main/java/cn/hhj/Eureka_7002_StartSpringCloudApplication.java
  38. 17 0
      microcloud-eureka-7002/src/main/java/cn/hhj/config/WebSecurityConfig.java
  39. 20 0
      microcloud-eureka-7002/src/main/resources/application.yml
  40. 29 0
      microcloud-eureka-7003/pom.xml
  41. 13 0
      microcloud-eureka-7003/src/main/java/cn/hhj/Eureka_7003_StartSpringCloudApplication.java
  42. 17 0
      microcloud-eureka-7003/src/main/java/cn/hhj/config/WebSecurityConfig.java
  43. 20 0
      microcloud-eureka-7003/src/main/resources/application.yml
  44. 29 0
      microcloud-global-security/pom.xml
  45. 34 0
      microcloud-global-security/src/main/java/cn/hhj/config/WebSecurityConfiguration.java
  46. 15 0
      microcloud-global-security/src/main/java/cn/hhj/encoder/MyPasswordEncoder.java
  47. 54 0
      microcloud-provider-company-8101/pom.xml
  48. 17 0
      microcloud-provider-company-8101/src/main/java/cn/hhj/Company_provider_8101_StartSpringCloudApplication.java
  49. 17 0
      microcloud-provider-company-8101/src/main/java/cn/hhj/controller/CompanyRest.java
  50. 19 0
      microcloud-provider-company-8101/src/main/resources/application.yml
  51. 89 0
      microcloud-provider-dept-8001/pom.xml
  52. 15 0
      microcloud-provider-dept-8001/src/main/java/cn/hhj/Provider_Dept_8001_StartSpringCloudApplication.java
  53. 22 0
      microcloud-provider-dept-8001/src/main/java/cn/hhj/config/WebSecurityConfiguration.java
  54. 41 0
      microcloud-provider-dept-8001/src/main/java/cn/hhj/controller/DeptRest.java
  55. 12 0
      microcloud-provider-dept-8001/src/main/java/cn/hhj/dao/IDeptDAO.java
  56. 10 0
      microcloud-provider-dept-8001/src/main/java/cn/hhj/service/IDeptService.java
  57. 28 0
      microcloud-provider-dept-8001/src/main/java/cn/hhj/service/impl/DeptServiceImpl.java
  58. 36 0
      microcloud-provider-dept-8001/src/main/resources/application.yml
  59. 14 0
      microcloud-provider-dept-8001/src/main/resources/dept.sql
  60. 14 0
      microcloud-provider-dept-8001/src/main/resources/mybatis/mapper/cn.hhj/Dept.xml
  61. 10 0
      microcloud-provider-dept-8001/src/main/resources/mybatis/mybatis.cfg.xml
  62. 32 0
      microcloud-provider-dept-8001/src/test/java/cn/hhj/IDeptServiceTest.java
  63. 83 0
      microcloud-provider-dept-8002/pom.xml
  64. 15 0
      microcloud-provider-dept-8002/src/main/java/cn/hhj/Provider_Dept_8002_StartSpringCloudApplication.java
  65. 22 0
      microcloud-provider-dept-8002/src/main/java/cn/hhj/config/WebSecurityConfiguration.java
  66. 42 0
      microcloud-provider-dept-8002/src/main/java/cn/hhj/controller/DeptRest.java
  67. 13 0
      microcloud-provider-dept-8002/src/main/java/cn/hhj/dao/IDeptDAO.java
  68. 11 0
      microcloud-provider-dept-8002/src/main/java/cn/hhj/service/IDeptService.java
  69. 28 0
      microcloud-provider-dept-8002/src/main/java/cn/hhj/service/impl/DeptServiceImpl.java
  70. 36 0
      microcloud-provider-dept-8002/src/main/resources/application.yml
  71. 14 0
      microcloud-provider-dept-8002/src/main/resources/dept.sql
  72. 14 0
      microcloud-provider-dept-8002/src/main/resources/mybatis/mapper/cn.hhj/Dept.xml
  73. 10 0
      microcloud-provider-dept-8002/src/main/resources/mybatis/mybatis.cfg.xml
  74. 82 0
      microcloud-provider-dept-8003/pom.xml
  75. 15 0
      microcloud-provider-dept-8003/src/main/java/cn/hhj/Provider_Dept_8003_StartSpringCloudApplication.java
  76. 22 0
      microcloud-provider-dept-8003/src/main/java/cn/hhj/config/WebSecurityConfiguration.java
  77. 41 0
      microcloud-provider-dept-8003/src/main/java/cn/hhj/controller/DeptRest.java
  78. 12 0
      microcloud-provider-dept-8003/src/main/java/cn/hhj/dao/IDeptDAO.java
  79. 10 0
      microcloud-provider-dept-8003/src/main/java/cn/hhj/service/IDeptService.java
  80. 28 0
      microcloud-provider-dept-8003/src/main/java/cn/hhj/service/impl/DeptServiceImpl.java
  81. 36 0
      microcloud-provider-dept-8003/src/main/resources/application.yml
  82. 14 0
      microcloud-provider-dept-8003/src/main/resources/dept.sql
  83. 14 0
      microcloud-provider-dept-8003/src/main/resources/mybatis/mapper/cn.hhj/Dept.xml
  84. 10 0
      microcloud-provider-dept-8003/src/main/resources/mybatis/mybatis.cfg.xml
  85. 70 0
      microcloud-provider-dept-hystrix-8001/pom.xml
  86. 17 0
      microcloud-provider-dept-hystrix-8001/src/main/java/cn/hhj/Provider_Dept_Hystrix_8001_StartSpringCloudApplication.java
  87. 22 0
      microcloud-provider-dept-hystrix-8001/src/main/java/cn/hhj/config/WebSecurityConfiguration.java
  88. 31 0
      microcloud-provider-dept-hystrix-8001/src/main/java/cn/hhj/controller/DeptRest.java
  89. 12 0
      microcloud-provider-dept-hystrix-8001/src/main/java/cn/hhj/dao/IDeptDAO.java
  90. 10 0
      microcloud-provider-dept-hystrix-8001/src/main/java/cn/hhj/service/IDeptService.java
  91. 28 0
      microcloud-provider-dept-hystrix-8001/src/main/java/cn/hhj/service/impl/DeptServiceImpl.java
  92. 41 0
      microcloud-provider-dept-hystrix-8001/src/main/resources/application.yml
  93. 14 0
      microcloud-provider-dept-hystrix-8001/src/main/resources/dept.sql
  94. 14 0
      microcloud-provider-dept-hystrix-8001/src/main/resources/mybatis/mapper/cn.hhj/Dept.xml
  95. 10 0
      microcloud-provider-dept-hystrix-8001/src/main/resources/mybatis/mybatis.cfg.xml
  96. 52 0
      microcloud-provider-upload-8201/pom.xml
  97. 17 0
      microcloud-provider-upload-8201/src/main/java/cn/hhj/Upload_8201_StartSpringCloudApplication.java
  98. 24 0
      microcloud-provider-upload-8201/src/main/java/cn/hhj/controller/UploadRest.java
  99. 26 0
      microcloud-provider-upload-8201/src/main/resources/application.yml
  100. 0 0
      microcloud-service/pom.xml

+ 32 - 0
.gitignore

@@ -0,0 +1,32 @@
+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/
+/logs/

+ 20 - 0
microcloud-api/pom.xml

@@ -0,0 +1,20 @@
+<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <parent>
+        <artifactId>MicroCloud</artifactId>
+        <groupId>cn.hhj</groupId>
+        <version>0.0.1</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+    <packaging>jar</packaging>
+    <artifactId>microcloud-api</artifactId>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-stream-rabbit</artifactId>
+        </dependency>
+    </dependencies>
+</project>

+ 11 - 0
microcloud-api/src/main/java/cn/hhj/channel/InputProcess.java

@@ -0,0 +1,11 @@
+package cn.hhj.channel;
+
+import org.springframework.cloud.stream.annotation.Input;
+import org.springframework.messaging.SubscribableChannel;
+
+public interface InputProcess {
+    public static final String INPUT = "QingSe_input";      // 输入通道名称
+
+    @Input(InputProcess.INPUT)
+    public SubscribableChannel input();
+}

+ 11 - 0
microcloud-api/src/main/java/cn/hhj/channel/OutputProcess.java

@@ -0,0 +1,11 @@
+package cn.hhj.channel;
+
+import org.springframework.cloud.stream.annotation.Output;
+import org.springframework.messaging.MessageChannel;
+
+public interface OutputProcess {
+    public static final String OUTPUT = "QingSe_output";   // 输出通道名称
+
+    @Output(OutputProcess.OUTPUT)
+    public MessageChannel output();
+}

+ 24 - 0
microcloud-api/src/main/java/cn/hhj/vo/Company.java

@@ -0,0 +1,24 @@
+package cn.hhj.vo;
+
+import java.io.Serializable;
+
+public class Company implements Serializable {
+    private String title;
+    private String note;
+
+    public String getTitle() {
+        return title;
+    }
+
+    public void setTitle(String title) {
+        this.title = title;
+    }
+
+    public String getNote() {
+        return note;
+    }
+
+    public void setNote(String note) {
+        this.note = note;
+    }
+}

+ 38 - 0
microcloud-api/src/main/java/cn/hhj/vo/Dept.java

@@ -0,0 +1,38 @@
+package cn.hhj.vo;
+
+import java.io.Serializable;
+
+public class Dept implements Serializable {
+    private Long deptno;
+    private String dname;
+    private String loc;
+
+    public Long getDeptno() {
+        return deptno;
+    }
+
+    public void setDeptno(Long deptno) {
+        this.deptno = deptno;
+    }
+
+    public String getDname() {
+        return dname;
+    }
+
+    public void setDname(String dname) {
+        this.dname = dname;
+    }
+
+    public String getLoc() {
+        return loc;
+    }
+
+    public void setLoc(String loc) {
+        this.loc = loc;
+    }
+
+    @Override
+    public String toString() {
+        return "Dept{" + "deptno=" + deptno + ", dname='" + dname + '\'' + ", loc='" + loc + '\'' + '}';
+    }
+}

+ 47 - 0
microcloud-consumer-feign/pom.xml

@@ -0,0 +1,47 @@
+<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <parent>
+        <artifactId>MicroCloud</artifactId>
+        <groupId>cn.hhj</groupId>
+        <version>0.0.1</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>microcloud-consumer-feign</artifactId>
+    <dependencies>
+        <dependency>
+            <groupId>cn.hhj</groupId>
+            <artifactId>microcloud-api</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>cn.hhj</groupId>
+            <artifactId>microcloud-service</artifactId>
+            <version>0.0.1</version>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-web</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
+            <exclusions>
+                <exclusion>
+                    <groupId>com.fasterxml.jackson.dataformat</groupId>
+                    <artifactId>jackson-dataformat-xml</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-config</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-openfeign</artifactId>
+        </dependency>
+    </dependencies>
+
+</project>

+ 15 - 0
microcloud-consumer-feign/src/main/java/cn/hhj/Consumer_Feign_80_StartSpringCloudApplication.java

@@ -0,0 +1,15 @@
+package cn.hhj;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
+import org.springframework.cloud.openfeign.EnableFeignClients;
+
+@SpringBootApplication
+@EnableEurekaClient
+@EnableFeignClients(basePackages={"cn.hhj.service"})
+public class Consumer_Feign_80_StartSpringCloudApplication {
+   public static void main(String[] args) {
+      SpringApplication.run(Consumer_Feign_80_StartSpringCloudApplication.class, args);
+   }
+}

+ 28 - 0
microcloud-consumer-feign/src/main/java/cn/hhj/config/RestConfig.java

@@ -0,0 +1,28 @@
+package cn.hhj.config;
+
+//import org.springframework.cloud.client.loadbalancer.LoadBalanced;
+//import org.springframework.context.annotation.Bean;
+//import org.springframework.context.annotation.Configuration;
+//import org.springframework.http.HttpHeaders;
+//import org.springframework.web.client.RestTemplate;
+//import java.nio.charset.Charset;
+//import java.util.Base64;
+
+//@Configuration
+//public class RestConfig {
+//   @Bean
+//   @LoadBalanced
+//   public RestTemplate getRestTemplate() {
+//      return new RestTemplate() ;
+//   }
+//   @Bean
+//   public HttpHeaders getHeaders() { // 要进行一个Http头信息配置
+//      HttpHeaders headers = new HttpHeaders(); // 定义一个HTTP的头信息
+//      String auth = "QingSe:hello"; // 认证的原始信息
+//      byte[] encodedAuth = Base64.getEncoder().encode(auth.getBytes(Charset.forName("US-ASCII"))); // 进行一个加密的处理
+//      // 在进行授权的头信息内容配置的时候加密的信息一定要与“Basic”之间有一个空格
+//      String authHeader = "Basic " + new String(encodedAuth);
+//      headers.set("Authorization", authHeader);
+//      return headers;
+//   }
+//}

+ 31 - 0
microcloud-consumer-feign/src/main/java/cn/hhj/controller/ConsumerDeptController.java

@@ -0,0 +1,31 @@
+package cn.hhj.controller;
+
+import cn.hhj.service.IDeptClientService;
+import cn.hhj.vo.Dept;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpEntity;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.HttpMethod;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.client.RestTemplate;
+import java.util.List;
+
+@RestController
+public class ConsumerDeptController {
+   @Autowired
+   private IDeptClientService deptClientService;
+
+   @RequestMapping(value = "/consumer/dept/get")
+   public Object getDept(long id) {
+      return  deptClientService.get(id);
+   }
+   @RequestMapping(value = "/consumer/dept/list")
+   public Object listDept() {
+      return  deptClientService.list();
+   }
+   @RequestMapping(value = "/consumer/dept/add")
+   public Object addDept(Dept dept) {
+      return deptClientService.add(dept);
+   }
+}

+ 14 - 0
microcloud-consumer-feign/src/main/resources/application.yml

@@ -0,0 +1,14 @@
+server:
+  port: 80
+eureka:
+  client:
+    service-url:
+      defaultZone: http://QingSe:hello@eureka-7001.com:7001/eureka,http://QingSe:hello@eureka-7002.com:7002/eureka,http://QingSe:hello@eureka-7003.com:7003/eureka  #绑定到此地址中的eureka注册中心
+  instance:
+    instance-id: comsumer.com                          #信息列表时显示的主机名称
+    prefer-ip-address: true                            #访问路径地址更改为IP
+    lease-expiration-duration-in-seconds: 5            #距离上一次心跳的时间,超过则认为是宕机
+    lease-renewal-interval-in-seconds: 2               #设置心跳的间隔时间
+spring:
+  application:
+    name: microcloud-consumer

+ 27 - 0
microcloud-consumer-hystrix-dashboard/pom.xml

@@ -0,0 +1,27 @@
+<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <parent>
+        <artifactId>MicroCloud</artifactId>
+        <groupId>cn.hhj</groupId>
+        <version>0.0.1</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>microcloud-consumer-hystrix-dashboard</artifactId>
+    <dependencies>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-actuator</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-netflix-hystrix-dashboard</artifactId>
+        </dependency>
+    </dependencies>
+</project>

+ 13 - 0
microcloud-consumer-hystrix-dashboard/src/main/java/cn/hhj/Consumer_Dashboard_80_StartSpringCloudApplication.java

@@ -0,0 +1,13 @@
+package cn.hhj;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.cloud.netflix.hystrix.dashboard.EnableHystrixDashboard;
+
+@SpringBootApplication
+@EnableHystrixDashboard
+public class Consumer_Dashboard_80_StartSpringCloudApplication {
+   public static void main(String[] args) {
+      SpringApplication.run(Consumer_Dashboard_80_StartSpringCloudApplication.class, args);
+   }
+}

+ 2 - 0
microcloud-consumer-hystrix-dashboard/src/main/resources/application.yml

@@ -0,0 +1,2 @@
+server:
+  port: 9001

+ 51 - 0
microcloud-consumer-hystrix/pom.xml

@@ -0,0 +1,51 @@
+<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <parent>
+        <artifactId>MicroCloud</artifactId>
+        <groupId>cn.hhj</groupId>
+        <version>0.0.1</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>microcloud-consumer-hystrix</artifactId>
+    <dependencies>
+        <dependency>
+            <groupId>cn.hhj</groupId>
+            <artifactId>microcloud-api</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>cn.hhj</groupId>
+            <artifactId>microcloud-service</artifactId>
+            <version>0.0.1</version>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-web</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
+            <exclusions>
+                <exclusion>
+                    <groupId>com.fasterxml.jackson.dataformat</groupId>
+                    <artifactId>jackson-dataformat-xml</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-config</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-openfeign</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
+        </dependency>
+    </dependencies>
+
+</project>

+ 17 - 0
microcloud-consumer-hystrix/src/main/java/cn/hhj/Consumer_Hystrix_80_StartSpringCloudApplication.java

@@ -0,0 +1,17 @@
+package cn.hhj;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
+import org.springframework.cloud.openfeign.EnableFeignClients;
+import org.springframework.context.annotation.ComponentScan;
+
+@SpringBootApplication
+@EnableEurekaClient
+@ComponentScan(value = {"cn.hhj.service","cn.hhj"})
+@EnableFeignClients(basePackages={"cn.hhj.service"})
+public class Consumer_Hystrix_80_StartSpringCloudApplication {
+   public static void main(String[] args) {
+      SpringApplication.run(Consumer_Hystrix_80_StartSpringCloudApplication.class, args);
+   }
+}

+ 28 - 0
microcloud-consumer-hystrix/src/main/java/cn/hhj/config/RestConfig.java

@@ -0,0 +1,28 @@
+package cn.hhj.config;
+
+//import org.springframework.cloud.client.loadbalancer.LoadBalanced;
+//import org.springframework.context.annotation.Bean;
+//import org.springframework.context.annotation.Configuration;
+//import org.springframework.http.HttpHeaders;
+//import org.springframework.web.client.RestTemplate;
+//import java.nio.charset.Charset;
+//import java.util.Base64;
+
+//@Configuration
+//public class RestConfig {
+//   @Bean
+//   @LoadBalanced
+//   public RestTemplate getRestTemplate() {
+//      return new RestTemplate() ;
+//   }
+//   @Bean
+//   public HttpHeaders getHeaders() { // 要进行一个Http头信息配置
+//      HttpHeaders headers = new HttpHeaders(); // 定义一个HTTP的头信息
+//      String auth = "QingSe:hello"; // 认证的原始信息
+//      byte[] encodedAuth = Base64.getEncoder().encode(auth.getBytes(Charset.forName("US-ASCII"))); // 进行一个加密的处理
+//      // 在进行授权的头信息内容配置的时候加密的信息一定要与“Basic”之间有一个空格
+//      String authHeader = "Basic " + new String(encodedAuth);
+//      headers.set("Authorization", authHeader);
+//      return headers;
+//   }
+//}

+ 34 - 0
microcloud-consumer-hystrix/src/main/java/cn/hhj/controller/ConsumerDeptController.java

@@ -0,0 +1,34 @@
+package cn.hhj.controller;
+
+import cn.hhj.service.IDeptClientService;
+import cn.hhj.vo.Dept;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpEntity;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.HttpMethod;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.client.RestTemplate;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+@RestController
+public class ConsumerDeptController {
+
+   @Autowired
+   private IDeptClientService deptClientService;
+
+   @RequestMapping(value = "/consumer/dept/get")
+   public Object getDept(long id) {
+      return  deptClientService.get(id);
+   }
+   @RequestMapping(value = "/consumer/dept/list")
+   public Object listDept() {
+      return  deptClientService.list();
+   }
+   @RequestMapping(value = "/consumer/dept/add")
+   public Object addDept(Dept dept) {
+      return deptClientService.add(dept);
+   }
+}

+ 20 - 0
microcloud-consumer-hystrix/src/main/resources/application.yml

@@ -0,0 +1,20 @@
+server:
+  port: 80
+eureka:
+  client:
+    service-url:
+      defaultZone: http://QingSe:hello@eureka-7001.com:7001/eureka,http://QingSe:hello@eureka-7002.com:7002/eureka,http://QingSe:hello@eureka-7003.com:7003/eureka  #绑定到此地址中的eureka注册中心
+    register-with-eureka: false
+feign:
+  compression:
+    request:
+      mime-types:             # 可以被压缩的类型
+        - text/xml
+        - application/xml
+        - appliaction/json
+      min-request-size: 2048  # 超过2048的字节进行压缩
+  hystrix:
+    enabled: true
+logging:
+  level:
+    cn.hhj.service: DEBUG

+ 63 - 0
microcloud-consumer-upload/pom.xml

@@ -0,0 +1,63 @@
+<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <parent>
+        <artifactId>MicroCloud</artifactId>
+        <groupId>cn.hhj</groupId>
+        <version>0.0.1</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>microcloud-consumer-upload</artifactId>
+
+    <dependencies>
+        <dependency>
+            <groupId>cn.hhj</groupId>
+            <artifactId>microcloud-api</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>cn.hhj</groupId>
+            <artifactId>microcloud-service</artifactId>
+            <version>0.0.1</version>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-web</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
+            <exclusions>
+                <exclusion>
+                    <groupId>com.fasterxml.jackson.dataformat</groupId>
+                    <artifactId>jackson-dataformat-xml</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-config</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-openfeign</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.httpcomponents</groupId>
+            <artifactId>httpclient</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.httpcomponents</groupId>
+            <artifactId>httpmime</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-thymeleaf</artifactId>
+        </dependency>
+    </dependencies>
+</project>

+ 15 - 0
microcloud-consumer-upload/src/main/java/cn/hhj/Consumer_Upload_80_StartSpringCloudApplication.java

@@ -0,0 +1,15 @@
+package cn.hhj;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
+import org.springframework.cloud.openfeign.EnableFeignClients;
+import org.springframework.context.annotation.ComponentScan;
+
+@SpringBootApplication
+@EnableEurekaClient
+public class Consumer_Upload_80_StartSpringCloudApplication {
+   public static void main(String[] args) {
+      SpringApplication.run(Consumer_Upload_80_StartSpringCloudApplication.class, args);
+   }
+}

+ 28 - 0
microcloud-consumer-upload/src/main/java/cn/hhj/config/RestConfig.java

@@ -0,0 +1,28 @@
+package cn.hhj.config;
+
+//import org.springframework.cloud.client.loadbalancer.LoadBalanced;
+//import org.springframework.context.annotation.Bean;
+//import org.springframework.context.annotation.Configuration;
+//import org.springframework.http.HttpHeaders;
+//import org.springframework.web.client.RestTemplate;
+//import java.nio.charset.Charset;
+//import java.util.Base64;
+
+//@Configuration
+//public class RestConfig {
+//   @Bean
+//   @LoadBalanced
+//   public RestTemplate getRestTemplate() {
+//      return new RestTemplate() ;
+//   }
+//   @Bean
+//   public HttpHeaders getHeaders() { // 要进行一个Http头信息配置
+//      HttpHeaders headers = new HttpHeaders(); // 定义一个HTTP的头信息
+//      String auth = "QingSe:hello"; // 认证的原始信息
+//      byte[] encodedAuth = Base64.getEncoder().encode(auth.getBytes(Charset.forName("US-ASCII"))); // 进行一个加密的处理
+//      // 在进行授权的头信息内容配置的时候加密的信息一定要与“Basic”之间有一个空格
+//      String authHeader = "Basic " + new String(encodedAuth);
+//      headers.set("Authorization", authHeader);
+//      return headers;
+//   }
+//}

+ 45 - 0
microcloud-consumer-upload/src/main/java/cn/hhj/controller/ConsumerUploadController.java

@@ -0,0 +1,45 @@
+package cn.hhj.controller;
+
+import cn.hhj.util.RemoteUploadUtil;
+import org.apache.http.HttpEntity;
+import org.apache.http.HttpResponse;
+import org.apache.http.auth.AuthScope;
+import org.apache.http.auth.Credentials;
+import org.apache.http.auth.UsernamePasswordCredentials;
+import org.apache.http.client.CredentialsProvider;
+import org.apache.http.client.methods.HttpPost;
+import org.apache.http.client.protocol.HttpClientContext;
+import org.apache.http.entity.ContentType;
+import org.apache.http.entity.mime.MultipartEntityBuilder;
+import org.apache.http.impl.client.BasicCredentialsProvider;
+import org.apache.http.impl.client.CloseableHttpClient;
+import org.apache.http.impl.client.HttpClients;
+import org.apache.http.util.EntityUtils;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.nio.charset.Charset;
+
+@Controller
+@RequestMapping("/consumer")
+public class ConsumerUploadController {
+   // 设置要进行远程上传微服务调用的代理地址
+   public static final String UPLOAD_URL
+           = "http://gateway-9501.com:9501/zuul/QingSe/upload-proxy/upload";
+
+   @GetMapping("uploadPre")
+   public String uploadPre() {
+      return "upload" ;
+   }
+
+   @ResponseBody
+   @PostMapping("upload")
+   public String upload(String name,  MultipartFile photo)throws Exception{
+      System.err.println("【"+name+"正在执行远程文件上传】");
+      return RemoteUploadUtil.remoteupload(photo,UPLOAD_URL);
+   }
+}

+ 72 - 0
microcloud-consumer-upload/src/main/java/cn/hhj/util/RemoteUploadUtil.java

@@ -0,0 +1,72 @@
+package cn.hhj.util;
+
+import org.apache.http.HttpEntity;
+import org.apache.http.HttpResponse;
+import org.apache.http.auth.AuthScope;
+import org.apache.http.auth.Credentials;
+import org.apache.http.auth.UsernamePasswordCredentials;
+import org.apache.http.client.CredentialsProvider;
+import org.apache.http.client.methods.HttpPost;
+import org.apache.http.client.protocol.HttpClientContext;
+import org.apache.http.entity.ContentType;
+import org.apache.http.entity.mime.MultipartEntityBuilder;
+import org.apache.http.impl.client.BasicCredentialsProvider;
+import org.apache.http.impl.client.CloseableHttpClient;
+import org.apache.http.impl.client.HttpClients;
+import org.apache.http.util.EntityUtils;
+import org.springframework.web.multipart.MultipartFile;
+import java.nio.charset.Charset;
+
+public class RemoteUploadUtil {
+    public static String remoteupload(MultipartFile photo, String UPLOAD_URL) throws Exception {
+        if (photo != null) {
+            //创建一个httpClient对象
+            CloseableHttpClient httpClient = HttpClients.createDefault();
+            // 创建Http处理操作的上下文对象
+            HttpClientContext httpContext = HttpClientContext.create();
+            // 设置认证的提供信息
+//         httpContext.setCredentialsProvider(credsProvider);
+            // 设置要进行访问的请求地址
+            HttpPost httpPost = new HttpPost(UPLOAD_URL);
+            HttpEntity entity = MultipartEntityBuilder.create()
+                    .addBinaryBody("photo", photo.getBytes(),
+                            ContentType.create("image/jpeg"), "temp.jpg").build();
+            // 设置要发送的实体内容
+            httpPost.setEntity(entity);
+            // 执行请求的发送
+            HttpResponse response = httpClient.execute(httpPost, httpContext);
+            //取得返回的内容
+            return EntityUtils.toString(response.getEntity(), Charset.forName("UTF-8"));
+        }
+        return "error.jpg";
+    }
+
+    public String remoteupload(String username, String password, MultipartFile photo, String UPLOAD_URL) throws Exception {
+        if (photo != null) {
+            //创建一个httpClient对象
+            CloseableHttpClient httpClient = HttpClients.createDefault();
+            //创建一个具有认证访问的信息
+            CredentialsProvider credsProvider = new BasicCredentialsProvider();
+            // 创建一条认证操作信息
+            Credentials credentials = new UsernamePasswordCredentials("QingSe", "hello");
+            // 现在所有的认证请求都使用一个认证信息
+            credsProvider.setCredentials(AuthScope.ANY, credentials);
+            // 创建Http处理操作的上下文对象
+            HttpClientContext httpContext = HttpClientContext.create();
+            // 设置认证的提供信息
+            httpContext.setCredentialsProvider(credsProvider);
+            // 设置要进行访问的请求地址
+            HttpPost httpPost = new HttpPost(UPLOAD_URL);
+            HttpEntity entity = MultipartEntityBuilder.create()
+                    .addBinaryBody("photo", photo.getBytes(),
+                            ContentType.create("image/jpeg"), "temp.jpg").build();
+            // 设置要发送的实体内容
+            httpPost.setEntity(entity);
+            // 执行请求的发送
+            HttpResponse response = httpClient.execute(httpPost, httpContext);
+            //取得返回的内容
+            return EntityUtils.toString(response.getEntity(), Charset.forName("UTF-8"));
+        }
+        return "error.jpg";
+    }
+}

+ 17 - 0
microcloud-consumer-upload/src/main/resources/application.yml

@@ -0,0 +1,17 @@
+server:
+  port: 80
+eureka:
+  client:
+    service-url:
+      defaultZone: http://QingSe:hello@eureka-7001.com:7001/eureka,http://QingSe:hello@eureka-7002.com:7002/eureka,http://QingSe:hello@eureka-7003.com:7003/eureka  #绑定到此地址中的eureka注册中心
+    register-with-eureka: false
+feign:
+  compression:
+    request:
+      mime-types:             # 可以被压缩的类型
+        - text/xml
+        - application/xml
+        - appliaction/json
+      min-request-size: 2048  # 超过2048的字节进行压缩
+  hystrix:
+    enabled: true

+ 15 - 0
microcloud-consumer-upload/src/main/view/templates/upload.html

@@ -0,0 +1,15 @@
+<!DOCTYPE HTML>
+<html xmlns:th="http://www.thymeleaf.org">
+<head>
+    <title>SpringCloud微服务</title>
+    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
+</head>
+<body>
+<form th:action="@{/consumer/upload}" method="post" enctype="multipart/form-data">
+    姓名:<input type="text" name="name" id="name" value="QingSe"/><br/>
+    照片:<input type="file" name="photo" id="photo"/><br/>
+    <input type="submit" value="提交"/>
+    <input type="reset" value="重置"/>
+</form>
+</body>
+</html>

+ 61 - 0
microcloud-consumer/pom.xml

@@ -0,0 +1,61 @@
+<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <parent>
+        <artifactId>MicroCloud</artifactId>
+        <groupId>cn.hhj</groupId>
+        <version>0.0.1</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>microcloud-consumer</artifactId>
+
+    <dependencies>
+        <dependency>
+            <groupId>cn.hhj</groupId>
+            <artifactId>microcloud-api</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-jetty</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-web</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-test</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-devtools</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
+            <exclusions>
+                <exclusion>
+                    <groupId>com.fasterxml.jackson.dataformat</groupId>
+                    <artifactId>jackson-dataformat-xml</artifactId>
+                </exclusion>
+            </exclusions>
+        </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-ribbon</artifactId>
+        </dependency>
+    </dependencies>
+
+</project>

+ 13 - 0
microcloud-consumer/src/main/java/cn/hhj/Consumer_80_StartSpringCloudApplication.java

@@ -0,0 +1,13 @@
+package cn.hhj;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
+
+@SpringBootApplication
+@EnableEurekaClient
+public class Consumer_80_StartSpringCloudApplication {
+   public static void main(String[] args) {
+      SpringApplication.run(Consumer_80_StartSpringCloudApplication.class, args);
+   }
+}

+ 28 - 0
microcloud-consumer/src/main/java/cn/hhj/config/RestConfig.java

@@ -0,0 +1,28 @@
+package cn.hhj.config;
+
+import org.springframework.cloud.client.loadbalancer.LoadBalanced;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.http.HttpHeaders;
+import org.springframework.web.client.RestTemplate;
+import java.nio.charset.Charset;
+import java.util.Base64;
+
+@Configuration
+public class RestConfig {
+   @Bean
+   @LoadBalanced
+   public RestTemplate getRestTemplate() {
+      return new RestTemplate() ;
+   }
+   @Bean
+   public HttpHeaders getHeaders() { // 要进行一个Http头信息配置
+      HttpHeaders headers = new HttpHeaders(); // 定义一个HTTP的头信息
+      String auth = "QingSe:hello"; // 认证的原始信息
+      byte[] encodedAuth = Base64.getEncoder().encode(auth.getBytes(Charset.forName("US-ASCII"))); // 进行一个加密的处理
+      // 在进行授权的头信息内容配置的时候加密的信息一定要与“Basic”之间有一个空格
+      String authHeader = "Basic " + new String(encodedAuth);
+      headers.set("Authorization", authHeader);
+      return headers;
+   }
+}

+ 39 - 0
microcloud-consumer/src/main/java/cn/hhj/controller/ConsumerDeptController.java

@@ -0,0 +1,39 @@
+package cn.hhj.controller;
+
+import cn.hhj.vo.Dept;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpEntity;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.HttpMethod;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.client.RestTemplate;
+import java.util.List;
+
+@RestController
+public class ConsumerDeptController {
+   private static final String DEPT_GET_URL = "http://MICROCLOUD-PROVIDER-DEPT/dept/get/";
+   private static final String DEPT_LIST_URL = "http://MICROCLOUD-PROVIDER-DEPT/dept/list/";
+   private static final String DEPT_ADD_URL = "http://MICROCLOUD-PROVIDER-DEPT/dept/add/";
+
+   @Autowired
+   private RestTemplate restTemplate;
+   @Autowired
+   private HttpHeaders headers;
+
+   @RequestMapping(value = "/consumer/dept/get")
+   public Object getDept(long id) {
+      return  this.restTemplate.exchange(DEPT_GET_URL + id,
+              HttpMethod.GET, new HttpEntity<Object>(this.headers), Dept.class).getBody();
+   }
+   @RequestMapping(value = "/consumer/dept/list")
+   public Object listDept() {
+      return  this.restTemplate.exchange(DEPT_LIST_URL,
+              HttpMethod.GET, new HttpEntity<Object>(this.headers), List.class).getBody();
+   }
+   @RequestMapping(value = "/consumer/dept/add")
+   public Object addDept(Dept dept) {
+      return this.restTemplate.exchange(DEPT_ADD_URL, HttpMethod.POST,
+              new HttpEntity<Object>(dept, this.headers), Boolean.class).getBody();
+   }
+}

+ 7 - 0
microcloud-consumer/src/main/resources/application.yml

@@ -0,0 +1,7 @@
+server:
+  port: 80
+eureka:
+  client:
+    service-url:
+      defaultZone: http://QingSe:hello@eureka-7001.com:7001/eureka,http://QingSe:hello@eureka-7002.com:7002/eureka,http://QingSe:hello@eureka-7003.com:7003/eureka  #绑定到此地址中的eureka注册中心
+    register-with-eureka: false

+ 29 - 0
microcloud-eureka-7001/pom.xml

@@ -0,0 +1,29 @@
+<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <parent>
+        <artifactId>MicroCloud</artifactId>
+        <groupId>cn.hhj</groupId>
+        <version>0.0.1</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>microcloud-eureka-7001</artifactId>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-config</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-security</artifactId>
+        </dependency>
+    </dependencies>
+</project>

+ 13 - 0
microcloud-eureka-7001/src/main/java/cn/hhj/Eureka_7001_StartSpringCloudApplication.java

@@ -0,0 +1,13 @@
+package cn.hhj;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
+
+@SpringBootApplication
+@EnableEurekaServer
+public class Eureka_7001_StartSpringCloudApplication {
+    public static void main(String[] args) {
+        SpringApplication.run(Eureka_7001_StartSpringCloudApplication.class, args);
+    }
+}

+ 17 - 0
microcloud-eureka-7001/src/main/java/cn/hhj/config/WebSecurityConfig.java

@@ -0,0 +1,17 @@
+package cn.hhj.config;
+
+import org.springframework.security.config.annotation.web.builders.HttpSecurity;
+import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
+import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
+
+/**
+ * 需要开启此配置才可以在连接上使用密码登录
+ */
+@EnableWebSecurity
+public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
+    @Override
+    protected void configure(HttpSecurity http) throws Exception {
+        http.csrf().disable();
+        super.configure(http);
+    }
+}

+ 20 - 0
microcloud-eureka-7001/src/main/resources/application.yml

@@ -0,0 +1,20 @@
+server:
+  port: 7001
+eureka:
+  instance:
+    hostname: eureka-7001.com     #定义eureka实例所在的主机名称
+  client:
+    register-with-eureka: false    #是否要将自己注册进去
+    fetch-registry: false          #是否要被检索
+    service-url:
+      defaultZone: http://QingSe:hello@eureka-7002.com:7002/eureka/,http://QingSe:hello@eureka-7003.com:7003/eureka/
+  server:
+    eviction-interval-timer-in-ms: 60000 #设置无效服务清理间隔,默认60毫秒
+    enable-self-preservation: true     #关闭保护模式
+spring:
+  security:
+    user:
+      name: QingSe
+      password: hello
+      roles:
+        - QingSe

+ 29 - 0
microcloud-eureka-7002/pom.xml

@@ -0,0 +1,29 @@
+<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <parent>
+        <artifactId>MicroCloud</artifactId>
+        <groupId>cn.hhj</groupId>
+        <version>0.0.1</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>microcloud-eureka-7002</artifactId>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-config</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-security</artifactId>
+        </dependency>
+    </dependencies>
+</project>

+ 13 - 0
microcloud-eureka-7002/src/main/java/cn/hhj/Eureka_7002_StartSpringCloudApplication.java

@@ -0,0 +1,13 @@
+package cn.hhj;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
+
+@SpringBootApplication
+@EnableEurekaServer
+public class Eureka_7002_StartSpringCloudApplication {
+    public static void main(String[] args) {
+        SpringApplication.run(Eureka_7002_StartSpringCloudApplication.class, args);
+    }
+}

+ 17 - 0
microcloud-eureka-7002/src/main/java/cn/hhj/config/WebSecurityConfig.java

@@ -0,0 +1,17 @@
+package cn.hhj.config;
+
+import org.springframework.security.config.annotation.web.builders.HttpSecurity;
+import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
+import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
+
+/**
+ * 需要开启此配置才可以在连接上使用密码登录
+ */
+@EnableWebSecurity
+public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
+    @Override
+    protected void configure(HttpSecurity http) throws Exception {
+        http.csrf().disable();
+        super.configure(http);
+    }
+}

+ 20 - 0
microcloud-eureka-7002/src/main/resources/application.yml

@@ -0,0 +1,20 @@
+server:
+  port: 7002
+eureka:
+  instance:
+    hostname: eureka-7002.com     #定义eureka实例所在的主机名称
+  client:
+    register-with-eureka: false    #是否要将自己注册进去
+    fetch-registry: false          #是否要被检索
+    service-url:
+      defaultZone: http://QingSe:hello@eureka-7001.com:7001/eureka/,http://QingSe:hello@eureka-7003.com:7003/eureka/
+  server:
+    eviction-interval-timer-in-ms: 60000 #设置无效服务清理间隔,默认60毫秒
+    enable-self-preservation: true     #关闭保护模式
+spring:
+  security:
+    user:
+      name: QingSe
+      password: hello
+      roles:
+        - QingSe

+ 29 - 0
microcloud-eureka-7003/pom.xml

@@ -0,0 +1,29 @@
+<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <parent>
+        <artifactId>MicroCloud</artifactId>
+        <groupId>cn.hhj</groupId>
+        <version>0.0.1</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>microcloud-eureka-7003</artifactId>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-config</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-security</artifactId>
+        </dependency>
+    </dependencies>
+</project>

+ 13 - 0
microcloud-eureka-7003/src/main/java/cn/hhj/Eureka_7003_StartSpringCloudApplication.java

@@ -0,0 +1,13 @@
+package cn.hhj;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
+
+@SpringBootApplication
+@EnableEurekaServer
+public class Eureka_7003_StartSpringCloudApplication {
+    public static void main(String[] args) {
+        SpringApplication.run(Eureka_7003_StartSpringCloudApplication.class, args);
+    }
+}

+ 17 - 0
microcloud-eureka-7003/src/main/java/cn/hhj/config/WebSecurityConfig.java

@@ -0,0 +1,17 @@
+package cn.hhj.config;
+
+import org.springframework.security.config.annotation.web.builders.HttpSecurity;
+import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
+import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
+
+/**
+ * 需要开启此配置才可以在连接上使用密码登录
+ */
+@EnableWebSecurity
+public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
+    @Override
+    protected void configure(HttpSecurity http) throws Exception {
+        http.csrf().disable();
+        super.configure(http);
+    }
+}

+ 20 - 0
microcloud-eureka-7003/src/main/resources/application.yml

@@ -0,0 +1,20 @@
+server:
+  port: 7003
+eureka:
+  instance:
+    hostname: eureka-7003.com     #定义eureka实例所在的主机名称
+  client:
+    register-with-eureka: false    #是否要将自己注册进去
+    fetch-registry: false          #是否要被检索
+    service-url:
+      defaultZone: http://QingSe:hello@eureka-7001.com:7001/eureka/,http://QingSe:hello@eureka-7002.com:7002/eureka/
+  server:
+    eviction-interval-timer-in-ms: 60000 #设置无效服务清理间隔,默认60毫秒
+    enable-self-preservation: true     #关闭保护模式
+spring:
+  security:
+    user:
+      name: QingSe
+      password: hello
+      roles:
+        - QingSe

+ 29 - 0
microcloud-global-security/pom.xml

@@ -0,0 +1,29 @@
+<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <parent>
+        <artifactId>MicroCloud</artifactId>
+        <groupId>cn.hhj</groupId>
+        <version>0.0.1</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+    <packaging>jar</packaging>
+
+    <artifactId>microcloud-global-security</artifactId>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-web</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-security</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-devtools</artifactId>
+        </dependency>
+    </dependencies>
+</project>

+ 34 - 0
microcloud-global-security/src/main/java/cn/hhj/config/WebSecurityConfiguration.java

@@ -0,0 +1,34 @@
+package cn.hhj.config;
+
+import cn.hhj.encoder.MyPasswordEncoder;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
+import org.springframework.security.config.annotation.web.builders.HttpSecurity;
+import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
+import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
+import org.springframework.security.config.http.SessionCreationPolicy;
+
+
+@Configuration
+@EnableWebSecurity
+public class WebSecurityConfiguration extends WebSecurityConfigurerAdapter {
+
+    @Autowired
+    public void configGlobal(AuthenticationManagerBuilder auth) throws Exception {
+        auth.inMemoryAuthentication().passwordEncoder(new MyPasswordEncoder())
+                .withUser("QingSe").password("hello").roles("USER")
+                .and()
+                .withUser("admin").password("hello").roles("USER", "ADMIN");
+    }
+
+    @Override
+    protected void configure(HttpSecurity http) throws Exception {
+        //关闭防止跨域攻击,post无需附带crf
+        http.csrf().disable();
+        // 表示所有的访问都必须进行认证处理后才可以正常进行
+        http.httpBasic().and().authorizeRequests().anyRequest().fullyAuthenticated();
+        // 所有的Rest服务一定要设置为无状态,以提升操作性能
+        http.sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS);
+    }
+}

+ 15 - 0
microcloud-global-security/src/main/java/cn/hhj/encoder/MyPasswordEncoder.java

@@ -0,0 +1,15 @@
+package cn.hhj.encoder;
+
+import org.springframework.security.crypto.password.PasswordEncoder;
+
+public class MyPasswordEncoder implements PasswordEncoder {
+    @Override
+    public String encode(CharSequence charSequence) {
+        return charSequence.toString();
+    }
+
+    @Override
+    public boolean matches(CharSequence charSequence, String s) {
+        return s.equals(charSequence.toString());
+    }
+}

+ 54 - 0
microcloud-provider-company-8101/pom.xml

@@ -0,0 +1,54 @@
+<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <parent>
+        <artifactId>MicroCloud</artifactId>
+        <groupId>cn.hhj</groupId>
+        <version>0.0.1</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>microcloud-provider-company-8101</artifactId>
+    <properties>
+        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+    </properties>
+    <dependencies>
+        <!--eureka所需依赖-->
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
+            <exclusions>
+                <exclusion>
+                    <groupId>com.fasterxml.jackson.dataformat</groupId>
+                    <artifactId>jackson-dataformat-xml</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-config</artifactId>
+        </dependency>
+
+        <!--监控所需依赖-->
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-actuator</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-web</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>cn.hhj</groupId>
+            <artifactId>microcloud-api</artifactId>
+        </dependency>
+
+    </dependencies>
+</project>

+ 17 - 0
microcloud-provider-company-8101/src/main/java/cn/hhj/Company_provider_8101_StartSpringCloudApplication.java

@@ -0,0 +1,17 @@
+package cn.hhj;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.cloud.client.circuitbreaker.EnableCircuitBreaker;
+import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
+import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
+
+@SpringBootApplication
+@EnableEurekaClient
+@EnableCircuitBreaker
+@EnableDiscoveryClient
+public class Company_provider_8101_StartSpringCloudApplication {
+    public static void main(String[] args) {
+        SpringApplication.run(Company_provider_8101_StartSpringCloudApplication.class, args);
+    }
+}

+ 17 - 0
microcloud-provider-company-8101/src/main/java/cn/hhj/controller/CompanyRest.java

@@ -0,0 +1,17 @@
+package cn.hhj.controller;
+
+import cn.hhj.vo.Company;
+import com.netflix.hystrix.contrib.javanica.annotation.HystrixCommand;
+import org.springframework.web.bind.annotation.*;
+
+@RestController
+public class CompanyRest {
+   @GetMapping("/company/get/{title}")
+   @HystrixCommand    // 如果需要进行性能监控,那么必须要有此注解
+   public Object get(@PathVariable("title") String title) {
+      Company vo = new Company() ;
+      vo.setTitle(title);
+      vo.setNote("www.hhj.cn");
+      return vo ;
+   }
+}

+ 19 - 0
microcloud-provider-company-8101/src/main/resources/application.yml

@@ -0,0 +1,19 @@
+server:
+  port: 8101
+eureka:
+  client:
+    service-url:
+      defaultZone: http://QingSe:hello@eureka-7001.com:7001/eureka,http://QingSe:hello@eureka-7002.com:7002/eureka,http://QingSe:hello@eureka-7003.com:7003/eureka  #绑定到此地址中的eureka注册中心
+  instance:
+    instance-id: dept-8001.com                         #信息列表时显示的主机名称
+    prefer-ip-address: true                            #访问路径地址更改为IP
+    lease-expiration-duration-in-seconds: 5            #距离上一次心跳的时间,超过则认为是宕机
+    lease-renewal-interval-in-seconds: 2               #设置心跳的间隔时间
+info:
+  app.name: hhj-microcloud
+  company.name: www.hhj.cn
+  build.artifactId: $project.artifactId$
+  build.version: $project.verson$
+spring:
+  application:
+    name: microcloud-provider-company

+ 89 - 0
microcloud-provider-dept-8001/pom.xml

@@ -0,0 +1,89 @@
+<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <parent>
+        <artifactId>MicroCloud</artifactId>
+        <groupId>cn.hhj</groupId>
+        <version>0.0.1</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>microcloud-provider-dept-8001</artifactId>
+    <properties>
+        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+    </properties>
+
+    <dependencies>
+        <!--eureka所需依赖-->
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-config</artifactId>
+        </dependency>
+
+        <!--监控所需依赖-->
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-actuator</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>mysql</groupId>
+            <artifactId>mysql-connector-java</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>com.alibaba</groupId>
+            <artifactId>druid</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>ch.qos.logback</groupId>
+            <artifactId>logback-core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.mybatis.spring.boot</groupId>
+            <artifactId>mybatis-spring-boot-starter</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-jetty</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-web</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-test</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-devtools</artifactId>
+        </dependency>
+
+        <!--springBoot-security安全框架-->
+<!--        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-security</artifactId>
+        </dependency>-->
+
+
+        <dependency>
+            <groupId>cn.hhj</groupId>
+            <artifactId>microcloud-api</artifactId>
+         </dependency>
+        <dependency>
+            <groupId>cn.hhj</groupId>
+            <artifactId>microcloud-global-security</artifactId>
+        </dependency>
+    </dependencies>
+</project>

+ 15 - 0
microcloud-provider-dept-8001/src/main/java/cn/hhj/Provider_Dept_8001_StartSpringCloudApplication.java

@@ -0,0 +1,15 @@
+package cn.hhj;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
+import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
+
+@SpringBootApplication
+@EnableEurekaClient
+@EnableDiscoveryClient
+public class Provider_Dept_8001_StartSpringCloudApplication {
+    public static void main(String[] args) {
+        SpringApplication.run(Provider_Dept_8001_StartSpringCloudApplication.class, args);
+    }
+}

+ 22 - 0
microcloud-provider-dept-8001/src/main/java/cn/hhj/config/WebSecurityConfiguration.java

@@ -0,0 +1,22 @@
+package cn.hhj.config;
+
+//import org.springframework.context.annotation.Configuration;
+//import org.springframework.security.config.annotation.web.builders.HttpSecurity;
+//import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
+//import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
+//import org.springframework.security.config.http.SessionCreationPolicy;
+//
+////由于使用了其他的安全模块,此处注释
+////@Configuration
+////@EnableWebSecurity
+//public class WebSecurityConfiguration extends WebSecurityConfigurerAdapter {
+//    @Override
+//    protected void configure(HttpSecurity http) throws Exception {
+//        //关闭防止跨域攻击,post无需附带crf
+//        http.csrf().disable();
+//        // 表示所有的访问都必须认证,认证处理后才可以正常进行
+//        http.httpBasic().and().authorizeRequests().anyRequest().fullyAuthenticated();
+//        // 所有的rest服务一定要设置为无状态,以提升操作效率和性能
+//        http.sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS);
+//    }
+//}

+ 41 - 0
microcloud-provider-dept-8001/src/main/java/cn/hhj/controller/DeptRest.java

@@ -0,0 +1,41 @@
+package cn.hhj.controller;
+
+import cn.hhj.service.IDeptService;
+import cn.hhj.vo.Dept;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.cloud.client.discovery.DiscoveryClient;
+import org.springframework.web.bind.annotation.*;
+import javax.servlet.http.HttpServletRequest;
+
+@RestController
+public class DeptRest {
+    @Autowired
+    private IDeptService deptService;
+    @Autowired
+    private DiscoveryClient discoveryClient;        // Eureka的发现服务
+
+    @RequestMapping("/dept/discover")
+    public Object discover(){             // 直接返回发现服务信息
+        return this.discoveryClient;
+    }
+
+    @GetMapping("/dept/sessionId")
+    public Object id(HttpServletRequest request){
+        return request.getSession().getId();
+    }
+
+    @GetMapping("/dept/get/{id}")
+    public Object get(@PathVariable("id") long id) {
+        return this.deptService.get(id);
+    }
+
+    @PostMapping("/dept/add")
+    public Object add(Dept dept) {
+        return this.deptService.add(dept);
+    }
+
+    @GetMapping( "/dept/list")
+    public Object list() {
+        return this.deptService.list();
+    }
+}

+ 12 - 0
microcloud-provider-dept-8001/src/main/java/cn/hhj/dao/IDeptDAO.java

@@ -0,0 +1,12 @@
+package cn.hhj.dao;
+
+import cn.hhj.vo.Dept;
+import org.apache.ibatis.annotations.Mapper;
+import java.util.List;
+
+@Mapper
+public interface IDeptDAO {
+    public boolean doCreate(Dept vo) ;
+    public Dept findById(Long id) ;
+    public List<Dept> findAll() ;
+}

+ 10 - 0
microcloud-provider-dept-8001/src/main/java/cn/hhj/service/IDeptService.java

@@ -0,0 +1,10 @@
+package cn.hhj.service;
+
+import cn.hhj.vo.Dept;
+import java.util.List;
+
+public interface IDeptService {
+    public Dept get(long id) ;
+    public boolean add(Dept dept) ;
+    public List<Dept> list() ;
+}

+ 28 - 0
microcloud-provider-dept-8001/src/main/java/cn/hhj/service/impl/DeptServiceImpl.java

@@ -0,0 +1,28 @@
+package cn.hhj.service.impl;
+
+import cn.hhj.dao.IDeptDAO;
+import cn.hhj.service.IDeptService;
+import cn.hhj.vo.Dept;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+@Service
+public class DeptServiceImpl implements IDeptService {
+    @Resource
+    private IDeptDAO deptDAO;
+
+    @Override
+    public Dept get(long id) {
+        return this.deptDAO.findById(id);
+    }
+    @Override
+    public boolean add(Dept dept) {
+        return this.deptDAO.doCreate(dept);
+    }
+    @Override
+    public List<Dept> list() {
+        return this.deptDAO.findAll();
+    }
+}

+ 36 - 0
microcloud-provider-dept-8001/src/main/resources/application.yml

@@ -0,0 +1,36 @@
+server:
+  port: 8001
+mybatis:
+  config-location: classpath:mybatis/mybatis.cfg.xml    # mybatis配置文件所在路径
+  type-aliases-package: cn.hhj.vo            # 定义所有操作类的别名所在包
+  mapper-locations:                                     # 所有的mapper映射文件
+    - classpath:mybatis/mapper/**/*.xml
+spring:
+  datasource:
+    type: com.alibaba.druid.pool.DruidDataSource    # 配置当前要使用的数据源的操作类型
+    driver-class-name: com.mysql.cj.jdbc.Driver      # 配置MySQL的驱动程序类
+    url: jdbc:mysql://101.132.148.119:3306/cloudDept8001           # 数据库连接地址
+    username: root                                  # 数据库用户名
+    password: QingSe_1H                            # 数据库连接密码
+    filters: stat,wall,log4j                        # druid性能监控
+    dbcp2:                                          # 进行数据库连接池的配置
+      min-idle: 5                                   # 数据库连接池的最小维持连接数
+      initial-size: 5                               # 初始化提供的连接数
+      max-total: 5                                  # 最大的连接数
+      max-wait-millis: 200                          # 等待连接获取的最大超时时间
+  application:
+    name: microcloud-provider-dept                    #定义服务的名字
+eureka:
+  client:
+    service-url:
+      defaultZone: http://QingSe:hello@eureka-7001.com:7001/eureka,http://QingSe:hello@eureka-7002.com:7002/eureka,http://QingSe:hello@eureka-7003.com:7003/eureka  #绑定到此地址中的eureka注册中心
+  instance:
+    instance-id: dept-8001.com                         #信息列表时显示的主机名称
+    prefer-ip-address: true                            #访问路径地址更改为IP
+    lease-expiration-duration-in-seconds: 5            #距离上一次心跳的时间,超过则认为是宕机
+    lease-renewal-interval-in-seconds: 2               #设置心跳的间隔时间
+info:
+  app.name: cn.hhj-microcloud                          #微服务名称
+  company.name: www.hhj.cn                             #公司网站
+  build.artifactId: $project.artifactId$               #项目名称
+  build.version: $project.version$                     #项目版本

+ 14 - 0
microcloud-provider-dept-8001/src/main/resources/dept.sql

@@ -0,0 +1,14 @@
+DROP DATABASE IF EXISTS "cloudDept8001" ;
+CREATE DATABASE cloudDept8001 CHARACTER SET UTF8 ;
+USE cloudDept8001 ;
+CREATE TABLE dept (
+  deptno BIGINT AUTO_INCREMENT,
+  dname VARCHAR(50) ,
+  loc VARCHAR(50) ,
+  CONSTRAINT pk_deptno PRIMARY KEY(deptno)
+) ;
+INSERT INTO dept(dname,loc) VALUES ('开发部',database()) ;
+INSERT INTO dept(dname,loc) VALUES ('财务部',database()) ;
+INSERT INTO dept(dname,loc) VALUES ('市场部',database()) ;
+INSERT INTO dept(dname,loc) VALUES ('后勤部',database()) ;
+INSERT INTO dept(dname,loc) VALUES ('公关部',database()) ;

+ 14 - 0
microcloud-provider-dept-8001/src/main/resources/mybatis/mapper/cn.hhj/Dept.xml

@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="cn.hhj.dao.IDeptDAO">
+    <select id="findById" resultType="Dept" parameterType="long">
+      SELECT deptno,dname,loc FROM dept WHERE deptno=#{deptno}
+   </select>
+    <select id="findAll" resultType="Dept">
+      SELECT deptno,dname,loc FROM dept
+   </select>
+    <insert id="doCreate" parameterType="Dept">
+      INSERT INTO dept(dname,loc) VALUES (#{dname},database())
+   </insert>
+</mapper>

+ 10 - 0
microcloud-provider-dept-8001/src/main/resources/mybatis/mybatis.cfg.xml

@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE configuration
+        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-config.dtd">
+<configuration>
+    <!-- 进行Mybatis的相应的环境的属性定义 -->
+    <settings> <!-- 在本项目之中开启二级缓存 -->
+        <setting name="cacheEnabled" value="true"/>
+    </settings>
+</configuration>

+ 32 - 0
microcloud-provider-dept-8001/src/test/java/cn/hhj/IDeptServiceTest.java

@@ -0,0 +1,32 @@
+package cn.hhj;
+
+import cn.hhj.service.IDeptService;
+import cn.hhj.vo.Dept;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
+import org.springframework.test.context.web.WebAppConfiguration;
+
+@SpringBootTest(classes = Provider_Dept_8001_StartSpringCloudApplication.class)
+@RunWith(SpringJUnit4ClassRunner.class)
+@WebAppConfiguration
+public class IDeptServiceTest {
+    @Autowired
+    private IDeptService deptService;
+    @Test
+    public void testGet() {
+        System.out.println(this.deptService.get(1));
+    }
+    @Test
+    public void testAdd() {
+        Dept dept = new Dept();
+        dept.setDname("测试部-" + System.currentTimeMillis());
+        System.out.println(this.deptService.add(dept));
+    }
+    @Test
+    public void testList() {
+        System.out.println(this.deptService.list());
+    }
+}

+ 83 - 0
microcloud-provider-dept-8002/pom.xml

@@ -0,0 +1,83 @@
+<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <parent>
+        <artifactId>MicroCloud</artifactId>
+        <groupId>cn.hhj</groupId>
+        <version>0.0.1</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>microcloud-provider-dept-8002</artifactId>
+    <properties>
+        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+    </properties>
+
+    <dependencies>
+        <!--eureka所需依赖-->
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-config</artifactId>
+        </dependency>
+
+        <!--监控所需依赖-->
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-actuator</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>mysql</groupId>
+            <artifactId>mysql-connector-java</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>com.alibaba</groupId>
+            <artifactId>druid</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>ch.qos.logback</groupId>
+            <artifactId>logback-core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.mybatis.spring.boot</groupId>
+            <artifactId>mybatis-spring-boot-starter</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-jetty</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-web</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-test</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-devtools</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>cn.hhj</groupId>
+            <artifactId>microcloud-api</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>cn.hhj</groupId>
+            <artifactId>microcloud-global-security</artifactId>
+        </dependency>
+    </dependencies>
+
+</project>

+ 15 - 0
microcloud-provider-dept-8002/src/main/java/cn/hhj/Provider_Dept_8002_StartSpringCloudApplication.java

@@ -0,0 +1,15 @@
+package cn.hhj;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
+import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
+
+@SpringBootApplication
+@EnableEurekaClient
+@EnableDiscoveryClient
+public class Provider_Dept_8002_StartSpringCloudApplication {
+    public static void main(String[] args) {
+        SpringApplication.run(Provider_Dept_8002_StartSpringCloudApplication.class, args);
+    }
+}

+ 22 - 0
microcloud-provider-dept-8002/src/main/java/cn/hhj/config/WebSecurityConfiguration.java

@@ -0,0 +1,22 @@
+package cn.hhj.config;
+
+//import org.springframework.context.annotation.Configuration;
+//import org.springframework.security.config.annotation.web.builders.HttpSecurity;
+//import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
+//import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
+//import org.springframework.security.config.http.SessionCreationPolicy;
+//
+////由于使用了其他的安全模块,此处注释
+////@Configuration
+////@EnableWebSecurity
+//public class WebSecurityConfiguration extends WebSecurityConfigurerAdapter {
+//    @Override
+//    protected void configure(HttpSecurity http) throws Exception {
+//        //关闭防止跨域攻击,post无需附带crf
+//        http.csrf().disable();
+//        // 表示所有的访问都必须认证,认证处理后才可以正常进行
+//        http.httpBasic().and().authorizeRequests().anyRequest().fullyAuthenticated();
+//        // 所有的rest服务一定要设置为无状态,以提升操作效率和性能
+//        http.sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS);
+//    }
+//}

+ 42 - 0
microcloud-provider-dept-8002/src/main/java/cn/hhj/controller/DeptRest.java

@@ -0,0 +1,42 @@
+package cn.hhj.controller;
+
+import cn.hhj.service.IDeptService;
+import cn.hhj.vo.Dept;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.cloud.client.discovery.DiscoveryClient;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletRequest;
+
+@RestController
+public class DeptRest {
+    @Autowired
+    private IDeptService deptService;
+    @Autowired
+    private DiscoveryClient discoveryClient;        // Eureka的发现服务
+
+    @RequestMapping("/dept/discover")
+    public Object discover(){             // 直接返回发现服务信息
+        return this.discoveryClient;
+    }
+
+    @GetMapping("/dept/sessionId")
+    public Object id(HttpServletRequest request){
+        return request.getSession().getId();
+    }
+
+    @GetMapping("/dept/get/{id}")
+    public Object get(@PathVariable("id") long id) {
+        return this.deptService.get(id);
+    }
+
+    @PostMapping("/dept/add")
+    public Object add(Dept dept) {
+        return this.deptService.add(dept);
+    }
+
+    @GetMapping( "/dept/list")
+    public Object list() {
+        return this.deptService.list();
+    }
+}

+ 13 - 0
microcloud-provider-dept-8002/src/main/java/cn/hhj/dao/IDeptDAO.java

@@ -0,0 +1,13 @@
+package cn.hhj.dao;
+
+import cn.hhj.vo.Dept;
+import org.apache.ibatis.annotations.Mapper;
+
+import java.util.List;
+
+@Mapper
+public interface IDeptDAO {
+    public boolean doCreate(Dept vo) ;
+    public Dept findById(Long id) ;
+    public List<Dept> findAll() ;
+}

+ 11 - 0
microcloud-provider-dept-8002/src/main/java/cn/hhj/service/IDeptService.java

@@ -0,0 +1,11 @@
+package cn.hhj.service;
+
+import cn.hhj.vo.Dept;
+
+import java.util.List;
+
+public interface IDeptService {
+    public Dept get(long id) ;
+    public boolean add(Dept dept) ;
+    public List<Dept> list() ;
+}

+ 28 - 0
microcloud-provider-dept-8002/src/main/java/cn/hhj/service/impl/DeptServiceImpl.java

@@ -0,0 +1,28 @@
+package cn.hhj.service.impl;
+
+import cn.hhj.dao.IDeptDAO;
+import cn.hhj.service.IDeptService;
+import cn.hhj.vo.Dept;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+@Service
+public class DeptServiceImpl implements IDeptService {
+    @Resource
+    private IDeptDAO deptDAO;
+
+    @Override
+    public Dept get(long id) {
+        return this.deptDAO.findById(id);
+    }
+    @Override
+    public boolean add(Dept dept) {
+        return this.deptDAO.doCreate(dept);
+    }
+    @Override
+    public List<Dept> list() {
+        return this.deptDAO.findAll();
+    }
+}

+ 36 - 0
microcloud-provider-dept-8002/src/main/resources/application.yml

@@ -0,0 +1,36 @@
+server:
+  port: 8002
+mybatis:
+  config-location: classpath:mybatis/mybatis.cfg.xml    # mybatis配置文件所在路径
+  type-aliases-package: cn.hhj.vo            # 定义所有操作类的别名所在包
+  mapper-locations:                                     # 所有的mapper映射文件
+    - classpath:mybatis/mapper/**/*.xml
+spring:
+  datasource:
+    type: com.alibaba.druid.pool.DruidDataSource    # 配置当前要使用的数据源的操作类型
+    driver-class-name: com.mysql.cj.jdbc.Driver      # 配置MySQL的驱动程序类
+    url: jdbc:mysql://101.132.148.119:3306/cloudDept8002           # 数据库连接地址
+    username: root                                  # 数据库用户名
+    password: QingSe_1H                            # 数据库连接密码
+    filters: stat,wall,log4j                        # druid性能监控
+    dbcp2:                                          # 进行数据库连接池的配置
+      min-idle: 5                                   # 数据库连接池的最小维持连接数
+      initial-size: 5                               # 初始化提供的连接数
+      max-total: 5                                  # 最大的连接数
+      max-wait-millis: 200                          # 等待连接获取的最大超时时间
+  application:
+    name: microcloud-provider-dept                    #定义服务的名字
+eureka:
+  client:
+    service-url:
+      defaultZone: http://QingSe:hello@eureka-7001.com:7001/eureka,http://QingSe:hello@eureka-7002.com:7002/eureka,http://QingSe:hello@eureka-7003.com:7003/eureka  #绑定到此地址中的eureka注册中心
+  instance:
+    instance-id: dept-8002.com                         #信息列表时显示的主机名称
+    prefer-ip-address: true                            #访问路径地址更改为IP
+    lease-expiration-duration-in-seconds: 5            #距离上一次心跳的时间,超过则认为是宕机
+    lease-renewal-interval-in-seconds: 2               #设置心跳的间隔时间
+info:
+  app.name: cn.hhj-microcloud                             #微服务名称
+  company.name: www.hhj.cn                             #公司网站
+  build.artifactId: $project.artifactId$               #项目名称
+  build.version: $project.version$                      #项目版本

+ 14 - 0
microcloud-provider-dept-8002/src/main/resources/dept.sql

@@ -0,0 +1,14 @@
+DROP DATABASE IF EXISTS "cloudDept8002" ;
+CREATE DATABASE cloudDept8002 CHARACTER SET UTF8 ;
+USE cloudDept8002 ;
+CREATE TABLE dept (
+  deptno BIGINT AUTO_INCREMENT,
+  dname VARCHAR(50) ,
+  loc VARCHAR(50) ,
+  CONSTRAINT pk_deptno PRIMARY KEY(deptno)
+) ;
+INSERT INTO dept(dname,loc) VALUES ('开发部',database()) ;
+INSERT INTO dept(dname,loc) VALUES ('财务部',database()) ;
+INSERT INTO dept(dname,loc) VALUES ('市场部',database()) ;
+INSERT INTO dept(dname,loc) VALUES ('后勤部',database()) ;
+INSERT INTO dept(dname,loc) VALUES ('公关部',database()) ;

+ 14 - 0
microcloud-provider-dept-8002/src/main/resources/mybatis/mapper/cn.hhj/Dept.xml

@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="cn.hhj.dao.IDeptDAO">
+    <select id="findById" resultType="Dept" parameterType="long">
+      SELECT deptno,dname,loc FROM dept WHERE deptno=#{deptno}
+   </select>
+    <select id="findAll" resultType="Dept">
+      SELECT deptno,dname,loc FROM dept
+   </select>
+    <insert id="doCreate" parameterType="Dept">
+      INSERT INTO dept(dname,loc) VALUES (#{dname},database())
+   </insert>
+</mapper>

+ 10 - 0
microcloud-provider-dept-8002/src/main/resources/mybatis/mybatis.cfg.xml

@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE configuration
+        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-config.dtd">
+<configuration>
+    <!-- 进行Mybatis的相应的环境的属性定义 -->
+    <settings> <!-- 在本项目之中开启二级缓存 -->
+        <setting name="cacheEnabled" value="true"/>
+    </settings>
+</configuration>

+ 82 - 0
microcloud-provider-dept-8003/pom.xml

@@ -0,0 +1,82 @@
+<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <parent>
+        <artifactId>MicroCloud</artifactId>
+        <groupId>cn.hhj</groupId>
+        <version>0.0.1</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>microcloud-provider-dept-8003</artifactId>
+    <properties>
+        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+    </properties>
+
+    <dependencies>
+        <!--eureka所需依赖-->
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-config</artifactId>
+        </dependency>
+
+        <!--监控所需依赖-->
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-actuator</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>mysql</groupId>
+            <artifactId>mysql-connector-java</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>com.alibaba</groupId>
+            <artifactId>druid</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>ch.qos.logback</groupId>
+            <artifactId>logback-core</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.mybatis.spring.boot</groupId>
+            <artifactId>mybatis-spring-boot-starter</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-jetty</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-web</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-test</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-devtools</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>cn.hhj</groupId>
+            <artifactId>microcloud-api</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>cn.hhj</groupId>
+            <artifactId>microcloud-global-security</artifactId>
+        </dependency>
+    </dependencies>
+
+</project>

+ 15 - 0
microcloud-provider-dept-8003/src/main/java/cn/hhj/Provider_Dept_8003_StartSpringCloudApplication.java

@@ -0,0 +1,15 @@
+package cn.hhj;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
+import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
+
+@SpringBootApplication
+@EnableEurekaClient
+@EnableDiscoveryClient
+public class Provider_Dept_8003_StartSpringCloudApplication {
+    public static void main(String[] args) {
+        SpringApplication.run(Provider_Dept_8003_StartSpringCloudApplication.class, args);
+    }
+}

+ 22 - 0
microcloud-provider-dept-8003/src/main/java/cn/hhj/config/WebSecurityConfiguration.java

@@ -0,0 +1,22 @@
+package cn.hhj.config;
+
+//import org.springframework.context.annotation.Configuration;
+//import org.springframework.security.config.annotation.web.builders.HttpSecurity;
+//import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
+//import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
+//import org.springframework.security.config.http.SessionCreationPolicy;
+//
+////由于使用了其他的安全模块,此处注释
+////@Configuration
+////@EnableWebSecurity
+//public class WebSecurityConfiguration extends WebSecurityConfigurerAdapter {
+//    @Override
+//    protected void configure(HttpSecurity http) throws Exception {
+//        //关闭防止跨域攻击,post无需附带crf
+//        http.csrf().disable();
+//        // 表示所有的访问都必须认证,认证处理后才可以正常进行
+//        http.httpBasic().and().authorizeRequests().anyRequest().fullyAuthenticated();
+//        // 所有的rest服务一定要设置为无状态,以提升操作效率和性能
+//        http.sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS);
+//    }
+//}

+ 41 - 0
microcloud-provider-dept-8003/src/main/java/cn/hhj/controller/DeptRest.java

@@ -0,0 +1,41 @@
+package cn.hhj.controller;
+
+import cn.hhj.service.IDeptService;
+import cn.hhj.vo.Dept;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.cloud.client.discovery.DiscoveryClient;
+import org.springframework.web.bind.annotation.*;
+import javax.servlet.http.HttpServletRequest;
+
+@RestController
+public class DeptRest {
+    @Autowired
+    private IDeptService deptService;
+    @Autowired
+    private DiscoveryClient discoveryClient;        // Eureka的发现服务
+
+    @RequestMapping("/dept/discover")
+    public Object discover(){             // 直接返回发现服务信息
+        return this.discoveryClient;
+    }
+
+    @GetMapping("/dept/sessionId")
+    public Object id(HttpServletRequest request){
+        return request.getSession().getId();
+    }
+
+    @GetMapping("/dept/get/{id}")
+    public Object get(@PathVariable("id") long id) {
+        return this.deptService.get(id);
+    }
+
+    @PostMapping("/dept/add")
+    public Object add(Dept dept) {
+        return this.deptService.add(dept);
+    }
+
+    @GetMapping( "/dept/list")
+    public Object list() {
+        return this.deptService.list();
+    }
+}

+ 12 - 0
microcloud-provider-dept-8003/src/main/java/cn/hhj/dao/IDeptDAO.java

@@ -0,0 +1,12 @@
+package cn.hhj.dao;
+
+import cn.hhj.vo.Dept;
+import org.apache.ibatis.annotations.Mapper;
+import java.util.List;
+
+@Mapper
+public interface IDeptDAO {
+    public boolean doCreate(Dept vo) ;
+    public Dept findById(Long id) ;
+    public List<Dept> findAll() ;
+}

+ 10 - 0
microcloud-provider-dept-8003/src/main/java/cn/hhj/service/IDeptService.java

@@ -0,0 +1,10 @@
+package cn.hhj.service;
+
+import cn.hhj.vo.Dept;
+import java.util.List;
+
+public interface IDeptService {
+    public Dept get(long id) ;
+    public boolean add(Dept dept) ;
+    public List<Dept> list() ;
+}

+ 28 - 0
microcloud-provider-dept-8003/src/main/java/cn/hhj/service/impl/DeptServiceImpl.java

@@ -0,0 +1,28 @@
+package cn.hhj.service.impl;
+
+import cn.hhj.dao.IDeptDAO;
+import cn.hhj.service.IDeptService;
+import cn.hhj.vo.Dept;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+@Service
+public class DeptServiceImpl implements IDeptService {
+    @Resource
+    private IDeptDAO deptDAO;
+
+    @Override
+    public Dept get(long id) {
+        return this.deptDAO.findById(id);
+    }
+    @Override
+    public boolean add(Dept dept) {
+        return this.deptDAO.doCreate(dept);
+    }
+    @Override
+    public List<Dept> list() {
+        return this.deptDAO.findAll();
+    }
+}

+ 36 - 0
microcloud-provider-dept-8003/src/main/resources/application.yml

@@ -0,0 +1,36 @@
+server:
+  port: 8003
+mybatis:
+  config-location: classpath:mybatis/mybatis.cfg.xml    # mybatis配置文件所在路径
+  type-aliases-package: cn.hhj.vo            # 定义所有操作类的别名所在包
+  mapper-locations:                                     # 所有的mapper映射文件
+    - classpath:mybatis/mapper/**/*.xml
+spring:
+  datasource:
+    type: com.alibaba.druid.pool.DruidDataSource    # 配置当前要使用的数据源的操作类型
+    driver-class-name: com.mysql.cj.jdbc.Driver      # 配置MySQL的驱动程序类
+    url: jdbc:mysql://101.132.148.119:3306/cloudDept8003           # 数据库连接地址
+    username: root                                  # 数据库用户名
+    password: QingSe_1H                            # 数据库连接密码
+    filters: stat,wall,log4j                        # druid性能监控
+    dbcp2:                                          # 进行数据库连接池的配置
+      min-idle: 5                                   # 数据库连接池的最小维持连接数
+      initial-size: 5                               # 初始化提供的连接数
+      max-total: 5                                  # 最大的连接数
+      max-wait-millis: 200                          # 等待连接获取的最大超时时间
+  application:
+    name: microcloud-provider-dept                    #定义服务的名字
+eureka:
+  client:
+    service-url:
+      defaultZone: http://QingSe:hello@eureka-7001.com:7001/eureka,http://QingSe:hello@eureka-7002.com:7002/eureka,http://QingSe:hello@eureka-7003.com:7003/eureka  #绑定到此地址中的eureka注册中心
+  instance:
+    instance-id: dept-8003.com                         #信息列表时显示的主机名称
+    prefer-ip-address: true                            #访问路径地址更改为IP
+    lease-expiration-duration-in-seconds: 5            #距离上一次心跳的时间,超过则认为是宕机
+    lease-renewal-interval-in-seconds: 2               #设置心跳的间隔时间
+info:
+  app.name: cn.hhj-microcloud                             #微服务名称
+  company.name: www.hhj.cn                             #公司网站
+  build.artifactId: $project.artifactId$               #项目名称
+  build.version: $project.version$                      #项目版本

+ 14 - 0
microcloud-provider-dept-8003/src/main/resources/dept.sql

@@ -0,0 +1,14 @@
+DROP DATABASE IF EXISTS "cloudDept8003" ;
+CREATE DATABASE cloudDept8003 CHARACTER SET UTF8 ;
+USE cloudDept8003 ;
+CREATE TABLE dept (
+  deptno BIGINT AUTO_INCREMENT,
+  dname VARCHAR(50) ,
+  loc VARCHAR(50) ,
+  CONSTRAINT pk_deptno PRIMARY KEY(deptno)
+) ;
+INSERT INTO dept(dname,loc) VALUES ('开发部',database()) ;
+INSERT INTO dept(dname,loc) VALUES ('财务部',database()) ;
+INSERT INTO dept(dname,loc) VALUES ('市场部',database()) ;
+INSERT INTO dept(dname,loc) VALUES ('后勤部',database()) ;
+INSERT INTO dept(dname,loc) VALUES ('公关部',database()) ;

+ 14 - 0
microcloud-provider-dept-8003/src/main/resources/mybatis/mapper/cn.hhj/Dept.xml

@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="cn.hhj.dao.IDeptDAO">
+    <select id="findById" resultType="Dept" parameterType="long">
+      SELECT deptno,dname,loc FROM dept WHERE deptno=#{deptno}
+   </select>
+    <select id="findAll" resultType="Dept">
+      SELECT deptno,dname,loc FROM dept
+   </select>
+    <insert id="doCreate" parameterType="Dept">
+      INSERT INTO dept(dname,loc) VALUES (#{dname},database())
+   </insert>
+</mapper>

+ 10 - 0
microcloud-provider-dept-8003/src/main/resources/mybatis/mybatis.cfg.xml

@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE configuration
+        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-config.dtd">
+<configuration>
+    <!-- 进行Mybatis的相应的环境的属性定义 -->
+    <settings> <!-- 在本项目之中开启二级缓存 -->
+        <setting name="cacheEnabled" value="true"/>
+    </settings>
+</configuration>

+ 70 - 0
microcloud-provider-dept-hystrix-8001/pom.xml

@@ -0,0 +1,70 @@
+<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <parent>
+        <artifactId>MicroCloud</artifactId>
+        <groupId>cn.hhj</groupId>
+        <version>0.0.1</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>microcloud-provider-dept-hystrix-8001</artifactId>
+
+    <dependencies>
+        <!--eureka所需依赖-->
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
+            <exclusions>
+                <exclusion>
+                    <groupId>com.fasterxml.jackson.dataformat</groupId>
+                    <artifactId>jackson-dataformat-xml</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-config</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>mysql</groupId>
+            <artifactId>mysql-connector-java</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>com.alibaba</groupId>
+            <artifactId>druid</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.mybatis.spring.boot</groupId>
+            <artifactId>mybatis-spring-boot-starter</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-web</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-devtools</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-netflix-hystrix</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>cn.hhj</groupId>
+            <artifactId>microcloud-api</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>cn.hhj</groupId>
+            <artifactId>microcloud-global-security</artifactId>
+        </dependency>
+    </dependencies>
+</project>

+ 17 - 0
microcloud-provider-dept-hystrix-8001/src/main/java/cn/hhj/Provider_Dept_Hystrix_8001_StartSpringCloudApplication.java

@@ -0,0 +1,17 @@
+package cn.hhj;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.cloud.client.circuitbreaker.EnableCircuitBreaker;
+import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
+import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
+
+@SpringBootApplication
+@EnableEurekaClient
+@EnableDiscoveryClient
+@EnableCircuitBreaker
+public class Provider_Dept_Hystrix_8001_StartSpringCloudApplication {
+    public static void main(String[] args) {
+        SpringApplication.run(Provider_Dept_Hystrix_8001_StartSpringCloudApplication.class, args);
+    }
+}

+ 22 - 0
microcloud-provider-dept-hystrix-8001/src/main/java/cn/hhj/config/WebSecurityConfiguration.java

@@ -0,0 +1,22 @@
+package cn.hhj.config;
+
+//import org.springframework.context.annotation.Configuration;
+//import org.springframework.security.config.annotation.web.builders.HttpSecurity;
+//import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
+//import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
+//import org.springframework.security.config.http.SessionCreationPolicy;
+//
+////由于使用了其他的安全模块,此处注释
+////@Configuration
+////@EnableWebSecurity
+//public class WebSecurityConfiguration extends WebSecurityConfigurerAdapter {
+//    @Override
+//    protected void configure(HttpSecurity http) throws Exception {
+//        //关闭防止跨域攻击,post无需附带crf
+//        http.csrf().disable();
+//        // 表示所有的访问都必须认证,认证处理后才可以正常进行
+//        http.httpBasic().and().authorizeRequests().anyRequest().fullyAuthenticated();
+//        // 所有的rest服务一定要设置为无状态,以提升操作效率和性能
+//        http.sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS);
+//    }
+//}

+ 31 - 0
microcloud-provider-dept-hystrix-8001/src/main/java/cn/hhj/controller/DeptRest.java

@@ -0,0 +1,31 @@
+package cn.hhj.controller;
+
+import cn.hhj.service.IDeptService;
+import cn.hhj.vo.Dept;
+import com.netflix.hystrix.contrib.javanica.annotation.HystrixCommand;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+@RestController
+public class DeptRest {
+    @Autowired
+    private IDeptService deptService;
+
+    @GetMapping("/dept/get/{id}")
+    @HystrixCommand(fallbackMethod = "getFallback")// 指定方法跑出异常时执行的方法
+    public Object get(@PathVariable("id") long id) {
+        Dept vo=this.deptService.get(id);
+        if (vo == null) { // 数据不存在,假设让它抛出个错误
+            throw new RuntimeException("部门信息不存在!") ;
+        }
+        return vo;
+    }
+
+    public Object getFallback(@PathVariable("id") long id) { // 此时方法的参数 与get()一致
+        Dept vo = new Dept() ;
+        vo.setDeptno(999999L);
+        vo.setDname("【ERROR】Microcloud-Dept-Hystrix"); // 错误的提示
+        vo.setLoc("DEPT-Provider");
+        return vo ;
+    }
+}

+ 12 - 0
microcloud-provider-dept-hystrix-8001/src/main/java/cn/hhj/dao/IDeptDAO.java

@@ -0,0 +1,12 @@
+package cn.hhj.dao;
+
+import cn.hhj.vo.Dept;
+import org.apache.ibatis.annotations.Mapper;
+import java.util.List;
+
+@Mapper
+public interface IDeptDAO {
+    public boolean doCreate(Dept vo) ;
+    public Dept findById(Long id) ;
+    public List<Dept> findAll() ;
+}

+ 10 - 0
microcloud-provider-dept-hystrix-8001/src/main/java/cn/hhj/service/IDeptService.java

@@ -0,0 +1,10 @@
+package cn.hhj.service;
+
+import cn.hhj.vo.Dept;
+import java.util.List;
+
+public interface IDeptService {
+    public Dept get(long id) ;
+    public boolean add(Dept dept) ;
+    public List<Dept> list() ;
+}

+ 28 - 0
microcloud-provider-dept-hystrix-8001/src/main/java/cn/hhj/service/impl/DeptServiceImpl.java

@@ -0,0 +1,28 @@
+package cn.hhj.service.impl;
+
+import cn.hhj.dao.IDeptDAO;
+import cn.hhj.service.IDeptService;
+import cn.hhj.vo.Dept;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+@Service
+public class DeptServiceImpl implements IDeptService {
+    @Resource
+    private IDeptDAO deptDAO;
+
+    @Override
+    public Dept get(long id) {
+        return this.deptDAO.findById(id);
+    }
+    @Override
+    public boolean add(Dept dept) {
+        return this.deptDAO.doCreate(dept);
+    }
+    @Override
+    public List<Dept> list() {
+        return this.deptDAO.findAll();
+    }
+}

+ 41 - 0
microcloud-provider-dept-hystrix-8001/src/main/resources/application.yml

@@ -0,0 +1,41 @@
+server:
+  port: 8001
+mybatis:
+  config-location: classpath:mybatis/mybatis.cfg.xml    # mybatis配置文件所在路径
+  type-aliases-package: cn.hhj.vo            # 定义所有操作类的别名所在包
+  mapper-locations:                                     # 所有的mapper映射文件
+    - classpath:mybatis/mapper/**/*.xml
+spring:
+  datasource:
+    type: com.alibaba.druid.pool.DruidDataSource    # 配置当前要使用的数据源的操作类型
+    driver-class-name: com.mysql.cj.jdbc.Driver      # 配置MySQL的驱动程序类
+    url: jdbc:mysql://101.132.148.119:3306/cloudDept8001           # 数据库连接地址
+    username: root                                  # 数据库用户名
+    password: QingSe_1H                            # 数据库连接密码
+    filters: stat,wall,log4j                        # druid性能监控
+    dbcp2:                                          # 进行数据库连接池的配置
+      min-idle: 5                                   # 数据库连接池的最小维持连接数
+      initial-size: 5                               # 初始化提供的连接数
+      max-total: 5                                  # 最大的连接数
+      max-wait-millis: 200                          # 等待连接获取的最大超时时间
+  application:
+    name: microcloud-provider-dept                    #定义服务的名字
+eureka:
+  client:
+    service-url:
+      defaultZone: http://QingSe:hello@eureka-7001.com:7001/eureka,http://QingSe:hello@eureka-7002.com:7002/eureka,http://QingSe:hello@eureka-7003.com:7003/eureka  #绑定到此地址中的eureka注册中心
+  instance:
+    instance-id: dept-8001.com                         #信息列表时显示的主机名称
+    prefer-ip-address: true                            #访问路径地址更改为IP
+    lease-expiration-duration-in-seconds: 5            #距离上一次心跳的时间,超过则认为是宕机
+    lease-renewal-interval-in-seconds: 2               #设置心跳的间隔时间
+info:
+  app.name: cn.hhj-microcloud                             #微服务名称
+  company.name: www.hhj.cn                             #公司网站
+  build.artifactId: $project.artifactId$               #项目名称
+  build.version: $project.version$                      #项目版本
+management:
+  endpoints:
+    web:
+      exposure:
+        include: ["hystrix.stream"]

+ 14 - 0
microcloud-provider-dept-hystrix-8001/src/main/resources/dept.sql

@@ -0,0 +1,14 @@
+DROP DATABASE IF EXISTS "cloudDept8001" ;
+CREATE DATABASE cloudDept8001 CHARACTER SET UTF8 ;
+USE cloudDept8001 ;
+CREATE TABLE dept (
+  deptno BIGINT AUTO_INCREMENT,
+  dname VARCHAR(50) ,
+  loc VARCHAR(50) ,
+  CONSTRAINT pk_deptno PRIMARY KEY(deptno)
+) ;
+INSERT INTO dept(dname,loc) VALUES ('开发部',database()) ;
+INSERT INTO dept(dname,loc) VALUES ('财务部',database()) ;
+INSERT INTO dept(dname,loc) VALUES ('市场部',database()) ;
+INSERT INTO dept(dname,loc) VALUES ('后勤部',database()) ;
+INSERT INTO dept(dname,loc) VALUES ('公关部',database()) ;

+ 14 - 0
microcloud-provider-dept-hystrix-8001/src/main/resources/mybatis/mapper/cn.hhj/Dept.xml

@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="cn.hhj.dao.IDeptDAO">
+    <select id="findById" resultType="Dept" parameterType="long">
+      SELECT deptno,dname,loc FROM dept WHERE deptno=#{deptno}
+   </select>
+    <select id="findAll" resultType="Dept">
+      SELECT deptno,dname,loc FROM dept
+   </select>
+    <insert id="doCreate" parameterType="Dept">
+      INSERT INTO dept(dname,loc) VALUES (#{dname},database())
+   </insert>
+</mapper>

+ 10 - 0
microcloud-provider-dept-hystrix-8001/src/main/resources/mybatis/mybatis.cfg.xml

@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE configuration
+        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-config.dtd">
+<configuration>
+    <!-- 进行Mybatis的相应的环境的属性定义 -->
+    <settings> <!-- 在本项目之中开启二级缓存 -->
+        <setting name="cacheEnabled" value="true"/>
+    </settings>
+</configuration>

+ 52 - 0
microcloud-provider-upload-8201/pom.xml

@@ -0,0 +1,52 @@
+<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <parent>
+        <artifactId>MicroCloud</artifactId>
+        <groupId>cn.hhj</groupId>
+        <version>0.0.1</version>
+    </parent>
+    <modelVersion>4.0.0</modelVersion>
+
+    <artifactId>microcloud-provider-upload-8201</artifactId>
+    <dependencies>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-actuator</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
+            <exclusions>
+                <exclusion>
+                    <groupId>com.fasterxml.jackson.dataformat</groupId>
+                    <artifactId>jackson-dataformat-xml</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-config</artifactId>
+        </dependency>
+
+        <dependency>
+            <groupId>cn.hhj</groupId>
+            <artifactId>microcloud-api</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-web</artifactId>
+        </dependency>
+    </dependencies>
+
+</project>

+ 17 - 0
microcloud-provider-upload-8201/src/main/java/cn/hhj/Upload_8201_StartSpringCloudApplication.java

@@ -0,0 +1,17 @@
+package cn.hhj;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.cloud.client.circuitbreaker.EnableCircuitBreaker;
+import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
+import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
+
+@SpringBootApplication
+@EnableEurekaClient   //注册到eureka
+@EnableCircuitBreaker //启动熔断
+@EnableDiscoveryClient //注册到服务中心,可以是eureka之外的其他服务
+public class Upload_8201_StartSpringCloudApplication {
+	public static void main(String[] args) {
+		SpringApplication.run(Upload_8201_StartSpringCloudApplication.class, args);
+	}
+}

+ 24 - 0
microcloud-provider-upload-8201/src/main/java/cn/hhj/controller/UploadRest.java

@@ -0,0 +1,24 @@
+package cn.hhj.controller;
+
+import com.netflix.hystrix.contrib.javanica.annotation.HystrixCommand;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.multipart.MultipartFile;
+
+@RestController
+public class UploadRest {
+    @PostMapping("/upload")
+    @HystrixCommand(fallbackMethod="uploadFallback")
+    public String upload(@RequestParam("photo") MultipartFile photo){
+        if (photo != null) { // 表示现在已经有文件上传了
+            System.out.println("【文件名称】" + photo.getOriginalFilename() );
+            System.out.println("【文件大小】" + photo.getSize());
+        }
+        return "QingSe-file-" + System.currentTimeMillis() + ".jpg";
+    }
+    public String uploadFallback(@RequestParam("photo") MultipartFile photo) {
+        return "error.jpg" ;
+    }
+
+}

+ 26 - 0
microcloud-provider-upload-8201/src/main/resources/application.yml

@@ -0,0 +1,26 @@
+server:
+  port: 8201
+spring:
+  application:
+    name: microcloud-provider-upload
+  servlet:
+    multipart:
+      enabled: true                 #启用上传处理
+      max-file-size: 100MB          #设置单个文件最大长度
+      max-request-size: 100MB       #设置请求文件最大长度
+      file-size-threshold: 1MB      #当文件到达10M的时候进行磁盘写入
+      location: /                   #设置临时保存目录
+eureka:
+  client:
+    service-url:
+      defaultZone: http://QingSe:hello@eureka-7001.com:7001/eureka,http://QingSe:hello@eureka-7002.com:7002/eureka,http://QingSe:hello@eureka-7003.com:7003/eureka  #绑定到此地址中的eureka注册中心
+  instance:
+    instance-id: dept-8001.com                         #信息列表时显示的主机名称
+    prefer-ip-address: true                            #访问路径地址更改为IP
+    lease-expiration-duration-in-seconds: 5            #距离上一次心跳的时间,超过则认为是宕机
+    lease-renewal-interval-in-seconds: 2               #设置心跳的间隔时间
+info:
+  app.name: cn.hhj-microcloud                          #微服务名称
+  company.name: www.hhj.cn                             #公司网站
+  build.artifactId: $project.artifactId$               #项目名称
+  build.version: $project.version$                     #项目版本

+ 0 - 0
microcloud-service/pom.xml


Some files were not shown because too many files changed in this diff