Spring Boot微服务电商项目开发实战 --- 基础配置及搭建
根据SpringBoot实现分布式微服务项目近两年的开发经验,今天决定开始做SpringBoot实现分布式微服务项目的系列文章,帮助其他正在使用或计划使用SringBoot开发的小伙伴们。本次系列文章以电商项目的分布式实现展开,希望喜欢的小伙伴们关注。
SpringBoot简介
Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。
Spring Boot 是 Spring 开源组织下的子项目,是 Spring 组件一站式解决方案,主要是简化了使用 Spring 的难度,简省了繁重的配置,提供了各种启动器,开发者能快速上手。
Spring Boot 优点:
1,起步依赖
SpringBoot能够快速构建项目的魔力之一就是起步依赖。spring-boot-starter-xxx就是SpringBoot的起步依赖具体实现。例如我们要实现一个Web项目,那就只要依赖spring-boot-starter-web即可。基于不同的功能,官方为我们整合了大量的起步依赖,简化了我们搭建项目的工作。同时,起步依赖提供了可靠的依赖管理,降低了项目引入问题版本和依赖冲突的风险。
2,自动配置
SpringBoot使用@EnableAutoConfiguration 或者@SpringBootApplication注解 开启组件扫描和自动配置。 通过@SpringBootApplication的exclude参数关闭特定 的自动配置。@SpringBootApplication(exclude = XAutoConfiguration.class)
3,应用监控
Spring Boot 监控核心是 spring-boot-starter-actuator 依赖,增加依赖后, Spring Boot 会默认配置一些通用的监控,比如 jvm 监控、类加载、健康监控等。Actuator插件是SpringBoot原生提供的一个服务,可以通过暴露端点路由,用来输出应用中的诸多端点信息。
4,独立运行
SpringBoot内置了Tomcat容器,可以直接执行 main 方法运行。项目部署可以打成jar的文件在服务器上通过执行java -jar 命令来运行服务。
看完前面这4大优点,大家应该也就有一些了解了,SpringBoot把复杂的配置和容易出错的依赖统统都帮我们解决了,就连开发时本地的项目的启动,只需要执行一下main方法就可搞定,这使得使用Springboot开发更容易上手。
开发环境及使用技术
软件环境:JDK1.8,IntelliJ IDEA 2018, Mysql 5.6
分布式治理:Dubbo, Zookeeper
分布式缓存:Redis
消息队列:Kafka
SpringBoot项目搭建
先创建一个项目
点击“Create New Project”,进入以下界面
注意选择JDK,然后点击“Next”
填好Group, Artiface等信息,点击“Next”
如果你要开发一个Web项目,选择Web,再选择依赖,点击“Next”
然后设置好项目目录,点击“Finish”。此刻项目创建就完成了。
由于本次要创建分布式微服务项目,那么当前创建的只是一个父级工程的依赖,实际的(分布式模块)项目是在这个父级工程下。那么我们先修改父级工程的POM文件,添加<packaging>pom</packaging>。
此刻,选择父级工程,鼠标右击,选择“Open Modules Settings”
在打开的页面,点击上面的+号,添加一个Modules子项目。
点击“Next”
在此页面选择刚创建的项目作为Parent,在为此子模块设置GroupId和Artifactid,Version属性,然后点击“Next”。
点击“Finish”。
现在我们在刚创建的Web项目中写一个Controller和一个Application启动类,并配置application.prepoties。
Controller里写了一个get的api测试接口(/api/lyn/test)
application.properties
项目启动类:
这时,我们可以启动测试了。在启动类右击执行“Run”
项目启动成功后,打开浏览器测试一下刚下的api接口。
从头到尾,大家没看到我手动去添加Maven依赖和配置吧。仅仅配了一个服务端口号(实际这个可以不配,默认是8080)。这也正是前面说的Springboot的优点,真是太容易上手。
下期文章:分布式开发环境下分模块及提供者、消费者搭建,Dubbo服务提供及订阅消费、Zookeeper实现服务注册、单点登录及分布式缓存处理。
获取项目源码,请扫码关注公众号,并发送Springboot获取Github地址。
Spring Boot微服务电商项目开发实战 --- 基础配置及搭建的更多相关文章
- Spring Boot微服务电商项目开发实战 --- 分布式开发要避的那些坑
今天已经进入第七讲了,整个微服务架构的搭建工作也基本完成.那到目前为止究竟使用了那些技术及实现了什么功能呢?我们先回顾一下. 使用的技术:SpringBoot.Dubbo.Zookeeper.Redi ...
- Spring Boot微服务电商项目开发实战 --- 多环境部署配置、端口号统一配置及Dubbo提供者消费者实现
昨天已经搭建好了SpringBoot基于Maven的基础父子级项目,今天开始进入项目分模块及分布式实现.首先我们基于昨天的项目,在父级工程下建lyn-sys,lyn-customer,lyn-good ...
- SpringBoot微服务电商项目开发实战 --- 模块版本号统一管理及Redis集成实现
上一篇文章总结了基于SpringBoot实现分布式微服务下的统一配置.分环境部署配置.以及服务端模块的分离(每一个提供者就是一个独立的微服务).微服务落地.Dubbo整合及提供者.消费者的配置实现.本 ...
- SpringBoot微服务电商项目开发实战 --- api接口安全算法、AOP切面及防SQL注入实现
上一篇主要讲了整个项目的子模块及第三方依赖的版本号统一管理维护,数据库对接及缓存(Redis)接入,今天我来说说过滤器配置及拦截设置.接口安全处理.AOP切面实现等.作为电商项目,不仅要求考虑高并发带 ...
- SpringBoot微服务电商项目开发实战 --- Redis缓存雪崩、缓存穿透、缓存击穿防范
最近已经推出了好几篇SpringBoot+Dubbo+Redis+Kafka实现电商的文章,今天再次回到分布式微服务项目中来,在开始写今天的系列五文章之前,我先回顾下前面的内容. 系列(一):主要说了 ...
- SpringBoot微服务电商项目开发实战 --- 全局异常处理
上一篇文章讲了Redis缓存的安全防范及Kafka的接入及消息实现,今天接着前面的内容基础说说项目的优化和基础配置,今天要讲的内容主要是Spring Boot项目中的全局异常处理.为什么要做这件事呢? ...
- SpringBoot微服务电商项目开发实战 --- 分布式文件系统实现
SpringBoot分布式开发系列文章已经持续了一段时间了,每一篇都有核心内容讲给大家.比如:分环境部署配置及服务端口号统一配置,子模块版本号管理及第三方jar依赖管理,单点登录实现,接口安全(签名+ ...
- SpringBoot微服务电商项目开发实战 --- Kafka集成接入
kafka作为消息中间件的一款产品,她比较轻量级,在吞吐量方面很优秀,默认消息持久化到硬盘当中 168小时=7天,log.retention.hours=168,比较适合来做运营的统计.其他的不多讲, ...
- Java 18套JAVA企业级大型项目实战分布式架构高并发高可用微服务电商项目实战架构
Java 开发环境:idea https://www.jianshu.com/p/7a824fea1ce7 从无到有构建大型电商微服务架构三个阶段SpringBoot+SpringCloud+Solr ...
随机推荐
- VS2008发布项目“发布失败”,没有提示错误
VS2008发布项目时发布失败,但是没有提示任何的错误. 解决方法: 组合键”Ctrl+Alt+O”; 根据这个我知道了,是因为我更改了文件名,发布时找不到导致的,然后在资源管理器中找到那一项,删除或 ...
- 将多个文本文件内的数据导入到Datagridview
private BindingList listXSxxInfoList = new BindingList(); openFileDialog1.Multiselect = true;//允许选择多 ...
- UWP-消息提示(仿Android)
原文:UWP-消息提示(仿Android) 在UWP中的消息提示框(一)中介绍了一些常见的需要用户主动去干涉的一些消息提示框,接下来打算聊聊不需要用户主动去干涉的一些消息提示框.效果就是像双击退出的那 ...
- 毕设(一)C#的百度api调用
这个学期就要毕业了,选了一个无人机地面站软件设计的题目,这几天也开始着手做, 首先做了一个百度地图的调用,这里因为是上位机的开发,所有就不介绍Javascript的 调用方法,核心是用到一个类Http ...
- UWP 发送短信公用倒计时按钮
1.要求: 发送验证码按钮,点击后,会倒计时60s,之后才能再次点击.不同界面的多个验证码按钮共享这个倒计时时间. 2.操作步骤 1) 从登录界面-->忘记密码输入手机号- ...
- 21 步助你成为成功的 Web 开发者(激情不是被动的:它是一种对行动起来的追求)
随着 Web 开发产业的爆发式发展,许多人会问这样的问题:我如何才能成为一名 Web 开发者?我认为这是一个错误的提问.问题应该是:我如何才能成为一名成功的 Web 开发者? 能提出这样的问题很重要, ...
- 如何从一张图片中裁剪一部分距形图片另存为文件(使用Canvas.CopyRect)
如何从一张图片中裁剪一部分距形图片另存为文件? Delphi / Windows SDK/APIhttp://www.delphi2007.net/DelphiMultimedia/html/delp ...
- Delphi url 编码及转码及特殊字符串替换--百度和腾讯用的就是这个
先介绍一下,Delphi中处理Google的URL编码解码,其中就会明白URL编码转换的方法的 从delphi的角度看Google(谷歌)URL编码解码方式 在网上搜索了一下,似乎没有什么关于goog ...
- 抓取报表ALV GRID上的数据
在项目开发过程中需要从标准报表MB5B中获取数据,以下是本人实例中的相关部分,程序同样适用于获取其他标准报表的数据. CL_SALV_BS_RUNTIME_INFO=>SET( DISPL ...
- 以太网,IP,TCP,UDP数据包分析(此文言简意赅,一遍看不懂的话,耐心的看个10遍就懂了,感谢作者无私奉献)
1.ISO开放系统有以下几层: 7 应用层 6 表示层 5 会话层 4 传输层 3 网络层 2 数据链路层 1 物理层 2.TCP/IP 网络协议栈分为应用层(Application).传输层(Tra ...