IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> 【SpringBoot】体系描述 -> 正文阅读

[Java知识库]【SpringBoot】体系描述

前言

描述

SpringBoot诞生的目的就是用来简化Spring应用开发过程,它使用了特定的方式来进行配置,从而使得开发人员不在需要定义一系列样板化的配置文件,从而专注于核心业务开发。

基本原理

SpringBoot提供了开箱即用的设置,这样你就可以有条不紊地开始。多数SpringBoot应用需要很少的Spring配置

概述

主要特性

最重要的四个核心特性:

自动配置:SpringBoot针对很多Spring应用程序常见的功能自动提供相关配置

依赖关系:你只需告诉SpringBoot所需的功能类型,SpringBoot将所需的库添加到构建库中。

命令行界面:这是SpringBoot的可选特性,可让你编写代码并完成应用程序而无需构建传统项目。

Autuator:让您能够监控运行中的SpringBoot应用程序

SpringBoot创建流程:

创建Maven项目

添加依赖

编写代码

运行程序

SpringBoot基础?

SpringBoot启动类与注解@SpringBootApplication

@SpringBootApplication 是一个三合一的注解

@SpringBootConfiguration? :该注解功能和@Configuration注解类似,用于修饰一个配置类,以启动基于Java的配置。
@EnableAutoConfiguration? :注解用于启用自动配置,以省去繁琐的手动配置。
@ComponentScan :该注解用于启用组件扫描,这样你创建的控制器和其他组件将自动被发现并注册为Spring应用程序上下文中的bean。

SpringBoot自动配置原理?

SpringBoot在运行项目启动类时会加载classpath上各个库中META-INF目录下的spring.factories文件,将这些配置文件中的配置载入Spring容器,实现自动配置。

使用SpringBoot开发Web应用程序?

使用SpringBoot创建Web应用程序

IDEA

1、创建一个新项目
2、选择spring initalizr , 可以看到默认就是去官网的快速构建工具那里实现
3、填写项目信息
4、选择初始化的组件(初学勾选 Web 即可)
5、填写项目路径
6、等待项目构建成功

Thymeleaf语法(这里简单介绍)?

变量表达式 ${...}

用于显示某个变量的值,可以是普通表达式的计算结果,或者是服务端返回的某个属性的值。

选择变量表达式 *{...}

可以用于在内层引用外层对象,从而简化表达式书写

消息表达式 #{...}

可用于读取和显示文本文件中的内容,如属性文件,主要用于显示读取的文本消息或实现国际化。

URL链接表达式 @{...}

片段表达式 ~{...}

用于定义模板内容,并在模板页面中引用模板页或模板片段,相当于定义模板内容,然后可以将该片段在任何模板页面的任何地方使用。

在SpringBoot 程序中处理JSON数据

常用的JSON处理器

Jackson:SpringBoot默认的

Gson

Fastjson:阿里开发的(越来越多的阿里开发的,后面会接触到更多阿里开发的)

Json-lib

在SpringBoot程序中处理JSON数据

一般在src/main/resources/static/errot/404.html(等等路径)

使用SpringBoot构建ReatAPI?

REST(Reqresentational State Transfer-表述性状态转移)是一种设计API的模式,一种软件架构风格。构建REST API 时最常用的数据格式是JSON,源于JSON能直接被JavaScript读取,所欲JSON格式编写的REST风格的API具有简单、易读、易用的特点。

最常用

GET:获取资源

POST:添加一个新资源

PUT:添加或者修改一个资源,存在就修改,否则添加,这里的修改是完整修改

DELETE:删除资源

创建REST API 需要使用SpringMVC提供的一些注解,包括@PostMapping、@DeleteMapping、@PutMapping、@GetMapping分别对应增删改查

SpringBoot的数据访问?

自带默认的数据源就不说课,一般是Druid(阿里的)

pom.xml

<!-- SpringBoot的依赖配置-->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>2.5.14</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            
            <!-- 阿里数据库连接池 -->
            <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>druid-spring-boot-starter</artifactId>
                <version>${druid.version}</version>
            </dependency>
<druid.version>1.2.11</druid.version>

?application.yml

# 数据源配置
spring:
    datasource:
        type: com.alibaba.druid.pool.DruidDataSource
        driverClassName: com.mysql.cj.jdbc.Driver
        druid:
            # 主库数据源
            master:
                url: jdbc:mysql://localhost:3306/数据库名?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
                username: root
                password: root
            # 从库数据源
            slave:
                # 从数据源开关/默认关闭
                enabled: false
                url: 
                username: 
                password: 
            # 初始连接数
            initialSize: 5
            # 最小连接池数量
            minIdle: 10
            # 最大连接池数量
            maxActive: 20
            # 配置获取连接等待超时的时间
            maxWait: 60000
            # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
            timeBetweenEvictionRunsMillis: 60000
            # 配置一个连接在池中最小生存的时间,单位是毫秒
            minEvictableIdleTimeMillis: 300000
            # 配置一个连接在池中最大生存的时间,单位是毫秒
            maxEvictableIdleTimeMillis: 900000
            # 配置检测连接是否有效
            validationQuery: SELECT 1 FROM DUAL
            testWhileIdle: true
            testOnBorrow: false
            testOnReturn: false
            webStatFilter: 
                enabled: true
            statViewServlet:
                enabled: true
                # 设置白名单,不填则允许所有访问
                allow:
                url-pattern: /druid/*
                # 控制台管理用户名和密码
                login-username: ruoyi
                login-password: 123456
            filter:
                stat:
                    enabled: true
                    # 慢SQL记录
                    log-slow-sql: true
                    slow-sql-millis: 1000
                    merge-sql: true
                wall:
                    config:
                        multi-statement-allow: true

SpringDataJPA

JPA是一种规范,一种Java持久化解决方案,是Java EE标准之一。其中Hibernate框架就是JPA规范最流行和最强大的实现之一

SpringBoot程序中集成MyBatis?

1.创建数据库和表

2.创建SpringBoot应用程序

3.添加MyBatis启动依赖和其他必要依赖

4.配置数据源

5.创建实体类

6.创建或生成Mapper接口和Mapper映射文件

7.开启Mapper组件的包扫描

8.创建Controller、Service等组件

9.部署和运行程序

这里提到一个常用的分页插件PageHelper,两步

添加PageHelper依赖

<!-- pagehelper 分页插件 -->
<dependency>
    <groupId>com.github.pagehelper</groupId>
    <artifactId>pagehelper-spring-boot-starter</artifactId>
    <version>${pagehelper.boot.version}</version>
</dependency>

使用PageHelper

SpringBoot程序的消息通信?

JMS消息传递模型

点对点模型(Point-to-Point,P2P)

发布/订阅模型(Publish/Subscribe,Pub/Sub)

1.点对点消息传递域的特点如下:

   a.每个消息只能有一个消费者

   b.消息的生产者和消费者之间没有时间上的相关性。无论消费者在生产者发送消息的时候是否处于运行状态,它都可以提取消息。

? ? ??

  2.发布/订阅消息传递域的特点如下:

    a.每个消息可以有多个消费者

    b.生产者和消费者之间有时间上的相关性。订阅一个主题的消费者只能消费自它订阅之后发布的消息。JMS规范允许客户创建持久订阅,这在一定程度上放松了时间上的相关性要求。持久订阅允许消费者消费它在未处于激活状态时发送的消息。

    

  3.在点对点消息传递域中,目的地被称为队列(queue);在发布/订阅消息传递域中,目的地被称为主题(topic)

SpringBoot程序中集成ActiveMQ?

SpringBoot实现点对点模型消息传送

执行步骤:

1.启动ActiveMQ服务

2.创建客户端程序

3.添加ActiveMQ启动依赖

4.配置ActiveMQ属性

5.编写消息发送程序

6.编写消息接收程序

7.测试发送和接收消息

SpringBoot实现发布/订阅模型消息传递?

和点对点类似,只需改一个配置

jms:
  pub-sub-domain: true

SpringBoot测试?

软件测试概述

软件测试方法

从是否关心软件内部结构和具体实现的角度划分

1.黑盒测试

2.白盒测试

3.灰盒测试

从是否执行代码角度划分

1.静态测试

2.动态测试

从软件开发的过程按阶段划分

1.单元测试

2.集成测试

3.系统测试

4.验收测试

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2022-09-15 01:51:23  更:2022-09-15 01:51:32 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 13:24:32-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码