spring boot简介

spring boot简介

你是否为搭建ssm环境时添加过多依赖而烦恼?
你是否为过多的配置文件而晕头转向?

spring boot框架抛弃了繁琐的xml配置过程,采用大量的默认配置简化我们的开发过程。

使用Spring boot可以非常容易和快速地创建基于Spring 框架的应用程序,它让编码变简单了,配置变简单了,部署变简单了,监控变简单了。

说的直白一些使用spring boot之后就不用像以前使用ssm的时候添加那么多配置文件了,spring boot除了支持ssm之外,还支持非常多的第三方技术。spring boot就像是一个百宝箱,你要用那些技术,直接告诉他就行了。在spring boot中写的代码跟以前一样,所以在学习的时候非常容易上手。

这里我们使用spring boot2.x的版本,要求版本号:

  • jdk8+
  • maven3+

spring boot

第一个spring boot项目

方式一:通过spring官网进行创建,创建好之后下载导入到本地开发工具中即可

方式二:在idea中通过插件(spring Initializr)创建一个spring boot项目,创建好之后会生成一些目录和类。

创建一个模块

设置group和artifact,这里选择jar包

勾选web,这里创建一个web项目,使用spring mvc

spring boot项目文件简介

Application类

  • 里面的@SpringBootApplication注解是springboot的核心注解,主要作用是开启spring自动配置。使用这个注解相当于加上了下面三个注解:
    • @Configuration 允许将其他@bean注解标识的类加入到spring容器中,相当于spring配置文件中的beans标签。
    • @EnableAutoConfiguration 启动自动配置,spring boot会根据我们添加的依赖来启用一些配置
    • @ComponentScan 会自动扫描当前包和子包下的标有@Component,@Service,@Repository,@Controller的类。相当于以前spring配置文件中的context:component-scan
  • main方法中的SpringApplication.run在启动的时候会启动springboot程序,启动spring容器,启动内嵌的tomcat容器。
  • 不要创建一个比Application类包级别高的类,需要创建子包,因为spring boot会自动扫描application类的子包或者是平级的类。如果是高与application的话就无法扫描了。

resources目录

  • application.properties 是spring boot配置文件
  • static存放静态资源
  • templatesspring boot动态的数据不建议使用jsp,而是使用thymeleaf模板语言,跟velocity和freemarker类似,是一个模板引擎。是独立于spring boot的,并不是spring boot的一部分。

mvnw 是maven wrapper,maven中的插件具有滞后性,即有的插件只针对某个版本有效,这里在用的时候,可能会安装多个版本的maven,为了解决这个问题,maven wrapper会自动的切换,maven wrapper是第三方提供的,所以要把他的jar包导入。

.gitignore

git忽略提交规则

mvnw

是linux的脚本文件,mvnw 是maven wrapper,maven中的插件具有滞后性,即有的插件只针对某个版本有效,这里在用的时候,可能会安装多个版本的maven,为了解决这个问题,maven wrapper会自动的切换。

mvnw.cmd

是windows的脚本文件,作用同上

pom文件解析

依赖没有版本号,是从父工程中选择继承的(应该是父工程的父工程,爷爷辈)。这个依赖叫做起步依赖,有的地方也叫做启动器。这些第三方的依赖是写在了dependencymanagement中,所以我们的项目如果要使用的话,还需要一些依赖,只不过版本号是可以省略的。如果不想使用spring boot的默认版本的话,自己手动添加版本号即可。

起步依赖的作用:spring boot把一些功能场景抽取出来,做成了起步依赖,开发者在使用某个场景的时候,只需要将这些起步依赖加入即可,不用像以前那样添加很多依赖jar文件了。

编写spring mvc的controller

在Application类的下面再创建一个controller包,创建一个Controller:

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
public class FirstController {

    @RequestMapping("/boot/first")
    @ResponseBody
    public String first(){
        return "first";
    }
}

之后运行Application类,这样Spring Boot会启动内嵌的tomcat,之后我们从浏览器中访问该Controller即可:localhost:8080/boot/first

总结

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配置文件,采用注解配置。