摘要:添加简单用户微服务启动类简单用户微服务类支持热部署。
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交流微信群: 微信沟通群二维码图片链接
欢迎关注,您的肯定是对我最大的支持!!!
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/67802.html
摘要:第篇中用部署一个简单的基于服务治理发现的项目一大致介绍纠结了一下下,这么简单的部署流程是否需要详细的贴出来,然而纠结了一下还是将这个简单的部署流程补充完整了经过上节的讲解,相信大家已经对的命令操作都有了一定的了解,这里我就暂且默认大家都拥 SpringCloud(第 053 篇)CentOS7 中用 Docker 部署一个简单的基于 Eureka 服务治理发现的项目 - 一、大致介绍 ...
摘要:第篇中用部署一个简单的基于服务治理发现的项目一大致介绍纠结了一下下,这么简单的部署流程是否需要详细的贴出来,然而纠结了一下还是将这个简单的部署流程补充完整了经过上节的讲解,相信大家已经对的命令操作都有了一定的了解,这里我就暂且默认大家都拥 SpringCloud(第 053 篇)CentOS7 中用 Docker 部署一个简单的基于 Eureka 服务治理发现的项目 - 一、大致介绍 ...
摘要:是一个相对比较新的微服务框架,年才推出的版本虽然时间最短但是相比等框架提供的全套的分布式系统解决方案。提供线程池不同的服务走不同的线程池,实现了不同服务调用的隔离,避免了服务器雪崩的问题。通过互相注册的方式来进行消息同步和保证高可用。 Spring Cloud 是一个相对比较新的微服务框架,...
摘要:我不听,我就是这么命名。任何服务启动以后,都会把自己注册到的注册表中当服务死亡的时候,也会通知。服务拿到结果后,会把结果缓存在本地的注册表里。根据负载均衡策略,从注册表中选择一个真正的实例地址。 原创:小姐姐味道(微信公众号ID:xjjdog),欢迎分享,转载请保留出处。 这几天可真是热啊,泡个海澡是再好不过了。玩的正起劲,突然脚底绊上一股暗流,然后我就一直在水里旋转旋转旋转...终于...
阅读 1924·2021-11-23 10:03
阅读 4041·2021-11-22 09:34
阅读 2423·2021-10-08 10:05
阅读 2202·2019-08-30 15:53
阅读 1663·2019-08-30 13:56
阅读 1131·2019-08-29 16:52
阅读 1080·2019-08-26 13:31
阅读 3331·2019-08-26 11:45