目录
一.通过官网搭建项目
二.通过IDEA脚手架搭建项目
三.SpringBoot项目结构
四.通过Maven搭建项目
五.编写Java代码
一.通过官网搭建项目
接下来我们搭建一个SpringBoot项目,并引入SpringMVC的功能,
首先我们可以通过官网搭建项目:
1
- 访问start.spring.io (这是搭建SpringBoot项目的官网)
- 2生成SpringBoot项目
SpringBoot版本说明:
- SNAPSHOT:快照版,表示开发版本,随时可能修改;
- M1(Mn):M1是milestone的缩写,也就是里程碑版本;
- RC1(RCn):RC1是release candidates的缩写,也就是发布预览版;
- Release:正式版,也可能没有任何后缀也表示正式版
一般都用里程碑版本和正式版。
SpringBoot引入的依赖是起步依赖,是一个功能引入一个依赖,而不是一个jar包引入一个依赖。
点击上面的生成按钮之后,会自动下载一个官网帮我们搭建的SpringBoot项目的压缩包,解压之后,把解压的文件导入到idea中即可。
之前学习的时候,普通java程序打的是一个jar包,而web程序打得是一个war包,而这是一个Spring Web项目,但是为什么打得是一个jar包呢,请看下面的打包类型说明:
SpringBoot打包类型说明:
使用SpringMVC开发的是一个web项目,但由于在SpringBoot中直接嵌入了Tomcat等
Web容器,所以所以SpringBoot用Java程序运行就可以了,在使用SpringBoot做Web开发时不需要部署War文件,只需要打成Jar包即可,而war是给Tomcat使的。
二.通过IDEA脚手架搭建项目
在IDEA中新建项目,项目类型为Spring Initializr,选择JDK版本和搭建网站后点击下一步。
其实这个方式底层也是连接的官网。
脚手架工具也会访问SpringBoot官网进行项目搭建,但SpringBoot官网有时访问速度较慢,我们也可以选择国内的镜像网站https://start.aliyun.com/搭建项目,阿里的脚手架镜像SpringBoot版本有些滞后,我还是选择了用官网的网址。
新建一个项目
三.SpringBoot项目结构
接下来我们分析SpringBoot的项目结构:
POM文件
1
1. SpringBoot项目必须继承spring-boot-starter-parent,即所有的SpringBoot项目都是spring-boot-starter-parent的子项目。
spring-boot-starter-parent中定义了常用配置、依赖、插件等信息,供SpringBoot项目继承使用。
<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.7.4</version><relativePath/> <!-- lookup parent from repository -->
</parent>
2. SpringBoot项目中可以定义起步依赖,起步依赖不是以jar包为单位,而是以功能为单位。
这种引入方式使得不必再像之前一样引入那么多依赖,而是现在引入很少的东西即可。
<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>
3.spring-boot-maven-plugin插件是将项目打包成jar包的插件。
该插件打包后的SpringBoot项目无需依赖web容器,可以直接使用JDK运行。
<build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins>
</build>
如果发生报错(spring-boot-maven-plugin呈红色),请参考这篇文章,我的是添加了个版本号就好了。
启动类
启动类的作用是启动SpringBoot项目,运行启动类的main方法即可启动SpringBoot项目。
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication
public class Springbootdemo2Application {public static void main(String[] args) {SpringApplication.run(Springbootdemo2Application.class, args);}}
配置文件
由于SpringBoot极大简化了Spring配置,所以只有一个application.properties配置文件,且Spring的自动配置功能使得大部分的配置都有默认配置,该文件的功能是覆盖默认配置信息,该
文件不写任何信息都可以启动项目。
启动后默认端口号为8080,我们可以覆盖该配置:
然后启动项目
四.通过Maven搭建项目
了解了SpringBoot结构后,我们也可以使用Maven手动搭建SpringBoot项目:
1
使用Maven创建普通JAVA项目,注意是普通的项目,idea2022版本如下创建,是不用选Archetype的!
在pom中添加项目的父工程、起步依赖、插件
<!--父工程--><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.7.4</version></parent><!--起步依赖--><dependencies><!--springmvc的起步依赖--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId><version>2.7.4</version></dependency></dependencies><!--插件--><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build>
编写启动类
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication
public class SpringBootAPP {public static void main(String[] args) {SpringApplication.run(SpringBootAPP.class,args);}
}
编写配置文件application.properties(名字是固定的)
#日志格式
logging.pattern.console=%d{MM/dd HH:mm:ss.SSS} %clr(%-5level) --- [%-15thread] %cyan(%-50logger{50}):%msg%n
#端口号
server.port=8888
项目结构:
运行启动类主方法,启动项目
刷新一下maven,上方就会自动出现服务器
点击绿色按钮运行即可。
五.编写Java代码
之前搭建的SpringBoot项目已经都整合了SpringMVC,我们编写一个控制器进行测试:
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;@Controller
public class MyController {@RequestMapping("/hello")@ResponseBodypublic String hello(){System.out.println("hello springboot!");return "hello springboot!";}
}
在上面的项目结构下,在first下创建一个controller包,再在controller包下新建一个MyController类
com.first.controller
启动类在启动时会做注解扫描(@Controller、@Service、 @Repository......),扫描位置为同包(在本例中是com.first)或者子包(在本例中是com.first.controller)下的注解,所以我们要在启动类同级或同级包下编写代码。
启动项目,访问http://localhost:8888/hello