写作缘由

  1. 大佬推荐用Springboot代替ssm框架,轻量方便;

  2. 之前也预备用Vue+ssm 前后端分离 做项目开发,现在改成Vue+Springboot,虽然需要学习的内容量加大了,但是,为了以后毕设或其他项目更方便套框架模板(对,我就是懒!滑稽~),学习Springboot是必要的。

  3. 经过一下午的Google发现,Springboot入门解析太少了,大部分都是老鸟浅谈;写得好的几篇文章,我用一下午的教训:验证确定了,我目前IDEA版本2019,很难复现老版本项目,而且IDEA创建Springboot时,部分指引关键词已经有变化。

    因此,这里记录一下,为 前后端分离 做准备,也希望大家不要重复踩坑!!

系统要求

这里也非常重要,如果出入太大,不建议完全模仿我相关的项目

  1. win10
  2. jdk1.8
  3. springboot 2.1.7.RELEASE
  4. 开发工具(IntelliJ IDEA 2019.1.3)
  5. 数据库管理工具(Navicat Premium 12.0.16)
  6. apache maven(3.6.0,本章采用maven形式管理jar包,具体配置环境变量以及使用请自行查找资料)

正文

一、创建Springboot项目

  1. 选择: Spring Initializr,jdk为本地目录下的位置:1.8.0_121,创建的第一个程序是依照Spring官网给的例子进行创建的:Default
    在这里插入图片描述

  2. 修改了Group的名称,和Artifact名称,修改war包类型,点击Next
    在这里插入图片描述

    说明:group名称会是项目目录,Artifact名称会是你的springboot项目的主函数名称:
    我后面改了很多次项目,所以命名就是test2了。
    在这里插入图片描述
    war包是自定义导出类型。

  3. 选择Web,创建类型一定要选Spring Web Starter强调: 这里是和其他版本都不同的,其他旧版本这里选的是web,IDEA2019更新了命名),如果不选,不能使用内置tomcat;

    等以后需要sql和其他服务时,我们以后再学;这里选最简单的就好。
    题外话:可以看到spring支持的springcloud也是非常强大且适用的,留着以后学习

    在这里插入图片描述

  4. 项目名称及自定义保存位置
    在这里插入图片描述

  5. 创建完毕,import Changes后的目录如下:
    在这里插入图片描述

  6. 什么都不用改动,直接进入TestApplication,运行main主函数,运行成功效果:
    在这里插入图片描述
    打开浏览器查看到以下内容,即是配置成功!
    在这里插入图片描述

如果第一次运行不成功,百分之九十的原因是因为这个文件pom.xml配置

  1. 可能是创建时没有勾选Spring Web Starter
  2. 从本地仓库导入jar包不成功
  3. 注意我们这里用的springboot内置的tomcat,需要删除本地maven仓库中tomcat的配置,

我清空了目录:C:\Users\CUNGU\.m2\repository\org\apache\tomcat,以保证springboot内置web和tomcat在加载时不会出错;这里还剩两个文件时springboot项目加载完毕后自动注入的:
在这里插入图片描述
如果还是遇见:
在这里插入图片描述
参考我前一篇博客:【解决问题】pom文件中< project>标签处划红线

最后贴出完整的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.1.7.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.springboot</groupId>
    <artifactId>test2</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>war</packaging>
    <name>test</name>
    <description>Demo project for Spring Boot</description>

    <properties>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

ServletInitializer.java

它继承了SpringBootServletInitializer这个父类,而SpringBootServletInitializer这个类是springboot提供的web程序初始化的入口,当我们使用外部容器(后期会使用外部tomcat如何运行项目)运行项目时会自动加载并且装配。实现了SpringBootServletInitializer的子类需要重写一个configure方法,方法内自动根据TestApplication.class的类型创建一个SpringApplicationBuilder交付给springboot框架来完成初始化运行配置。

package com.springboot.test2;

import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;

public class ServletInitializer extends SpringBootServletInitializer {

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
        return application.sources(TestApplication.class);
    }

}

二、自定义HellowordController

  1. 新建controller文件夹,里面新建HellowordController:
    在这里插入图片描述
package com.springboot.test2.controller;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping
public class HellowordController {

    @RequestMapping(value = "/index",method = RequestMethod.GET)
    public String hello(){
        return "Hello!This is my first Springboot Test!";
    }
}

  1. 重启主函数的三种办法:
     在这里插入图片描述 在这里插入图片描述
  2. 浏览器查看结果:http://localhost:8080/index
    在这里插入图片描述

源码地址

Springboot源码:https://github.com/cungudafa/SpringBoot

Logo

前往低代码交流专区

更多推荐