在上一章,我讲解了React+node+express相应的框架搭建,一个项目只有一个前端框架够么,当然不够啦!!!

所以这节我们就来讲后台springboot框架的搭建和相关原理吧~~~版本(2.1.1)


1.搭建Springboot所需要的前提

①JDK8-JDK11

②Maven3.3+ 或 Gradle4.4+版本(我的随笔内用的都是Maven)

③Tomcat9.0 或 Jetty 9.4 或 Undertow 2.0


2. 到底什么是Springboot么,让我们来看下图

意思就是: Springboot是Spring框架的集成,相比Spring框架, 除了拥有Spring的功能外, Springboot配置无疑会更加轻松简单。另外默认情况生成的包为jar包,我们以java -jar相应的指令启动服务。

另外透露一点:以Springboot为基础的SpringCloud目前是微服务的首选框架~~


3. 让我们开始搭建吧

①首先我们在IDE里面建立一个Maven project, 本地命名为对应的maven.example

②更换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>maven</groupId>
<artifactId>example</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging> <!-- Inherit defaults from Spring Boot -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.1.RELEASE</version>
</parent> <!-- Add typical dependencies for a web application -->
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
</dependencies> <!-- Package as an executable jar -->
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>

关于部分模块的作用,我们这里需要讲述一下。

    <!-- Inherit defaults from Spring Boot -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.1.RELEASE</version>
</parent>

如图,即该project继承了spring-boot-starter-parent, 那么spring-boot-starter-parent提供了什么功能呢?

Ⅰ: 它以JAVA 1.8做默认编译器

Ⅱ: 它以UTF-8作为编码格式

Ⅲ: 从spring-boot-dependencies pom继承的依赖管理部分,它允许我们省略这些依赖的<version>标记。(可看“spring-boot-starter-web”对应的dependency就省略了<version>标记)。当要升级springboot本身时,有对应依赖关系的包会一同升级。

Ⅳ: 智能的resource过滤; 智能的插件配置(如git commind id、exec plugin等)

Ⅴ: 对application.properties、application.yml等文件的智能过滤与利用


    <!-- Package as an executable jar -->
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>

如图,即如果编译完程序,最后是要以jar形式去运行的话,则一定要加入此块内容,否则会报错。


    <!-- Add typical dependencies for a web application -->
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
</dependencies>

如图,spring-boot-starter-web包即是使用Spring MVC来构建RESTful Web应用,并使用tomcat作为内嵌容器;junit包即指引入junit单元测试模块。


③建立不同层的package,如图注:controller、entity、mapper等package要建立在maven.example该package层内):

这几层package的作用是什么呢?

controller: 负责路由

entity:     model层

mapper:    mybatis相应的SQL操作层

service:  controller调用的service层

以上四层的用法我会在之后的章节讲解,其余各位可再根据业务自己建立对应的package层

④在maven.example的package下的App.java里写下这段代码:

package maven.example;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; @SpringBootApplication
public class App extends SpringBootServletInitializer{ public static void main(String[] args) throws Exception { SpringApplication.run(App.class, args);
}
}

⑤关于@SpringBootApplication标签

@ SpringBootApplication注释等同于使用@Configuration,@EnableAutoConfiguration和@CommponentScan及其默认属性
@ EnableAutoConfiguration:启用Spring Boot的自动配置机制
@ ComponentScan:在应用程序所在的包上启用@Component 扫描
@Configuration:允许在上下文中注册额外的bean或导入额外的配置类

关于注释详细的解释会在以后的章节讲明

⑥关于main函数

main(String[] args) throws Exception {
  SpringApplication.run(App.class, args);
 }

我们的主要方法通过调用run来委托Spring Boot的Spring Application类SpringApplication从我们的应用程序中引导Spring,从而启动它 ,然后启动自动配置的Tomcat web服务器,我们需要将App.class作为参数传递给run方法,以告诉SpringApplication它是主要的Spring组件,args数组也被传递以公开所有命令行参数

⑦编译启动服务:

打开控制台,进到项目的根目录处,执行以下语句:mvn spring-boot:run

执行成功后如图:

  .   ____          _            __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v2.1.1.RELEASE)
....... . . .
....... . . . (log output here)
....... . . .

今天咱就暂时写到这啦, 下章会写上前端通过ajax与springboot框架的通信相关的内容

Springboot第一篇:框架了解与搭建的更多相关文章

  1. 第一篇:Win10系统搭建Python+Django+Nginx+MySQL 开发环境详解(完美版)

    Win10+Python+Django+Nginx+MySQL 开发环境搭建详解 PaulTsao 说明:本文由作者原创,仅供内部参考学习与交流,转载引用请注明出处,用于商业目的请联系作者本人. Wi ...

  2. SpringBoot 第一篇:HelloWorld 跑起来

    背景 金融行业从业快十年,作为银行系开发人员来说开源框架了解不多非常正常,因为银行系的运行平台,基本上不会采购小厂商集合开源框架自建的产品,竞标的产品没有几十个成功案例,你也进不了这个门槛(有关系的除 ...

  3. Android百度地图开发-第一篇:申请、搭建百度地图

    一.前言 这是第一篇关于Android使用百度地图的学习记录,主要记录: 1.在百度地图开发者平台上申请API Key. 2.在自己的应用中加入百度地图的Android版SDK. 3.在自己的应用中显 ...

  4. SpringBoot 第一篇:入门篇

    作者:追梦1819 原文:https://www.cnblogs.com/yanfei1819/p/10819728.html 版权声明:本文为博主原创文章,转载请附上博文链接! 前言   博主从去年 ...

  5. 《SpringBoot第一篇:HelloWorld启蒙》

    每篇一律 云对雨,雪对风,晚照对晴空. 来鸿对去雁,宿鸟对鸣虫. --<声律启蒙·一东> 什么是Spring Boot SpringBoot 是为了简化 Spring 应用的创建.运行.调 ...

  6. 第一篇 PHP开发环境搭建以及多站点配置(基于windows 7系统)

    从今天开始,我将用PHP开发一些小的网站,大家知道LAMP(Linux)组合的优势,使PHP受到广大中小企业的喜欢.使PHP与JAVA,ASP三分天下,PHP具有跨平台性,所以在windows一样是可 ...

  7. 旧电脑做服务器--第一篇 sql server 服务器搭建

    背景:旧电脑为2015年的老电脑,联系G50系列,目前键盘鼠标操作都有问题,键盘按键和鼠标左键莫名奇妙变成右击,屏幕显示也是大颗粒.但是配置还可以,16GB内存+256GB三星固态硬盘.所以想搭建作为 ...

  8. 【第一篇】Android环境搭建

    安装不易,且安且珍惜! 1 下载 Java JDK (http://java.sun.com/javae/downloads/ ) (Windows 版) [配置环境变量]:安装完成后,设置JAVA_ ...

  9. 第一篇 -- Go环境的搭建以及Hello World程序编写

    VS Code的下载和安装 1. 下载链接(本人下载版本VSCodeUserSetup-x64-1.57.0.exe) https://code.visualstudio.com/download 友 ...

随机推荐

  1. vmware workstation环境下虚拟机固定ip的设置

    一.准备 (1)vmware workstation (2)centOS 6.5 二.配置 采用nat模式对虚拟机进行固定ip配置,nat模式相当于在windows的操作系统下构建了一个独立的内部局域 ...

  2. loadrunner load generator设置init人数

    Load Generator中还有一个很重要的设置.就是用来设置init人数的,我们在运行脚本的时候会发现,在场景监控中,init默认不会超过50个人,也就是最大并发是50个人,我们想使用超过50个人 ...

  3. p2408 不同子串个数

    传送门 分析 首先我们不难求出一共有多少子串 之后我们只需要减掉重复个数即可 于是我们对于每个后缀减去它跟它前一名的最长公共前缀即可 代码 #include<iostream> #incl ...

  4. MicroRNA 详解

    MicroRNA研究历史和方法   Views 88 1Report

  5. paperfree

    主题:免费的论文查重网站 正文:给大家推荐一个免费的论文查重网站PaperFree:http://www.paperfree.cn

  6. (转) c/c++调用libcurl库发送http请求的两种基本用法

    libcurl主要提供了两种发送http请求的方式,分别是Easy interface方式和multi interface方式,前者是采用阻塞的方式发送单条数据,后者采用组合的方式可以一次性发送多条数 ...

  7. linux 创建数据库

    mysql -uroot -pxxxxxx 1. 修改服务器的字符集 打开/etc/mysql/my.cnf,在[mysqld]后添加character-set-server=utf8 2. 查看my ...

  8. JSTL 引入

    首先要明白jstl有如下版本:  jstl1.0的引入方式为: <taglib uri="http://java.sun.com/jstl/core" prefix=&quo ...

  9. OpenCV4Android安装

    转:http://blog.csdn.net/gao_chun/article/details/49359535 1.下载及目录介绍 2.将 OpenCV引入 Android Studio 3.更新 ...

  10. 编写高质量代码改善C#程序的157个建议——建议104:用多态代替条件语句

    建议104:用多态代替条件语句 假设要开发一个自动驾驶系统.在设计之初,此自动驾驶系统拥有一个驾驶系统命令的枚举类型: enum DriveCommand { Start, Stop } 当前该枚举存 ...