天才第一步:springboot入门,就从这里开始学习
spring boot简介
spring boot框架抛弃了繁琐的xml配置过程,采用大量的默认配置简化我们的开发过程。
所以采用Spring boot可以非常容易和快速地创建基于Spring 框架的应用程序,它让编码变简单了,配置变简单了,部署变简单了,监控变简单了。
说的直白一些使用spring boot之后就不用像以前使用ssm的时候添加那么多配置文件了,spring boot除了支持ssm之外,还支持非常多的第三方技术。spring boot就像是一个百宝箱,你要用那些技术,直接告诉他就行了。在spring boot中写的代码跟以前一样,所以在学习的时候非常容易上手。
而对于springboot,除了使用简单之外,就像我前面说的,他就像是一个百宝箱一样,为什么这么说呢,一张图给你清晰将清楚
但是,一切技术的入门都是从基础开始,就像我们开始第一个Java程序,编写的就是HelloWorld一样,同样的, 对于springboot的入门程序,我也会带你搭建你的第一个HelloWorld
文章首发公众号:Java架构师联盟
好了,开始重点(ps:不要着急划走,看到最后)
版本要求
这里我们使用spring boot2.x的版本,要求版本号:
jdk8+
maven3+
第一个spring boot项目
在idea中通过插件创建一个spring boot项目,创建好之后会生成一些目录和类。
创建一个模块
设置group和artifact,这里选择jar包
勾选web,这里创建一个web项目
next + finish
可以看到SpringBoot的目录结构
Application类(入口类)
在Application类中有一个@SpringBootApplication注解,这是是springboot的核心注解,主要作用是开启spring自动配置。
package com.example.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
main方法中的SpringApplication.run在启动的时候会启动springboot程序,启动spring容器,启动内嵌的tomcat容器。
- @Configuration 允许将其他@bean注解标识的类加入到spring容器中,相当于spring配置文件中的beans标签
- @EnableAutoConfiguration 启动自动配置
- @ComponentScan 会自动扫描当前包和子包下的标有@Component, @Service,@Repository,@Controller的类。相当于以前spring配置文件中的context:component-scan
ps:不要创建一个比Application类包级别高的类,需要创建子包,因为spring boot会自动扫描application类的子包或者是平级的类。如果是高与application的话就无法扫描了。
resources目录
- application.properties 是spring boot配置文件
- static存放静态资源
- templatesspring boot动态的数据不建议使用jsp,而是使用thymeleaf模板语言,跟velocity和freemarker类似,是一个模板引擎。是独立于spring boot的,并不是spring boot的一部分。
pom文件解析
依赖没有版本号,是从父工程中选择继承的(应该是父工程的父工程,爷爷辈)。这个依赖叫做起步依赖,这些第三方的依赖是写在了dependencymanagement中,所以我们的项目如果要使用的话,还需要些依赖,只不过版本号是可以省略的。如果不想使用spring boot的默认版本的话,自己手动添加版本号即可
<?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 https://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.4.1</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.example</groupId>
<artifactId>demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>demo</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-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>
编写spring mvc的controller
在Application类的下面再创建一个controller包,创建一个Controller
package com.example.demo.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class TestController {
@RequestMapping(value = "/biws")
public String biws() {
return "Hello World";
}
}
启动入口类
打开浏览器,访问localhost:8080/biws 即可看到页面显示出
证明我们第一个SpringBoot程序成功运行了
ps:第一次使用springboot的各位,你可能需要多等待一会,因为springboot相应的maven依赖支撑要下载一段时间的,当然了,网速牛的人当我没说
总结
spring boot就相当于一个平台,把我们需要一些东西准备好了,我们在这个平台里面填充业务代码即可,即代码跟以前代码区别不大。
1、能够快速创建基于Spring的应用程序;
2、能够直接使用java main方法启动内嵌的Tomcat服务器运行Spring boot程序,不需要部署war包文件;
3、提供约定的starter POM来简化Maven配置,让Maven的配置变得简单;
4、根据项目的Maven依赖配置,Spring boot自动配置Spring、Spring mvc等;
5、提供了程序的健康检查等功能;
6、基本可以完全不使用XML配置文件,采用注解配置。
而这只是初始的springboot相关内容,而对于springboot的相关内容,其实还有很多的内容,为什么这么说呢,因为这是我个人的一个爱好,就是每学习一个新的技术,我都会去做一些思维导图,springboot也不例外,所以今天在编写这篇技术分享的时候我打开了我的springboot思维导图,吓我一跳,没想到展开已经这么大了(太长了,最后展示吧),其实这就是我们在学习的过程中该有的样子,从最一开始的helloworld,到现在动不动就上万行代码实现,不都是这样一步步走下来的呀
我会从今天开始,梳理我学过的知识点,既是对自己的一个成长和巩固,也希望大家能够和我一起回顾自己的知识点,大家一起成长
最后,展示一下我整理的springboot的知识图谱吧,哈哈哈哈哈,看着就很有成就感啊