Spring Boot入门

一、Spring Boot介绍

1.1、什么是Spring Boot

    Spring Boot是由Pivotal团队提供的全新框架,其中“Boot”的意思就是“引导”。Spring Boot是Spring+Spring MVC,不是对Spring的增强,而是可以快速开发Spring的应用框架。

1.2、Spring Boot的特点

  • 内嵌tomcat,无需部署war文件
  • 简化Maven配置,无需引入过多pom依赖,提供一系列启动器简化Maven配置
  • 零xml配置,Spring Boot提供了大量自动配置类 

二、构建Spring Boot项目

2.1、下载SpringBoot项目

1、访问http://start.spring.io/

2、选择构建工具Maven Project、Spring Boot版本以及一些工程基本信息,点击“GENERETE”下载项目压缩包

参考下图所示:

 2.2、通过Maven构建SpringBoot项目

首先建一个空项目,在项目下创建新模块

配置pom,继承SpringBoot父工程

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.5.4</version>
        <relativePath/>
    </parent>

添加启动器

<!--添加Springboot的web启动器-->   
 <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

创建启动类

   创建启动类,用于启动SpringBoot项目

package com.by;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication//扫描类下所有的包

    public static void main(String[] args) {
        SpringApplication.run(App.class,args);
    }

}

Controller

package com.by.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import java.util.HashMap;
import java.util.Map;

@Controller
public class HelloController {

    @RequestMapping("/hello")
    @ResponseBody
    public Map hello(){
        HashMap<String, Object> map = new HashMap<>();
        map.put("msg","hello");
        return map;
    }
}

2.3、Spring Boot的Starter

2.3.1、使用Spring框架的问题

  1. 依赖导入问题:每个项目都需要来单独维护自己所依赖的jar包,手动导入依赖容易出错,且无法统一集中管理。

  2. 配置繁琐:在引入依赖之后需要做繁杂的配置,例如web.xml配置数据库连接池配置、事务配置等等。这些配置重复且繁杂,在不同的项目中需要进行多次重复开发,这在很大程度上降低了开发效率。

       而在SpringBoot的starter(启动器)它为我们提供了一个强大的功能可以解决上述问题。

2.3.2、Starter是什么

    Spring Boot通过将我们常用的功能场景抽取出来,做成一系列的启动器,我们只需要在项目中引入这些starter,相关的所有依赖就会全部被导入进来,同时可以减去繁杂的配置,例如:

  • spring-boot-starter-web:支持全栈式web开发,包括tomcat和SpringMVC等jar包
  • spring-boot-starter-jpa:支持spring以jpa方式操作数据库的jar包的集合
  • spring-boot-starter-redis:支持redis键值存储的数据库操作 

在导入的starter之后,SpringBoot会帮我们完成相关依赖的自动导入相关环境的自动配置。 

2.3.3、Starter的命名规范 

  • 官方启动器命名:

    • 前缀:spring-boot-starter-

    • 规范:spring-boot-starter-模块名

    • 举例:spring-boot-starter-web、spring-boot-starter-jdbc

  • 第三方启动器命名:

    • 后缀:-spring-boot-starter

    • 规范:模块名-spring-boot-starter

    • 举例:mybatis-spring-boot-starter

2.4、启动类存放位置

    启动类存放的位置:

  • controller 同一个包下

  • controller 的上一级包中

三、Spring Boot的全局配置文件

     SpringBoot项目使用一个全局的配置文件application.properties或者是application.yml,在resources目录下或者类路径下的/config下,一般我们放到resources下

3.1、properties配置文件

3.1.1、修改tomcat的端口为1234

server.port=1234

3.1.2、修改访问项目的名字

server.servlet.context-path=/springboot

3.2、yml配置文件

yml是 Spring Boot 中新增的一种配置文件格式。特点:具备天然的树状结构.

3.2.1、yml方式配置springboot

server:
  port: 1234
  servlet:
    context-path: /springboot_helloWorld

 3.3、yml与properties的区别

  • 配置文件的拓展名有变化
  • 配置文件中的语法有变化:

       1、在yml中使用“:”进行分割

       2、在yml中缩进时不允许使用tab键,缩进的空格数不重要,只要是左对齐的一列数据,都是同一个层级

       3、 每个key的冒号后面一定要加一个空格

四、Spring Boot项目的两种发布方式

4.1、通过jar包发布

在pom.xml中添加一个Spring Boot的构建插件

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <!--自动检测项目中的 main 函数-->
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

在maven视图中,选择“package”,在target中会产生xxx.jar包

然后在cmd终端发布项目

java -jar xxx.jar

4.2、通过war包发布

 在pom中添加war打包

<packaging>war</packaging>

设置tomcat启动器依赖范围

 <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-tomcat</artifactId>
      <!--tomcat启动器依赖范围-->
    <scope>provided</scope>
 </dependency>

修改启动类

package com.by;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
import org.springframework.web.SpringServletContainerInitializer;

@SpringBootApplication//扫描类下所有的包
public class App{
    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
        return builder.sources(App.class);
    }

    public static void main(String[] args) {
        SpringApplication.run(App.class,args);
    }

}

  • 17
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值