摘要:添加簡單用戶微服務啟動類簡單用戶微服務類支持熱部署。
SpringCloud(第 038 篇)idea環境熱部署微服務開發
-
一、大致介紹1、我們在開發過程中,會經常需要啟動、停止微服務,而且有時候會比較頻繁,需要不停的操作啟停動作; 2、而我們本章節主要講解下如何在開發環境中進行熱部署,這樣的話可以在一定程度上專心敲代碼,兩耳不聞窗外事,一心只想敲代碼;二、實現步驟 2.1 添加 maven 引用包
2.2 添加應用配置文件(springms-simple-provider-user-devtoolssrcmainresourcesapplication.yml)4.0.0 springms-simple-provider-user-devtools 1.0-SNAPSHOT jar com.springms.cloud springms-spring-cloud 1.0-SNAPSHOT org.springframework.boot spring-boot-starter-data-jpa org.springframework.boot spring-boot-starter-web com.h2database h2 runtime org.springframework.boot spring-boot-starter-data-solr org.springframework.boot spring-boot-devtools true org.springframework.boot spring-boot-maven-plugin true
server: port: 8305 spring: application: name: springms-simple-provider-user-devtools #全部小寫 jpa: generate-ddl: false show-sql: true hibernate: ddl-auto: none datasource: platform: h2 schema: classpath:schema.sql data: classpath:data.sql thymeleaf: cache: false logging: level: root: INFO org.hibernate: INFO org.hibernate.type.descriptor.sql.BasicBinder: TRACE org.hibernate.type.descriptor.sql.BasicExtractor: TRACE com.springms: DEBUG2.3 添加 H2 數據庫腳本(springms-simple-provider-user-devtoolssrcmainresourcesschema.sql)
drop table user if exists; CREATE TABLE USER( id BIGINT GENERATED by default as identity, username VARCHAR(40), name VARCHAR(20), age int(3), balance DECIMAL(10, 2), PRIMARY KEY(id) );2.4 插入 H2 數據庫一些初始化數據(springms-simple-provider-user-devtoolssrcmainresourcesdata.sql)
INSERT into user (id, username, name, age, balance) values (1, "user1", "張三", 20, 100.00); INSERT into user (id, username, name, age, balance) values (2, "user2", "李四", 22, 100.00); INSERT into user (id, username, name, age, balance) values (3, "user3", "王五", 24, 100.00); INSERT into user (id, username, name, age, balance) values (4, "user4", "趙六", 26, 100.00); INSERT into user (id, username, name, age, balance) values (5, "user5", "李逵", 27, 100.00); INSERT into user (id, username, name, age, balance) values (6, "user6", "張遠", 10, 100.00); INSERT into user (id, username, name, age, balance) values (7, "user7", "迪拜", 60, 100.00); INSERT into user (id, username, name, age, balance) values (8, "user8", "哈士奇", 40, 100.00); INSERT into user (id, username, name, age, balance) values (9, "user9", "關羽", 30, 100.00);2.5 添加訪問底層數據模型的DAO接口(springms-simple-provider-user-devtoolssrcmainjavacomspringmscloudrepositoryUserRepository.java)
package com.springms.cloud.repository; import com.springms.cloud.entity.User; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.stereotype.Repository; @Repository public interface UserRepository extends JpaRepository2.6 添加實體用戶類User(springms-simple-provider-user-devtoolssrcmainjavacomspringmscloudentityUser.java){ }
package com.springms.cloud.entity; import java.math.BigDecimal; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; @Entity public class User { @Id @GeneratedValue(strategy = GenerationType.AUTO) private Long id; @Column private String username; @Column private String name; @Column private Short age; @Column private BigDecimal balance; public Long getId() { return this.id; } public void setId(Long id) { this.id = id; } public String getUsername() { return this.username; } public void setUsername(String username) { this.username = username; } public String getName() { return this.name; } public void setName(String name) { this.name = name; } public Short getAge() { return this.age; } public void setAge(Short age) { this.age = age; } public BigDecimal getBalance() { return this.balance; } public void setBalance(BigDecimal balance) { this.balance = balance; } }2.7 添加用戶Web訪問層Controller(springms-simple-provider-user-devtools/src/main/java/com/springms/cloud/controller/SimpleProviderUserDevtoolsController.java)
package com.springms.cloud.controller; import com.springms.cloud.entity.User; import com.springms.cloud.repository.UserRepository; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RestController; /** * 用戶微服務Controller(支持 idea 熱部署)。 * * @author hmilyylimh * * @version 0.0.1 * * @date 17/10/18 * */ @RestController public class SimpleProviderUserDevtoolsController { @Autowired private UserRepository userRepository; @GetMapping("/simple/{id}") public User findById(@PathVariable Long id) { return this.userRepository.findOne(id); } @GetMapping("simple") public String simple() { return "simple-2017-09"; } @GetMapping("simple2") public String simple2() { return "simple2-2017"; } }2.8 添加簡單用戶微服務啟動類(springms-simple-provider-user-devtoolssrcmainjavacomspringmscloudMsSimpleProviderUserApplication.java)
package com.springms.cloud; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; /** * 簡單用戶微服務類(支持 idea 熱部署)。 * * @author hmilyylimh * * @version 0.0.1 * * @date 17/10/18 * */ @SpringBootApplication public class MsSimpleProviderUserDevtoolsApplication { public static void main(String[] args) { SpringApplication.run(MsSimpleProviderUserDevtoolsApplication.class, args); System.out.println("【【【【【【 簡單用戶微服務(熱部署) 】】】】】】已啟動."); } }三、測試
/**************************************************************************************** 一、簡單用戶微服務接口測試: 1、添加 spring-boot-devtools 熱部署依賴; 2、pom.xml 添加四、下載地址true 屬性; 3、設置 idea 屬性:“File” -> “Settings” -> “Build,Execution,Deplyment” -> “Compiler”,選中打勾 “Build project automatically” ; 4、設置 idea 屬性:組合鍵:“Shift+Ctrl+Alt+/” ,選擇 “Registry” ,選中打勾 “compiler.automake.allow.when.app.running” ; 5、設置緩存配置 spring.thymeleaf.cache=false; 6、設置 chrome 屬性:F12或者“Ctrl+Shift+I”,打開開發者工具,“Network” 選項卡下 選中打勾 “Disable Cache(while DevTools is open)” ; 7、啟動 springms-simple-provider-user-devtools 模塊服務,啟動1個端口; 8、在瀏覽器輸入地址 http://localhost:8305/simple 可以看到信息成功的被打印出來; 9、改動 Controller 某個方法的返回值,或者新增方法,然后會看到控制臺自動重啟該應用,進行熱部署; 10、再在瀏覽器請求剛剛改動的鏈接,發現鏈接返回的內容確實動態改變過來了,這就是熱部署; ****************************************************************************************/
https://gitee.com/ylimhhmily/SpringCloudTutorial.git
SpringCloudTutorial交流QQ群: 235322432
SpringCloudTutorial交流微信群: 微信溝通群二維碼圖片鏈接
歡迎關注,您的肯定是對我最大的支持!!!
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/67802.html
摘要:第篇中用部署一個簡單的基于服務治理發現的項目一大致介紹糾結了一下下,這么簡單的部署流程是否需要詳細的貼出來,然而糾結了一下還是將這個簡單的部署流程補充完整了經過上節的講解,相信大家已經對的命令操作都有了一定的了解,這里我就暫且默認大家都擁 SpringCloud(第 053 篇)CentOS7 中用 Docker 部署一個簡單的基于 Eureka 服務治理發現的項目 - 一、大致介紹 ...
摘要:第篇中用部署一個簡單的基于服務治理發現的項目一大致介紹糾結了一下下,這么簡單的部署流程是否需要詳細的貼出來,然而糾結了一下還是將這個簡單的部署流程補充完整了經過上節的講解,相信大家已經對的命令操作都有了一定的了解,這里我就暫且默認大家都擁 SpringCloud(第 053 篇)CentOS7 中用 Docker 部署一個簡單的基于 Eureka 服務治理發現的項目 - 一、大致介紹 ...
摘要:是一個相對比較新的微服務框架,年才推出的版本雖然時間最短但是相比等框架提供的全套的分布式系統解決方案。提供線程池不同的服務走不同的線程池,實現了不同服務調用的隔離,避免了服務器雪崩的問題。通過互相注冊的方式來進行消息同步和保證高可用。 Spring Cloud 是一個相對比較新的微服務框架,...
摘要:我不聽,我就是這么命名。任何服務啟動以后,都會把自己注冊到的注冊表中當服務死亡的時候,也會通知。服務拿到結果后,會把結果緩存在本地的注冊表里。根據負載均衡策略,從注冊表中選擇一個真正的實例地址。 原創:小姐姐味道(微信公眾號ID:xjjdog),歡迎分享,轉載請保留出處。 這幾天可真是熱啊,泡個海澡是再好不過了。玩的正起勁,突然腳底絆上一股暗流,然后我就一直在水里旋轉旋轉旋轉...終于...
閱讀 1981·2021-11-23 10:03
閱讀 4179·2021-11-22 09:34
閱讀 2487·2021-10-08 10:05
閱讀 2254·2019-08-30 15:53
閱讀 1691·2019-08-30 13:56
閱讀 1161·2019-08-29 16:52
閱讀 1113·2019-08-26 13:31
閱讀 3352·2019-08-26 11:45