搭建后台环境
創建父工程
創建統一的父工程:learn,用來管理依賴及其版本,注意是創建project,而不是module
填寫項目信息:
填寫保存的位置信息:
然后將pom文件修改成我這個樣子:
<?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"><modelVersion>4.0.0</modelVersion><groupId>com.learn.parent</groupId><artifactId>learn</artifactId><version>1.0.0-SNAPSHOT</version><packaging>pom</packaging><name>learn</name><description>Demo project for Spring Boot</description><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.0.7.RELEASE</version><relativePath/> <!-- lookup parent from repository --></parent><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding><java.version>1.8</java.version><spring-cloud.version>Finchley.SR2</spring-cloud.version><mybatis.starter.version>1.3.2</mybatis.starter.version><mapper.starter.version>2.0.2</mapper.starter.version><druid.starter.version>1.1.9</druid.starter.version><mysql.version>5.1.32</mysql.version><pageHelper.starter.version>1.2.3</pageHelper.starter.version><learn.latest.version>1.0.0-SNAPSHOT</learn.latest.version><fastDFS.client.version>1.26.1-RELEASE</fastDFS.client.version></properties><dependencyManagement><dependencies><!-- springCloud --><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>${spring-cloud.version}</version><type>pom</type><scope>import</scope></dependency><!-- mybatis啟動器 --><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>${mybatis.starter.version}</version></dependency><!-- 通用Mapper啟動器 --><dependency><groupId>tk.mybatis</groupId><artifactId>mapper-spring-boot-starter</artifactId><version>${mapper.starter.version}</version></dependency><!-- 分頁助手啟動器 --><dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper-spring-boot-starter</artifactId><version>${pageHelper.starter.version}</version></dependency><!-- mysql驅動 --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>${mysql.version}</version></dependency><!--FastDFS客戶端--><dependency><groupId>com.github.tobato</groupId><artifactId>fastdfs-client</artifactId><version>${fastDFS.client.version}</version></dependency></dependencies></dependencyManagement><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build> </project>可以發現,我們在父工程中引入了SpringCloud等,很多以后需要用到的依賴,以后創建的子工程就不需要自己引入了。
可以刪除src目錄
創建EurekaServer
3.5.1.創建工程
我們的注冊中心,起名為:learn-registry
選擇新建module:
不要選擇骨架:
然后填寫項目坐標,我們的項目名稱為learn-registry:
選擇安裝目錄,因為是聚合項目,目錄應該是在父工程learn的下面:
添加依賴
添加EurekaServer的依賴:
<?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>learn</artifactId><groupId>com.learn.parent</groupId><version>1.0.0-SNAPSHOT</version></parent><modelVersion>4.0.0</modelVersion><groupId>com.learn.common</groupId><artifactId>learn-registry</artifactId><version>1.0.0-SNAPSHOT</version><dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-server</artifactId></dependency></dependencies> </project>編寫啟動類
@SpringBootApplication @EnableEurekaServer public class RegistryApplication {public static void main(String[] args) {SpringApplication.run(RegistryApplication.class, args);} }配置文件
server:port: 10086 spring:application:name: learn-registry eureka:client:service-url:defaultZone: http://127.0.0.1:${server.port}/eurekaregister-with-eureka: false # 把自己注冊到eureka服務列表fetch-registry: false # 拉取eureka服務信息server:enable-self-preservation: false # 關閉自我保護eviction-interval-timer-in-ms: 5000 # 每隔5秒鐘,進行一次服務列表的清理創建Zuul網關
創建工程
與上面類似,選擇maven方式創建Module,然后填寫項目名稱,我們命名為:learn-gateway
填寫保存的目錄:
添加依賴
這里我們需要添加Zuul和EurekaClient的依賴:
<?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>learn</artifactId><groupId>com.learn.parent</groupId><version>1.0.0-SNAPSHOT</version></parent><modelVersion>4.0.0</modelVersion><groupId>com.learn.common</groupId><artifactId>learn-gateway</artifactId><version>1.0.0-SNAPSHOT</version><dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-zuul</artifactId></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-client</artifactId></dependency><!-- springboot提供微服務檢測接口,默認對外提供幾個接口 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId></dependency></dependencies> </project>編寫啟動類
@SpringBootApplication @EnableDiscoveryClient @EnableZuulProxy public class GatewayApplication {public static void main(String[] args) {SpringApplication.run(GatewayApplication.class, args);} }配置文件
server:port: 10010 spring:application:name: learn-gateway eureka:client:registry-fetch-interval-seconds: 5service-url:defaultZone: http://127.0.0.1:10086/eureka zuul:prefix: /api # 路由路徑前綴項目結構
目前,learn下有兩個子模塊:
-
learn-registry:服務的注冊中心(EurekaServer)
-
learn-gateway:服務網關(Zuul)
截止到這里,我們已經把基礎服務搭建完畢,為了便于開發,統一配置中心(ConfigServer)我們留待以后添加。
總結