【SpringBoot学习 | 1】IDEA2019创建第一个Springboot项目
目录序写作缘由系统要求正文一、创建Springboot项目二、自定义HellowordController源码地址:序写作缘由大佬推荐用Springboot代替ssm框架,轻量方便;之前也预备用Vue+ssm 前后端分离 做项目开发,现在改成Vue+Springboot,虽然需要学习的内容量加大了,但是,为了以后毕设或其他项目更方便套框架模板(对,我就是懒!滑稽~),学习Sprin...
序
写作缘由
-
大佬推荐
用Springboot代替ssm框架,轻量方便; -
之前也预备用
Vue+ssm
前后端分离 做项目开发,现在改成Vue+Springboot
,虽然需要学习的内容量加大了,但是,为了以后毕设或其他项目更方便套框架模板
(对,我就是懒!滑稽~),学习Springboot是必要的。 -
经过一下午的Google发现,Springboot入门解析太少了,大部分都是老鸟浅谈;写得好的几篇文章,我用一下午的教训:验证确定了,我目前IDEA版本2019,很难复现老版本项目,而且IDEA创建Springboot时,部分指引关键词已经有变化。
因此,这里记录一下,为 前后端分离 做准备,也希望大家不要重复踩坑!!
系统要求
这里也非常重要,如果出入太大,不建议完全模仿我相关的项目
- win10
- jdk1.8
- springboot 2.1.7.RELEASE
- 开发工具(IntelliJ IDEA 2019.1.3)
- 数据库管理工具(Navicat Premium 12.0.16)
- apache maven(3.6.0,本章采用maven形式管理jar包,具体配置环境变量以及使用请自行查找资料)
正文
一、创建Springboot项目
-
选择:
Spring Initializr
,jdk为本地目录下的位置:1.8.0_121
,创建的第一个程序是依照Spring官网给的例子进行创建的:Default
。
-
修改了Group的名称,和Artifact名称,修改war包类型,点击Next
说明:group名称会是项目目录,Artifact名称会是你的springboot项目的主函数名称:
我后面改了很多次项目,所以命名就是test2了。
war包是自定义导出类型。 -
选择
Web
,创建类型一定要选Spring Web Starter
(强调: 这里是和其他版本都不同的,其他旧版本这里选的是web,IDEA2019更新了命名),如果不选,不能使用内置tomcat;等以后需要sql和其他服务时,我们以后再学;这里选最简单的就好。
题外话:可以看到spring支持的springcloud也是非常强大且适用的,留着以后学习 -
项目名称及自定义保存位置
-
创建完毕,
import Changes
后的目录如下:
-
什么都不用改动,
直接进入TestApplication,运行main主函数
,运行成功效果:
打开浏览器查看到以下内容,即是配置成功!
如果第一次运行不成功,百分之九十的原因是因为这个文件pom.xml配置
- 可能是创建时没有勾选
Spring Web Starter
- 从本地仓库导入jar包不成功
- 注意我们这里用的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
- 新建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!";
}
}
- 重启主函数的三种办法:
- 浏览器查看结果:
http://localhost:8080/index
源码地址
Springboot源码:https://github.com/cungudafa/SpringBoot
更多推荐
所有评论(0)