SpringBoot2-BASE-4

SpringBoot2 基础篇 4

转载:https://blog.csdn.net/u011863024/article/details/113667634

1. 错误处理-SpringBoot默认错误处理机制

官方文档:https://docs.spring.io/spring-boot/docs/2.4.2/reference/htmlsingle/#boot-features-error-handling

默认规则:

1. 默认情况下,Spring Boot提供/error处理所有错误的映射
2. 机器客户端,它将生成JSON响应,其中包含错误,HTTP状态和异常消息的详细信息。对于浏览器客户端,响应一个“ whitelabel”错误视图,以HTML格式呈现相同的数据

{
  "timestamp": "2020-11-22T05:53:28.416+00:00",
  "status": 404,
  "error": "Not Found",
  "message": "No message available",
  "path": "/asadada"
}

3. 要对其进行自定义,添加View解析为error
4. 要完全替换默认行为,可以实现 ErrorController并注册该类型的Bean定义,或添加ErrorAttributes类型的组件以使用现有机制但替换其内容。
5. /templates/error/下的4xx,5xx页面会被自动解析

SpringBoot2-BASE-3

SpringBoot2 基础篇 3

转载:https://blog.csdn.net/u011863024/article/details/113667634

1. 视图解析-Thymeleaf初体验

Thymeleaf is a modern server-side Java template engine for both web and standalone environments.

Thymeleaf’s main goal is to bring elegant natural templates to your development workflow — HTML that can be correctly displayed in browsers and also work as static prototypes, allowing for stronger collaboration in development teams.

With modules for Spring Framework, a host of integrations with your favourite tools, and the ability to plug in your own functionality, Thymeleaf is ideal for modern-day HTML5 JVM web development — although there is much more it can do.

Thymeleaf官方文档:https://www.thymeleaf.org/documentation.html

SpringBoot2-BASE-2

SpringBoot2 基础篇 2

转载:https://blog.csdn.net/u011863024/article/details/113667634

1. 配置文件-yaml的用法

同以前的properties用法

YAML 是 “YAML Ain’t Markup Language”(YAML 不是一种标记语言)的递归缩写。在开发的这种语言时,YAML 的意思其实是:“Yet Another Markup Language”(仍是一种标记语言)。

非常适合用来做以数据为中心的配置文件。

基本语法

key: value;kv之间有空格
大小写敏感
使用缩进表示层级关系
缩进不允许使用tab,只允许空格
缩进的空格数不重要,只要相同层级的元素左对齐即可
'#'表示注释
字符串无需加引号,如果要加,单引号’’、双引号""表示字符串内容会被 转义、不转义

数据类型

字面量:单个的、不可再分的值。date、boolean、string、number、null

k: v

SpringBoot2-BASE-1

SpringBoot2 基础篇 1

转载:https://blog.csdn.net/u011863024/article/details/113667634

SpringBoot 简介

SpringBoot 文档

官方文档:
https://spring.io/projects/spring-boot
https://docs.spring.io/spring-boot/docs/2.3.7.RELEASE/reference/html/index.html

为什么用SpringBoot

Spring Boot makes it easy to create stand-alone, production-grade Spring based Applications that you can “just run”.link

能快速创建出生产级别的Spring应用。

SpringBoot优点

Create stand-alone Spring applications
创建独立Spring应用

Embed Tomcat, Jetty or Undertow directly (no need to deploy WAR files)
内嵌web服务器

Provide opinionated ‘starter’ dependencies to simplify your build configuration
自动starter依赖,简化构建配置

Automatically configure Spring and 3rd party libraries whenever possible
自动配置Spring以及第三方功能

Provide production-ready features such as metrics, health checks, and externalized configuration
提供生产级别的监控、健康检查及外部化配置

Absolutely no code generation and no requirement for XML configuration
无代码生成、无需编写XML

SpringBoot是整合Spring技术栈的一站式框架

SpringBoot是简化Spring技术栈的快速开发脚手架

SpringBoot缺点

人称版本帝,迭代快,需要时刻关注变化
封装太深,内部原理复杂,不容易精通

Spring-BASE-7

Spring 框架基础7

转载:https://blog.csdn.net/qq_35843514/article/details/114287046?spm=1001.2014.3001.5501

一、新的功能

Spring Framework 5.0是在Spring Framework 4.0之后将近四年内一次重大的升级。 在这个时间框架内,主要的发展之一就是Spring Boot项目的演变。

1、概述

Spring Framework 5.0的最大特点之一是响应式编程(Reactive Programming)。 响应式编程核心功能和对响应式endpoints的支持可通过Spring Framework 5.0中获得。 重要变动如下列表所示:

常规升级

对 JDK 9 运行时兼容性
在Spring Framework代码中使用JDK 8特性
响应式编程支持
函数式Web框架
Jigsaw的Java模块化
对Kotlin支持
舍弃的特性

Spring-BASE-6

Spring 框架基础6

转载:https://blog.csdn.net/qq_35843514/article/details/114287046?spm=1001.2014.3001.5501

一、什么是事务?

1、事务的定义

(1)事务是数据库操作最基本单元,逻辑上一组操作,要么都成功,如果有一个失败所有操作都失败。
(2)案例分析

如上述例子,Micah给Maruko转账,只有在转账成功的情况下,Micah的账户余额才会减少,Maruko的账户余额增加,不存在Micah账户的余额减少了,而Maruko的账户余额却不变。要么转账成功,2边余额都改变;要么转账失败,2边余额都保持不变。

2、事务的四大特性

原子性(Atomicity):事务是一个原子操作,由一系列动作组成。事务的原子性确保动作要么全部完成,要么完全不起作用。
一致性(Consistency):一旦事务完成(不管成功还是失败),系统必须确保它所建模的业务处于一致的状态,而不会是部分完成部分失败。在现实中的数据不应该被破坏。
隔离性(Isolation):可能有许多事务会同时处理相同的数据,因此每个事务都应该与其他事务隔离开来,防止数据损坏。
持久性(Durability):一旦事务完成,无论发生什么系统错误,它的结果都不应该受到影响,这样就能从任何系统崩溃中恢复过来。通常情况下,事务的结果被写到持久化存储器中。

Spring-BASE-5

Spring 框架基础5

转载:https://blog.csdn.net/qq_35843514/article/details/114287046?spm=1001.2014.3001.5501

一、Spring JDBC概述

1、什么是JDBC Template?

之前我们采用的是手动封装JdbcTemplate,其好处是通过(sql语句+参数)模板化了编程。而真正的JdbcTemplate类,是Spring框架为我们写好的。它是 Spring 框架中提供的一个对象,是对原始 Jdbc API 对象的简单封装。除了JdbcTemplate,Spring 框架还为我们提供了很多的操作模板类。

操作关系型数据的:JdbcTemplate和HibernateTemplate。
操作 nosql 数据库的:RedisTemplate。
操作消息队列的:JmsTemplate。

2、Spring JDBC 能做什么?

操作项目 Spring帮你做的 你需要做的
定义连接参数
打开连接
指定SQL语句
声明参数并提供参数值
准备并运行该语句
设置循环以遍历结果(如果有)
进行每次迭代的工作
处理任何异常
处理交易
关闭连接,语句和结果集

Spring-BASE-4

Spring 框架基础4

转载:https://blog.csdn.net/qq_35843514/article/details/114287046?spm=1001.2014.3001.5501

一、什么是AOP?

1、AOP

AOP(Aspect Oriented Programming),即面向切面编程,是OOP的补充,它也提供了模块化。在面向对象编程中,关键的单元是对象,AOP的关键单元是切面,或者说关注点(可以简单地理解为你程序中的独立模块)。一些切面可能有集中的代码,但是有些可能被分散或者混杂在一起,例如日志或者事务。这些分散的切面被称为横切关注点。一个横切关注点是一个可以影响到整个应用的关注点,而且应该被尽量地集中到代码的一个地方,例如事务管理、权限、日志、安全等。

AOP让你可以使用简单可插拔的配置,在实际逻辑执行之前、之后或周围动态添加横切关注点。这让代码在当下和将来都变得易于维护。如果你是使用XML来使用切面的话,要添加或删除关注点,你不用重新编译完整的源代码,而仅仅需要修改配置文件就可以了。

总而言之,AOP就是使用不修改源代码的方式,在主干功能里添加新的功能。

Spring-BASE-3

Spring 框架基础3

转载:https://blog.csdn.net/qq_35843514/article/details/114287046?spm=1001.2014.3001.5501

一、概念与定义

1、什么是Spring beans?

Bean: 在Spring中,构成应用程序主干并由Spring IoC容器管理的对象称为bean。Bean是由Spring IoC容器实例化,组装和以其他方式管理的对象。否则,bean仅仅是应用程序中许多对象之一。Bean及其之间的依赖关系反映在容器使用的配置元数据中。

Spring Beans是构成Spring应用核心的Java对象。这些对象由Spring IoC容器实例化、组装、管理。这些对象通过容器中配置的元数据创建,例如,使用XML文件中定义的创建。
在Spring中创建的beans都是单例的beans。在bean标签中有一个属性为”singleton”, 如果设为true,该bean是单例的,如果设为false,该bean是原型bean。Singleton属性默认设置为true。因此,spring框架中所有的bean都默认为单例bean。

|