目录
- 一、SpringBoot简介
- 二、创建项目,Hello World项目
- 三、Spring配置文件
- 四、SpringBoot项目结构
最近换了个实习工作,需要用到这些技术,也借此机会系统的学习一下,写个笔记,做个记录,加油加油!
一、SpringBoot简介
SpringBoot是Spring公司的一个顶级项目,和SpringFramework是一个级别的。
SpringBoot实际上是利用Spring Framework4的自动配置特性完成的, 编写项目是不需要写xml文件的。 发展到现在,SpringBoot已经具有很大的生态圈,各种主流技术已经都提供了SpringBoot的启动器。
那么什么是启动器呢?
SpringBoot的启动器实际上是一个依赖。这个依赖中包含了整个这个技术的相关jar包,
Spring Boot的启动器实际上就是一个依赖。这个依赖中包含了整个这个技术的相关jar包,还包含了这个技术的自动配置, 以前的绝大多数xml配置都不需要配置了。
当然了,启动器也是无法实现所有内容的自动配置,所以在使用Spring Boot时还需要进行少量的配置(这个配置不是在xml中了,而是在properties或yml中即可)。
- 如果是Spring自己封装的启动器,那启动器的artifactid值叫: Spring-boot-starter-XXXX,
- 如果是第三方公司提供的启动器,那启动器的artifactid值叫: XXXX-spring-boot-starter。
以后每次使用SpringBoot整合其他技术时首先需要考虑导入启动器。
Spring Boot在学习什么?
Spring Boot本质是Spring Framework,Spring Framework框架在项目中作用是Spring整合各种其他技术,让其他技术使用更加方便。所以学习Spring Boot就是在学习如何整合其他技术。
二、创建项目,Hello World项目
新建一个普通的Maven项目:
项目名称为SpringBoot1:
导入依赖:
引入SpringBoot有两种方式,一种是继承,一种是导入依赖。
- 继承
<!-- 继承方式:添加SpringBoot启动器 -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.10.RELEASE</version>
</parent>
- 依赖
<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-dependencies -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>2.1.10.RELEASE</version>
<type>pom</type>
<scope>provided</scope>
</dependency>
还要添加SpringMVC的依赖:
<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-web -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>2.1.10.RELEASE</version>
</dependency>
在公司项目中可能会出现必须继承某个项目的时候,如果Spring Boot 用了继承的方式实现了jar包的管理,那么就不能在继承别的项目了。不利于程序后期的扩展,维护等,所以推荐使用依赖的方式。
创建控制器:
package com.veeja.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
/**
* @Author veeja
* 2021/1/7 8:43
*/
@Controller
public class MyController {
@RequestMapping("/show")
@ResponseBody
public String show() {
return "hello";
}
}
创建启动类:
package com;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
/**
* @Author veeja
* 2021/1/7 8:57
*/
@SpringBootApplication
public class TestApplication {
public static void main(String[] args) {
SpringApplication.run(TestApplication.class, args);
}
}
注明:
Spring Boot 项目是基于主方法启动运行的(内置了tomcat,启动主方法的时候,就把tomcat给启动了; 然后把当前项目发布到内置的tomcat里,这一堆事都帮我们做好了),所以要有一个类,类里有main方法。这个类就叫启动类。
启动类 要求:
- 启动类的位置,必须包含在一个包里,并且该包是其他文件的同包或者父包。
- 在类的上方添加注解
@SpringBootApplication
- Spring Boot 项目自动扫描 启动类所在的包以及 启动类 所在包的子包。
运行启动类:
接下来我们运行这个启动类就可以了,
当控制台中出现我们启动类的全限定类名的时候,项目就启动成功了。
我们直接在浏览器里面访问http://localhost:8080/show
,就可以看到返回的值“hello”了。
三、Spring配置文件
在src/main/resources/
创建配置文件。SpringBoot项目为我们设置了两种配置的方式:
- 属性文件
第一种方式是属性文件,application.properties
配置的方式是key=value
比如配置端口号:server.port=8086
- YML
第二种方式,YML文件,创建application.yml
把属性名根据点进行拆分。如
spring:
DataSource:
password: 值
username: 值
url: 值
driver-class-name: 值
比如上面的配置,在properties中就应该写成:
Spring.Datasource.password=值
Spring.Datasource.username=值
Spring.Datasource.url=值
Spring.Datasource.driver-class-name=值
推荐使用YML的配置方式。层次感明显,而且配置写的少。
以后的Spring Boot 项目开发中,使用第二种配置文件的方式。但其实项目在运行的时候,还是会解析成第一种属性文件的方式!
了解:其实还有一个先于 application.yml加载的配置文件,叫做 bootstrap.xml。
四、SpringBoot项目结构
项目结构:
项目名:
- src/
- - main/
- - - java/
- - - - resource/ 存放配置文件。
- - - - - public/ 公共资源。存放所有的共享的内容,对外公开的资源内容。
- - - - - static/ 静态资源。图片,CSS,JS。不会被服务器解析的内容。
- - - - - - images/ 1.jpg 想要访问该文件时,需访问(http://ip:port/images/1.jpg),不要加static路径
- - - - - - css/
- - - - - - js/
- - - - - templates thymeleaf页面所在目录
只有当前项目使用jsp做页面的时候。
src/main/webapp
- WEB-INF
- - jsp
- - - index.jsp
注意:
IDEA平台Maven项目,缓存特别大。尤其是项目里引入静态资源的时候,所以要经常的清除缓存。
点击平台右侧Maven–点开项目–点开leftcycle–点击clean。重启项目访问即可。
在访问静态资源的时候,一定不要把static名字加到访问路径下,static只是标识作用。
关于静态资源,我们举个例子:
新建一个static文件夹,在下面创建一个image文件夹,放入一张图片:
我们访问http://localhost:8086/image/1.jpg
:
关于templates :专门用来存放thymeleaf 页面的,如果项目使用的是jsp作为页面展示技术,那就不需要创建templates 文件夹。
该文件夹还有个特性:跟 WEB-INF 一样。不能通过浏览器url直接访问;只能通过控制器转发过来。
如果使用JSP作为页面的展示技术,JSP需要有web结构:
webapp
- WEB-INF
- - jsp
- - - index.jsp
idea平台Maven里,需要手动额外配置jsp的解析路径:
File→project Structure→Modules→点开项目→web→点击下面的”+”→选择当前项目里jsp的路径→ok→ok→Apply
这样webapp路径下就可以创建jsp页面了。
到此为止,SpringBoot的新东西基本上学习完毕了,接下来就是SpringBoot对其他框架、技术的整合了。