SpringBoot的概述与搭建

目录

一.SpringBoot的概述

二.SpringBoot 特点

三.SpringBoot 的核心功能

3.1起步依赖

3.2自动配置

四.SpringBoot 开发环境构建

五.SpringBoot 配置文件

六.SpringBoot数据访问管理

七.springboot注解

八.springboot集成mybatis

九.springboot全局异常捕获与处理


一.SpringBoot的概述

        Spring Boot 是由 Pivotal 团队提供的在 spring 框架基础之上开发的框架,其设计目的是用来简化应用的初始搭建以及开发过程
        SpirngBoot 本身并 不提供 Spring 框架 的核心特性以及扩展功能,只是用于快速、敏捷地开发新一代基于 Spring 框架的应用程序。也就是说,它并不是用来替代 Spring 的解决方案,而是和 Spring 框架紧密结合用于提升 Spring 开发者体验的工具。
        Spring Boot 以 约定大于配置(程序界的规定大于配置文件) 的核心思想,从而使开发人员不再需要定义样板化的配置。它集成了大量常用的第三方库配置(例如 Redis,Jpa RabbitMQ,Quartz 等等),SpringBoot 应用中这些第三方库几乎可以零配置的开箱即用,通过这种方式,SpringBoot 致力于在蓬勃发展的快速应用开发领域成为领导者。

二.SpringBoot 特点

1.创建独立的 spring 应用程序
2.直接内嵌 tomcat、jetty 和 undertow
3.提供了固定化的“starter”配置,以简化构建配置
4.尽可能的自动配置 spring 和第三方库
5.提供产品级的功能,如:安全指标、运行状况监测和外部化配置等
6.绝对不会生成代码,并且不需要 XML 配置

三.SpringBoot 的核心功能

3.1起步依赖

        起步依赖就是将具备某种功能的坐标打包到一起,并提供一些默认的功能。

3.2自动配置

        SpringBoot 的自动配置是一个 运行 时(更准确地说,是应用程序启动时)的过程,考虑了众多因素,才决定 Spring 配置应该用哪个,不该用哪个。该过程是 Spring 自动完成 的。

四.SpringBoot 开发环境构建

首先需要创建一个普通的 maven 项目
        在 pom.xml 文件中添加以下配置
<!-- 依赖的父级工程 -->
< parent >
< groupId >org.springframework.boot</ groupId >
< artifactId >spring-boot-starter-parent</ artifactId >
< version >2.6.6</ version >
< relativePath />
</ parent >

         根据自己的jdk版本

<!-- 指定 jdk 版本 -->
< properties >
< java.version >1.8</ java.version >
</ properties >

<!-- 添加基本的 springweb 依赖 -->
< dependencies >
< dependency >
< groupId >org.springframework.boot</ groupId >
< artifactId >spring-boot-starter-web</ artifactId >
</ dependency >
</ dependencies >
<!-- 打包插件 -->
< build >
< plugins >
< plugin >
< groupId >org.springframework.boot</ groupId >
< artifactId >spring-boot-maven-plugin</ artifactId >
< version >2.6.6</ version >
</ plugin >
</ plugins >
</ build > 
        创建基本包目录,在包下创建一个启动类,如下所示:
创建基本包目录,在包下创建一个启动类,如下所示:
@SpringBootApplication
public class NewsApplication {
public static void main(String[] args) {
SpringApplication.run(NewsApplication.class);
    }
}

         图片如下:

        SpringBoot 集成 web 组件后, 内置了 tomcat 服务器 ,一个 springboot 应用相当于一个独立的服务,可以使用启动类中的 main 方法启动 springboot 程序.就会生成下面的springboot的logo,

        在线生成启动 logo:https://www.bootschool.net/ascii-art.

        下载存放在 resources 目录下即可. 注意文件名必须为banner.txt

五.SpringBoot 配置文件

        SpringBoot 使用一个全局的配置文件( 配置文件名是固定的 , 必须为 application ),用来存储项目中需要用到的各种配置参数. 配置文件格式有两种,一种为 properties 格式,一种 yaml 格式。
application.properties 属性 文件 格式,内容为键值对: server.port=8080
properties 格式比较简单,没有什么难度,在此我们以第二种 yaml 格式为例.
application.yml
yml 是 YAML(YAML Ain’t Markup Language)语言的文件,以数据为中心.
yml 配置示例:
server:
port: 8080
yaml 基本语法:
语法结构:key: 空格 value;
以此来表示一对键值对。 注意:(冒号后的空格不能省略,否则会出错);
以空格的缩进来控制 层级关系 只要是左边对齐的一列数据都是同一个层级的
字面量直接写在后面就可以,字符串默认不用加上双引号或者单引号;
# 作为注释符号.
案例:
mybatis:
  type-aliases-package: com.hkt.news.model
  mapper-locations: classpath:mappers/*Mapper.xml
  configuration:
    map-underscore-to-camel-case: true
    cache-enabled: true
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

使用@Value 注解标签将配置文件中的内容映射到类中的属性.

@Value("${user.name}")

六.SpringBoot数据访问管理


数据源配置:

首先,为了连接数据库需要引入 jdbc 支持,在 pom.xml 中引入如下配置:

添加依赖:

<dependency>

          <groupId>org.springframework.boot</groupId>

          <artifactId>spring-boot-starter-jdbc</artifactId>

</dependency>

 使用mysql数据库还需要添加mysql依赖:

<!--mysql-->    
    <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.16</version>
    </dependency>

 添加数据源之后,为了和数据库连接,我们还需要在 application.yml 中去配置信息:

spring:

  datasource:

     url: jdbc:mysql://127.0.0.1:3306/数据库名?serverTimezone=Asia/Shanghai

     username: 用户名

     password: 用户密码

     driver-class-name: com.mysql.cj.jdbc.Driver

 springboot整合阿里数据源

首先需要导入阿里数据源的 .jar 包:

<!-- 阿里数据源 -->
<dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>druid</artifactId>
        <version>1.1.10</version>
</dependency>

 在 application.yml 中去配置信息:

 //他们和url,username,password在一个层级中
 type: com.alibaba.druid.pool.DruidDataSource
 initialSize: 5 #初始化时建立物理连接的个数
 maxActive: 20 #最大连接池数量

七.springboot注解


springboot 实现自动装配的核心仍然是使用注解标签 

@SpringBootApplication 是 springboot 核心注解,使用在启动类前。

其中包含 @SpringBootConfiguration,@EnableAutoConfiguration, @ComponentScan.

@Configuration 一般使用在拦截器的前面。

 

加入@Configuration 注解,表明这就是一个配置类。有一个 myBean()的方法并用@Bean 进行注释,返回一个 MyBean()的实例,表明这个方法是需要被Spring 进行管理的 bean。@Bean 如果不指定名称的话,默认使用 myBean 名称,也就是小写的名称。

@Bean

相当于 XML 中的<bean></bean>,放在方法的上面,而不是类,意思是产生一个 bean,并交给 spring 管理。eg:(类似于之前写过的跨域问题)

package com.hkt.news.config;


import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
import org.springframework.web.filter.CorsFilter;
import java.util.Collections;
@Configuration
public class CorsConfig {

    @Bean
    public CorsFilter corsFilter() {
        CorsConfiguration corsConfiguration = new CorsConfiguration();
        //1,允许任何来源
        corsConfiguration.setAllowedOriginPatterns(Collections.singletonList("*"));
        //2,允许任何请求头
        corsConfiguration.addAllowedHeader(CorsConfiguration.ALL);
        //3,允许任何方法
        corsConfiguration.addAllowedMethod(CorsConfiguration.ALL);
        //4,允许凭证
        corsConfiguration.setAllowCredentials(true);

        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
        source.registerCorsConfiguration("/**", corsConfiguration);
        return new CorsFilter(source);
    }
}

八.springboot集成mybatis


首先在 pom.xml 文件中导入依赖的 jar 包:

<dependency>

       <groupId>org.mybatis.spring.boot</groupId>

       <artifactId>mybatis-spring-boot-starter</artifactId>

       <version>2.1.4</version>

</dependency>

 下面在 application.yml 中配置信息:

mybatis:
  type-aliases-package: com.hkt.news.model  //模型类地址
  mapper-locations: classpath:mappers/*Mapper.xml 
  configuration:
    map-underscore-to-camel-case: true
    cache-enabled: true
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

  最后还需要在启动类前加上 @MapperScan("接口所在的包地址") 注解。eg:

 

九.springboot全局异常捕获与处理


      Springboot 对于异常的处理也做了不错的支持 ,它提供了一个 @RestControllerAdvice 注解以及 @ExceptionHandler 注解,前者是用来开启全局的异常捕获,后者则是说明捕获哪些异常,对那些异常进行处理。eg:

package com.hkt.news.util;

import com.hkt.news.model.Result;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;

@RestControllerAdvice
public class GlobalExceptionHandler {
    /**
     * 全局异常处理
     */
    @ExceptionHandler(Exception.class)
    public Result globalException(Exception e) {
        Result result = new Result(500,"系统忙"+e.getMessage(),null);
        e.printStackTrace();
        return result;
    }
}

若出现异常,则打印错误信息。

兄弟姐妹们,记得一键三连哦

Spring Boot是一个开源的、基于Spring框架的快速应用开发框架。它利用了Spring框架的优秀特性,使得开发者可以快速构建出一个独立的Spring应用程序,并且可以打包成jar包或者war包运行。Spring Boot还提供了一些常用的功能模块,例如:Web应用程序开发、数据访问、安全、缓存等等,这些模块可以通过配置文件或者注解的方式轻松集成到应用程序中。 Spring Boot的主要优点包括: 1. 快速搭建应用程序:Spring Boot提供了一些默认配置,可以快速搭建一个独立的应用程序。 2. 独立运行:Spring Boot应用程序可以打包成jar包或者war包,可以独立运行,不需要部署在Web容器中。 3. 配置简单:Spring Boot提供了一些默认配置,可以减少一些繁琐的配置工作,同时也支持通过配置文件或者注解的方式进行配置。 4. 易于集成:Spring Boot提供了一些常用的功能模块,例如Web应用程序开发、数据访问、安全、缓存等等,这些模块可以通过配置文件或者注解的方式轻松集成到应用程序中。 5. 易于测试:Spring Boot应用程序可以独立运行,可以减少对外部资源的依赖,可以方便地进行单元测试和集成测试。 Spring Boot的缺点: 1. 自动配置可能会引起歧义:Spring Boot的自动配置可能会引起一些歧义,需要开发者进行手动配置。 2. 学习成本高:Spring Boot的学习成本相对较高,需要掌握Spring框架的基础知识。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值