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 {@Beanpublic 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;}
}

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/433301.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【第十五章:Sentosa_DSML社区版-机器学习之关联规则】

目录 15.1 频繁模式增长 15.2 PrefixSpan 【第十五章&#xff1a;Sentosa_DSML社区版-机器学习之关联规则】 机器学习关联规则是一种用于发现数据集中项之间有趣关系的方法。它基于统计和概率理论&#xff0c;通过分析大量数据来识别项之间的频繁共现模式。 15.1 频繁模式增…

数据在内存中的存储以及练习(一篇带你清晰搞懂)

一&#xff1a;数据在内存中的存储 首先&#xff0c;如果要了解数据在内存中的存储&#xff0c;我们首先要了解一个概念 大小端是什么&#xff1f; 1&#xff1a;什么是大小端&#xff1f; 其实超过⼀个字节的数据在内存中存储的时候&#xff0c;就有存储顺序的问题&#xff0c…

QT-Qt概述安装Qt创建项目常用基础部件信号和槽

1. Qt概述 Qt 是一个跨平台的 C图形用户界面应用程序的开发框架。 图形用户界面&#xff1a; GUI &#xff08;Graphical User Interface&#xff09; 框架&#xff1a;别人写好的一堆类&#xff08;工具包&#xff09;和开发规则。使用框架开发&#xff0c;能够大大降低程序的…

新建flask项目,配置入口文件,启动项目

pycharm新建flask项目时&#xff0c;会提供一个创建flask项目的导向&#xff0c;自动设置虚拟环境&#xff0c;并且安装flask及其依赖而vscode新建flask项目时&#xff0c;需要手动设置虚拟环境并安装flask&#xff0c;需要在终端使用pip install flask命令来安装flask及其依赖…

代码随想录 | Day25 | 二叉树:从中序与后序遍历构造二叉树最大二叉树

代码随想录 | Day25 | 二叉树&#xff1a;从中序与后序遍历构造二叉树&&最大二叉树 主要学习内容&#xff1a; 用中序和后序来构建二叉树 106.从中序与后序遍历构造二叉树 106. 从中序与后序遍历序列构造二叉树 - 力扣&#xff08;LeetCode&#xff09; 解法思路&a…

828华为云征文|华为云Flexus云服务器X实例之openEuler系统下玩转iSulad容器技术

828华为云征文&#xff5c;华为云Flexus云服务器X实例部署Xnote笔记应用 前言一、Flexus云服务器X实例介绍1.1 Flexus云服务器X实例简介1.2 Flexus云服务器X实例特点1.3 Flexus云服务器X实例使用场景 二、iSulad介绍2.1 iSulad简介2.2 iSulad特点 三、本次实践介绍3.1 本次实践…

亚信安全天穹5分钟勒索体检 免费试用今起上线

对于勒索攻击的认知 你是否还停留在“2.0时代”&#xff1f; 勒索攻击无疑是企业面临的最大威胁&#xff0c;2024年上半年&#xff0c;勒索组织数量同步增长超过50%&#xff0c;勒索攻击数量也持续攀升&#xff0c;平均勒索赎金突破520万美元。 当前&#xff0c;勒索攻击治理…

HTML5实现唐朝服饰网站模板源码

文章目录 1.设计来源1.1 网站首页-界面效果1.2 唐装演变-界面效果1.3 唐装配色-界面效果1.4 唐装花纹-界面效果1.5 唐装文化-界面效果 2.效果和源码2.1 动态效果2.2 源代码 源码下载万套模板&#xff0c;程序开发&#xff0c;在线开发&#xff0c;在线沟通 作者&#xff1a;xcL…

华为HarmonyOS灵活高效的消息推送服务(Push Kit) -- 7 推送卡片刷新消息

场景介绍 如今衣食住行娱乐影音应用占据了大多数人的手机&#xff0c;一部手机可以满足日常大多需求&#xff0c;但对需要经常查看或进行简单操作的应用来说&#xff0c;总需要用户点开应用体验较繁琐。针对此种场景&#xff0c;HarmonyOS提供了Form Kit&#xff08;卡片开发服…

如何将泰语入门提高到精通呢?

要精通泰语&#xff0c;需要从基础的字母和发音开始学习&#xff0c;并通过积累词汇、频繁练习口语、沉浸在语言环境中来不断提高。参加在线课程或找专业教师进行系统性学习也很有帮助。此外&#xff0c;利用各种教材和在线资源&#xff0c;以及保持持续和一致的学习态度&#…

Spring Boot 学习之路 -- 处理 HTTP 请求

前言 最近因为业务需要&#xff0c;被拉去研究后端的项目&#xff0c;代码框架基于 Spring Boot&#xff0c;对我来说完全小白&#xff0c;需要重新学习研究…出于个人习惯&#xff0c;会以 Blog 文章的方式做一些记录&#xff0c;文章内容基本来源于「 Spring Boot 从入门到精…

电脑上数据丢了怎么找回来 Win系统误删文件如何恢复

无论是在工作中&#xff0c;还是生活中&#xff0c;电脑都是不可缺少的重要工具&#xff0c;尤其是在工作中&#xff0c;电脑不仅可以高效的完成工作&#xff0c;还可以存储工作中的重要资料。不过在使用电脑的时候&#xff0c;也会遇到数据丢失的情况。针对这一问题&#xff0…

Spring Boot 学习之路 -- 基础认知

前言 最近因为业务需要&#xff0c;被拉去研究后端的项目&#xff0c;代码框架基于 Spring Boot&#xff0c;对我来说完全小白&#xff0c;需要重新学习研究…出于个人习惯&#xff0c;会以 Blog 文章的方式做一些记录&#xff0c;文章内容基本来源于「 Spring Boot 从入门到精…

2024最新gewechat开发微信机器人教程说明

简介&#xff1a;本文将指导你如何搭建一个微信机器人&#xff0c;通过接入gewe框架实现智能回复与聊天功能。我们将从基础设置开始&#xff0c;逐步讲解如何配置机器人&#xff0c;并通过实例展示其实际应用。 随着人工智能技术的不断发展&#xff0c;智能机器人已经成为我们…

Hadoop 常用生态组件

Hadoop核心组件 安装 Hadoop 时&#xff0c;通常会自动包含以下几个关键核心组件&#xff0c;特别是如果使用了完整的 Hadoop 发行版&#xff08;如 Apache Hadoop、Cloudera 或 Hortonworks 等&#xff09;。这些组件构成了 Hadoop 的核心&#xff1a; 1. HDFS&#xff08;H…

基于python+django+vue的旅游景点数据分析系统

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码 精品专栏&#xff1a;Java精选实战项目…

高密度EEG人脑成像:技术与应用

摘要 EEG是一种非侵入性的人脑神经活动测量技术。随着数字技术的进步&#xff0c;EEG分析已从定性分析幅值和频率调制发展到全面分析记录信号的复杂时空特征。EEG能够在亚秒级的时间范围内测量神经过程&#xff0c;但其空间分辨率较低&#xff0c;这使得难以准确可靠地定位EEG…

批量发送邮件:性能优化与错误处理深度解析

目录 一、批量发送邮件的基础概述 1.1 批量发送邮件的定义 1.2 邮件发送流程 二、性能优化策略 2.1 发送速率控制 2.2 队列管理 2.3 动态IP池管理 2.4 智能调度 三、错误处理机制 3.1 暂时性发送错误处理 3.2 永久性发送错误处理 3.3 邮件反馈收集与分析 四、案例…

搜索引擎onesearch3实现解释和升级到Elasticsearch v8系列(五)-聚合

聚合 聚合基于Query结果的统计&#xff0c;执行过程是搜索的一部分&#xff0c;Onesearch支持0代码构建聚合&#xff0c;聚合目前完全在引擎层 0代码聚合 上图是聚合的配置&#xff0c;包括2个pdm文档聚合统计 termsOfExt term桶聚合&#xff0c;统计ext&#xff0c;如&…

18923 二叉树的直径

### 思路 1. **构建二叉树**&#xff1a; - 使用输入数据构建二叉树。 - 使用一个数组或哈希表来存储每个节点的子节点。 2. **计算直径**&#xff1a; - 使用深度优先搜索&#xff08;DFS&#xff09;计算每个节点的深度。 - 计算每个节点的左子树和右子树的深度…