目录

  • 一、SpringBoot简介
  • 二、创建项目,Hello World项目
  • 三、Spring配置文件
  • 四、SpringBoot项目结构


最近换了个实习工作,需要用到这些技术,也借此机会系统的学习一下,写个笔记,做个记录,加油加油!

一、SpringBoot简介

SpringBoot是Spring公司的一个顶级项目,和SpringFramework是一个级别的。

SpringBoot实际上是利用Spring Framework4的自动配置特性完成的, 编写项目是不需要写xml文件的。 发展到现在,SpringBoot已经具有很大的生态圈,各种主流技术已经都提供了SpringBoot的启动器。

springboot项目经历简历 springboot项目简历描述_java


那么什么是启动器呢?

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项目:

springboot项目经历简历 springboot项目简历描述_java_02


项目名称为SpringBoot1:

springboot项目经历简历 springboot项目简历描述_springboot项目经历简历_03


导入依赖:

引入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方法。这个类就叫启动类。

启动类 要求:

  1. 启动类的位置,必须包含在一个包里,并且该包是其他文件的同包或者父包。
  2. 在类的上方添加注解 @SpringBootApplication
  3. Spring Boot 项目自动扫描 启动类所在的包以及 启动类 所在包的子包。

运行启动类:

接下来我们运行这个启动类就可以了,

springboot项目经历简历 springboot项目简历描述_配置文件_04


当控制台中出现我们启动类的全限定类名的时候,项目就启动成功了。

springboot项目经历简历 springboot项目简历描述_springboot项目经历简历_05


我们直接在浏览器里面访问http://localhost:8080/show,就可以看到返回的值“hello”了。

springboot项目经历简历 springboot项目简历描述_java_06

三、Spring配置文件

src/main/resources/创建配置文件。SpringBoot项目为我们设置了两种配置的方式:

  • 属性文件
    第一种方式是属性文件,application.properties
    配置的方式是key=value
    比如配置端口号:server.port=8086
  • springboot项目经历简历 springboot项目简历描述_java_07

  • 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的配置方式。层次感明显,而且配置写的少。

springboot项目经历简历 springboot项目简历描述_spring boot_08

以后的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。重启项目访问即可。

springboot项目经历简历 springboot项目简历描述_spring boot_09

在访问静态资源的时候,一定不要把static名字加到访问路径下,static只是标识作用。

关于静态资源,我们举个例子:

新建一个static文件夹,在下面创建一个image文件夹,放入一张图片:

springboot项目经历简历 springboot项目简历描述_配置文件_10


我们访问http://localhost:8086/image/1.jpg

springboot项目经历简历 springboot项目简历描述_java_11


关于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对其他框架、技术的整合了。

springboot项目经历简历 springboot项目简历描述_配置文件_12