前言介绍和环境搭建
  
  简述
  
  springboot 本身是为了做服务化用的,我们为什么要反其道使用它来开发一份单体web应用呢?
  
  在我们现实的开发工作中,还有大量的业务系统使用的是单体应用,特别是对于中小型团队来说,在项目开发之初选择服务化开发是得不偿失的,因为对于此类团队,势必所有的工作都是需要我们开发人员来做的,例如:
  
  技术选型
  
  业务需求分析
  
  业务需求设计
  
  大量的测试
  
  运行部署
  
  运营健康监控
  
  ...
  
  小团队或小公司如果开发人员把大规模的精力放在除业务之外的工作中,那么我们的开发效率势必会特别低下,等我们系统开发一个版本出来,也许此类需求已经不是那么符合当前的发展了,此类团队追求的是短平快并且方便部署更新。有人就会问,那我们又为什么不选择SpringMVC呢? 当然如果团队中本身已经有成型的一套SpringMVC的框架可以拿来即用,当然也是完全ok的,但是所有使用过Springboot的同学都知道。
  
  Springboot帮我们把以前在SpringMVC中需要使用XML来配置的configuration内置化了,开发人员完全可以把大量精力放在业务钻研优化上面而不需要关注它是如何配置的。
  
  作为技术选型来说,一定要想到我们的业务也许会高速扩张,在后期我们得能快速更新技术体系或者升级系统,那么springboot的本能服务化就可以体现出来了。
  
  很多的新同学在学习springboot的时候,太多的资料本身是一种demo的学习,是需要大家进一步研究之后学以致用,不太贴近生产,我希望通过此次开发,可以直接开发一套可以生产使用的demo系统。
  
  业务分析
  
  在开发任何一个新系统的时候,我们要实现的是一套电商平台,那么我们首先要考虑一个基本的电商平台都包含哪些业务功能?
  
  architecture
  
  上图展示了要实现一个电商最简单的模块信息。
  
  技术选型
  
  在技术选型的时候,个人建议遵循几点原则:
  
  切合业务实际需要(任何脱离了业务的技术都是废柴)
  
  团队人员能力(要符合团队成员的实际情况,否则上手会很慢)
  
  技术社区活跃度(选择高活跃的技术对于后期排错相当重要,更为重要的是大部分错误已经被别人试过了...)
  
  安全性(必不可少的选择)
  
  可参考 Poc之后,我选择放弃OSGI
  
  我们主题很明确的表明了要使用springboot 来实现一个web 项目,那么抓住这两个关键的点。
  
  既然使用Springboot, 我们这里使用最新的版本2.2.0.RELEASE, 既然是web项目,那么必然要使用到web相关的技术,tomcat(springboot内置),并且我们采取前后端分离的技术来开发,后端提供restful 的api, 前端使用jquery & vuejs, 既然是一个真实项目,数据库当然也是我们必不可少的,我们使用MYSQL 8.0+,那么我们java要和db进行交互,我们使用mybatis作为bridge. 基本的技术已经足够我们使用了,那么具体依赖的package 后续会给大家一一介绍.
  
  SpringBoot 2.2.0.RELEASE
  
  Mysql 8.0.18
  
  Mybatis 3.4.6
  
  开发工具
  
  工预善其事必先利其器, 以下是个人工具选择,仅供参考:
  
  IntelliJ IDEA (code tools)
  
  Free Mybatis Plugin (帮助我们方法和SQL跳转)
  
  Lombok (使用注解节省太多的codes,提升效率)
  
  Maven Helper(帮助依赖分析)
  
  Restful Toolkit(可以实现和postman一样的简单效果,同时还能帮助我们生成一部分测试信息)
  
  ...其他插件就人各有志啦~
  
  Mysql Workbench(Mysql tools)
  
  PDman (数据库设计工具,脚本的版本控制很好用哦)
  
  Talk is cheap, show me the codes
  
  说的再多,都不如来点实在的,那么我们接下来开始我们的表演吧.
  
  创建单体项目结构
  
  首先我们需要创建一个Maven的parent module, 用来将我们所有的模块信息都放在一起,如service,controller 等等.
  
  Create Parent Module expensive-shop
  
  打开IDEA,选择File => New => Project
  
  create parent module
  
  点击Next,分别输入GroupId & artifactId
  
  write groupid & artifactid
  
  点击Next,修改project name(不改也没有关系)
  
  修改project name
  
  点击Finish
  
  此时,会生成src 和 pom.xml, 因为该项目为父类项目,不会有code实现,因此,删除src目录,并修改pom.xml 文件.
  
  <?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>
  
  <parent>
  
  <groupId>org.springframework.boot</groupId>
  
  <artifactId>spring-boot-starter-parent</artifactId>
  
  <version>2.2.0.RELEASE</version>
  
  <relativePath/>
  
  </parent>
  
  <groupId>com.life-runner</groupId>
  
  <artifactId>expensive-shop</artifactId>
  
  <version>1.0-SNAPSHOT</version>
  
  <name>expensive-shop</name>
  
  <description>develop a on-line shop</description>
  
  <packaging>pom</packaging>
  
  <properties>
  
  <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  
  <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
  
  <java.version>1.8</java.version>
  
  </properties>
  
  <dependencies>
  
  <dependency>
  
  <groupId>org.springframework.boot</groupId>
  
  <artifactId>spring-boot-starter</artifactId>
  
  </dependency>
  
  <dependency>
  
  <groupId>org.springframework.boot</groupId>
  
  <artifactId>spring-boot-starter-web</artifactId>
  
  </dependency>
  
  <!--spring默认使用yml中的配置,有时候要用传统的xml或properties配置,就需要使用spring-boot-configuration-processor-->
  
  <dependency>
  
  <groupId>org.springframework.boot</groupId>
  
  <artifactId>spring-boot-configuration-processor</artifactId>
  
  <optional>true</optional>
  
  </dependency>
  
  <!--监控端点依赖-->
  
  <dependency>
  
  <groupId>org.springframework.boot</groupId>
  
  <artifactId>spring-boot-starter-actuator</artifactId>
  
  </dependency>
  
  <dependency>
  
  <groupId>org.projectlombok</groupId>
  
  <artifactId>lombok</artifactId>
  
  <version>1.18.8</version>
  
  </dependency>
  
  </dependencies>
  
  </project>
  
    import ch.qos.logback.classic.encoder.PatternLayoutEncoder
  
  import ch.qos.logback.classic.filter.ThresholdFilter
  
  import ch.qos.logback.core.ConsoleAppender
  
  import ch.qos.logback.core.rolling.RollingFileAppender
  
  import ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP
  
  import ch.qos.logback.core.rolling.TimeBasedRollingPolicy
  
  import java.nio.charset.Charset
  
  import static ch.qos.logback.classic.Level.DEBUG
  
  import static ch.qos.logback.classic.Level.ERROR
  
  import static ch.qos.logback.classic.Level.INFO
  
  import static ch.qos.logback.classic.Level.TRACE
  
  scan("60 seconds"www.yuchenghd.com)
  
  def LOG_PATH = "/usr/local/log/"
  
  def APP_NAME = "springboot-logback"
  
  context.name =www.chaoyul.com "${APP_NAME}"
  
  jmxConfigurator()
  
  appender("CONSOLE",www.chenghylpt.com   ConsoleAppender) {
  
  filter(ThresholdFilter)  www.lanboylpt.cn{
  
  level = DEBUG
  
  rollingPolicy( www.LanboyLgw.com TimeBasedRollingPolicy) {
  
  timeBasedFileNamingAndTriggeringPolicy(SizeAndTimeBasedFNATP) {
  
  maxFileSize = "100MB"
  
  1.修改packaging 为pom, 表明是一个父类集合
  
  2.引入parent节点为我们的springboot,这里是设置整个project的springboot 相关依赖以及版本管控
  
  从上述中,在该节点设置version 为 2.2.0.RELEASE之后, 下面所有的group为org.springframework.boot的依赖项都没有显示的设置版本信息.
  
  Create child module
  
  和创建父类项目一样的创建过程,依次创建我们需要用到的child modules, 完成后如下图:
  
  create child module
  
  经过上述环节,相信大家已经可以创建出我们项目所需要的架构环境了,下一次我们将开始实际业务的编码实现.
  
  gogogo.

[springboot 开发单体web shop] 1. 前言介绍和环境搭建相关推荐

  1. 广告轮播java_[springboot 开发单体web shop] 6. 商品分类和轮播广告展示

    商品分类&轮播广告 因最近又被困在了OSGI技术POC,更新进度有点慢,希望大家不要怪罪哦. 上节 我们实现了登录之后前端的展示,如: 接着,我们来实现左侧分类栏目的功能. 商品分类|Prod ...

  2. javadoc文档的生成方法_[springboot 开发单体web shop] 4. Swagger生成Javadoc

    Swagger生成JavaDoc 在日常的工作中,特别是现在前后端分离模式之下,接口的提供造成了我们前后端开发人员的沟通成本大量提升,因为沟通不到位,不及时而造成的[撕币]事件都成了日常工作.特别是很 ...

  3. Web应用测试(一)Selenium介绍及环境搭建

    Selenium介绍及环境搭建 一.背景介绍: (更好的阅读体验,请移步我的个人博客)软件测试比赛刚刚落下帷幕,在空档期,写写这些天的感受.不知不觉参加了好多次软件测试比赛了,开发者测试,移动应用测试 ...

  4. ssm实训报告心得_Java开发学习心得(一):SSM环境搭建

    Java开发学习心得(一):SSM环境搭建 有一点.NET的开发基础,在学校学过基础语法,对JAVA有点兴趣,就简单学习了一下,记录一下从哪些方面入手的,暂时不打算深入到原理方面,先简单搭下环境看看, ...

  5. phalapi-入门篇1(简单介绍以及环境搭建)

    2019独角兽企业重金招聘Python工程师标准>>> #phalapi-入门篇1(简单介绍以及环境搭建)# ##前言## 先在这里感谢phalapi框架创始人@dogstar,为我 ...

  6. uni-app实战之社区交友APP(1)项目介绍和环境搭建

    文章目录 前言 一.项目介绍 二.环境搭建和创建项目 1.开发环境搭建 2.创建uni-app项目 三.多端调试环境搭建 1.安卓手机调试配置 2.iOS真机调试配置 3.微信小程序调试配置 4.支付 ...

  7. MyBatis-学习笔记01【01.Mybatis课程介绍及环境搭建】

    Java后端 学习路线 笔记汇总表[黑马程序员] MyBatis-学习笔记01[01.Mybatis课程介绍及环境搭建][day01] MyBatis-学习笔记02[02.Mybatis入门案例] M ...

  8. Hadoop学习之整体介绍及环境搭建

    Hadoop学习之整体介绍及环境搭建 1 大数据概述 1.1 什么是大数据 数据(data)是事实或观察的结果,是对客观事物的逻辑归纳,是用于表示客观事物的未经加 工的的原始素材. 大数据:传统处理方 ...

  9. 厦门感芯科技MC3172(1):介绍和环境搭建

    厦门感芯科技MC3172(1):介绍和环境搭建 文章目录 厦门感芯科技MC3172(1):介绍和环境搭建 1. MC3172介绍 2. MC3172的开发环境 2.1 首先安装ide 2.2 找到配置 ...

  10. 【opencv4】opencv视频教程 C++(opencv教程)1、opencv介绍和环境搭建

    下一讲:[opencv4]opencv视频教程 C++(opencv教程)2.加载,修改,保存图像 [opencv_C++] 入门强推!!![B站最全] 文章目录 opencv介绍和环境搭建 open ...

最新文章

  1. DGA域名可以是色情网站域名
  2. java .listfiles_Java File.listFiles()
  3. 连不上网_手机连不上网?四种方法教你如何解决,建议收藏以备不时之需
  4. Mendix:云原生应用是软件的未来
  5. 机器学习--线性回归(LinearRegression)
  6. NB-IoT将给智能锁行业带来哪些影响?
  7. python入门-廖雪峰 Python教程
  8. 马云无偿划转阿里股权?蚂蚁集团回应:假消息
  9. Black Hat | PE Tree:BlackBerry 发布PE文件开源逆向工具
  10. 第九天 面试失败了。。。。
  11. Sql 查询库、表、列名的语句
  12. 谷歌离线地图WMS/WMTS服务
  13. 苹果4s怎么越狱_越狱软件续签教程
  14. (python)bing搜索引擎API接入测试
  15. 如何批量查询谷歌PR权重是多少?谷歌PR权重怎么批量查询
  16. Java利用dom4j解析XML任意节点和属性
  17. EXCEL:穿插复制数据到空单元格
  18. 浅议石化企业DCS、FCS系统的应用和发展
  19. IDEA安装插件提示was not installed: Cannot download解决办法
  20. 微信小程序开发 01

热门文章

  1. jupyter notebook 拒绝连接 以及 查 IP
  2. 电脑忘记密码了怎么办
  3. 【Camera基础(二)】摄像头驱动原理和开发V4L2子系统驱动架构
  4. 个人java学习路线-Spring
  5. Windows Debugging
  6. 优酷屏幕录制在哪里_手机优酷怎么录制视频
  7. 搭建自己的Milvus以图搜图服务
  8. 黑色星期五:纳斯达克五大科技股市值单日蒸发约1000亿美元
  9. 解决VMware虚拟机由于不小心更改文件路径导致的桌面图标变白,运行exe程序显示找不到路径的错误
  10. Python BS4 星巴克界面图片报错, tfp = open(filename, ‘wb‘) FileNotFoundError: [Errno 2] No such file or