博学谷三阶段面试题

Web网站的工作流程?

web网站工作流程:
①客户端向服务器发送请求。当用户在浏览器中输入 URL 或者点击链接时,浏览器会向服务器发送一个 HTTP 请求。
②服务器处理请求并返回响应。一旦收到请求,服务器会根据请求的内容和类型来进行相应的处理,并返回一个 HTTP 响应。通常情况下,响应主体中包含了 HTML、CSS、JavaScript、图像等资源的信息。
③浏览器解析响应并呈现页面。当浏览器接收到服务器返回的响应后,它会对响应进行解析,并渲染出对应的页面。这个过程包括对 HTML、CSS 和 JavaScript 的解析和执行,以及对图像等资源的下载和显示。
④页面与客户端进行交互。当页面加载完成后,用户可以与页面进行交互,例如填写表单、点击按钮等。此时,浏览器会根据用户的操作来调用 JavaScript 中的事件处理程序,并更新页面显示。

表单在网页中的作用是什么?表单项有哪些?如何定义一个表单?

表单:
在网页中主要负责数据采集功能,使用
标签定义表单

表单项(元素):
不同类型的 input 元素、下拉列表、文本域等

定义表单:
form:定义表单
action:规定当提交表单时向何处发送表单数据,URL
method :规定用于发送表单数据的方式
get:浏览器会将数据直接附在表单的 action URL 之后。大小有限制
post:浏览器会将数据放到http请求消息体中。大小无限制

CSS选择器分为哪三类?分别对每种类型选择器的使用方式进行举例?

分类:
1.元素选择器
元素名称{color: red;}
举例:
div{color: red;}

2.id选择器
#id属性值{color: red;}
举例:
#name{color: red;}
hello css2

3.类选择器
.class属性值{color: red;}
举例:
.cls{color: red;}
hello css3

其他类型转为数字、其他类型转为boolean的规则?

其他类型转为数字:
1.string将字符串字面值转为数字。如果字面值不是数字,则转为NaN。一般使用parseInt进行转换
2.boolean:true转为1,false转为0
其他类型转为boolean:
1.number:0和NaN转为false,其他的数字转为true
2.string:空字符串转为false,其他字符串转为true
3.null:转为false
4.undefined:转为false

js函数定义的两种格式,以及定义函数时需要注意的事项有哪些?

函数定义格式有两种:
方式1
function 函数名(参数1,参数2…){
要执行的代码
}

方式2
var 函数名 = function (参数列表){
要执行的代码
}

注意:
1.形式参数不需要类型。因为JavaScript是弱类型语言
function add(a, b){
return a + b;
}
上述函数的参数 a 和 b 不需要定义数据类型,因为在每个参数前加上 var 也没有任何意义。
2.返回值也不需要定义类型,可以在函数内部直接使用return返回即可

数组定义的两种格式,并举例说明?

数组的定义格式有两种:
方式1
var 变量名 = new Array(元素列表);
例如:
var arr = new Array(1,2,3); //1,2,3 是存储在数组中的数据(元素)

方式2
var 变量名 = [元素列表];
例如:
var arr = [1,2,3]; //1,2,3 是存储在数组中的数据(元素)

Document对象获取 Element元素对象的4个函数?

getElementById():
根据id属性值获取,返回单个Element对象

getElementsByTagName():
根据标签名称获取,返回Element对象数组

getElementsByName():
根据name属性值获取,返回Element对象数组

getElementsByClassName():
根据class属性值获取,返回Element对象数组

JavaScript两种事件绑定方式?列举一些比较常用的事件属性?

事件绑定的方式:
方式一:通过 HTML标签中的事件属性进行绑定
方式二:通过 DOM 元素属性绑定

常见事件属性:
onclick、onblur、onfocus、onload、onsubmit、onmouseover、onmouseout

正则表达式常用的规则和量词?

正则表达式常用的规则如下:
^:表示开始
$:表示结束
[ ]:代表某个范围内的单个字符,比如: [0-9] 单个数字字符
.:代表任意单个字符,除了换行和行结束符
\w:代表单词字符:字母、数字、下划线(),相当于 [A-Za-z0-9]
\d:代表数字字符: 相当于 [0-9]

量词:
+:至少一个
*:零个或多个
?:零个或一个
{x}:x个
{m,}:至少m个
{m,n}:至少m个,最多n个

Vue 中的 v-bind 和 v-model 指令的作用。

Vue 中的 v-bind 指令可以动态绑定数据到 HTML标签的属性值上,v-model 指令是一个双向数据绑定指令,它可以实现数据和视图的同步更新。

v-if与v-show指令区别(相同点和不同点)是什么?

相同点: v-show与 v-if 的作用效果是相同的,都能控制元素在页面是否显示 ,当表达式都为 false 时,元素不会显示当表达式结果为 true 时,元素显示。不同点:v-show 的值改变的时候不会触发组件的生命周期,本质切换的是display属性的值。而v-if在改变时会存在组件的创建与销毁。

Vue生命周期中钩子函数有哪些以及触发时机是什么?

beforeCreate(创建前)、created(创建后)、beforeMount(挂载前)、mounted(挂载后),beforeUpdate(更新前)、update(更新后)、beforeDestory(销毁前)、destoryed(销毁后)

AJAX的作用是什么?

1.与服务器进行数据交换,通过AJAX可以给服务器发送请求,服务器将数据直接响应回给浏览器;
2.异步交互,可以在不重新加载整个页面的情况下,与服务器交换数据并更新部分网页;

axios的两种请求方式并用代码写出具体的请求格式。

axios有post、get两种请求的方式,具体请求格式如下:
axios({
method:“get”,
url:“请求路径?参数名称=参数值”
}).then(function (resp){
回调后的操作;
})
axios({
method:“post”,
url:“请求路径”,
data:“参数名称=参数值”
}).then(function (resp){
回调后的操作;
});

如何将JavaScript对象转换为JSON字符串,又如何将JSON字符串转换为JavaScript对象?

将 JavaScript 对象转换为 JSON 字符串可以使用 JSON.stringify() 方法,该方法将对象转换为一个 JSON 字符串。要将 JSON 字符串转换为 JavaScript 对象,可以使用 JSON.parse() 方法,该方法将 JSON 字符串解析为一个 JavaScript 对象。

在javaWeb项目中如何引入element-ui组件?

通过下载element-ui组件库放到webapp目录下,在使用的html页面中引入element-ui的样式和element-ui的js文件()

Element UI 中有哪些常用的表单组件?

输入框 (Input):用于输入文本。
单选框 (Radio):用于选择一项。
复选框 (Checkbox):用于选择多项。
下拉框 (Dropdown):用于选择一项或多项。
按钮 (Button):用于执行操作。
表单提交按钮 (Submit):用于提交表单。
标签 (Label):用于描述输入框。
表单验证错误信息 (ValidationErrors):用于显示表单验证错误信息。
数字输入框 (Number Input):用于输入数字。
时间输入框 (Time Input):用于输入时间。

Element-ui提供了哪两种布局方式,各自的特点是什么?

Layout 布局:将页面分成最多 24 个部分,自由切分。
Container 布局容器:将页面分成头部区域、侧边栏区域、主区域、底部区域。

Element UI 组件库的优势,并列举其中几个常用的组件。

易于使用:Element UI 提供了一个简单的组件库,易于学习和使用。开发人员可以快速构建应用程序,而无需从头开始构建所有的组件。
常用组件:按钮、表单、图标、菜单、导航栏、table表格、分页

Web标准、由哪三个部分组成?

web标准三个部分:
①结构标准(HTML)。结构标准定义了 Web 页面的内容和基本结构。其中,HTML(超文本标记语言) 是最基本的 Web 结构标准,它使用一系列标记来描述页面的各个部分,例如标题、段落、列表、图像等。
②表现标准(CSS)。表现标准定义了如何使用样式来控制 Web 页面的呈现方式,包括页面的布局、颜色、字体、大小和间距等。其中,CSS(层叠样式表) 是最常用的 Web 表现标准,它使用一系列规则来描述如何对 HTML 元素进行样式处理。
③行为标准(JavaScript)。行为标准定义了在 Web 页面中使用 JavaScript 语言实现交互和动态效果的方式。它包括了一系列 API 和规范,例如 DOM(文档对象模型)、BOM(浏览器对象模型)、ECMAScript 等。这些标准帮助开发人员创建出更加丰富和用户友好的 Web 应用程序。

JavaScript中自定义对象的格式?并举例说明?

自定义对象格式:
var 对象名称 = {
属性名称1:属性值1,
属性名称2:属性值2,
…,
函数名称:function (形参列表){},

};
举例:

var person = {
name : "zhangsan",
age : 23,
eat: function (){
alert("干饭~");
}
};

如果想要在页面加载完毕后就发起axios请求,那axios请求应放在vue对象data、methods、mounted这个三个属性中的哪一个中,为什么?

可以将 axios 请求放在 Vue 实例的 mounted 钩子函数中,因为 mounted 钩子函数在组件实例挂载完成之后被调用,此时页面已经加载完毕,可以发起 axios 请求。
在 Vue 中,mounted 钩子函数是一个在组件实例挂载完成时被调用的函数,可以在该函数中调用 axios 请求库发起 HTTP 请求。该函数的参数包括组件实例本身以及组件的模板引用,因此可以在该函数中方便地使用这些参数来发起请求。

maven是什么?有哪些功能?

Maven是专门用于管理和构建Java项目的工具,它的主要功能有:
提供了一套标准化的项目结构
提供了一套标准化的构建流程(编译,测试,打包,发布……)
提供了一套依赖管理机制

maven仓库分为哪几类?

本地仓库
中央仓库
远程仓库
镜像仓库

maven常用命令有哪些?分别作用是什么?

常用命令和作用:
compile :编译
clean:清理
test:测试
package:打包
install:安装

什么是HTTP协议?

HyperText Transfer Protocol,超文本传输协议,规定了浏览器和服务器之间数据传输的规则

HTTP协议有几部分组成?

HTTP协议有两部分,分别是请求部分和响应部分

后端如何接受简单的数据类型?

后端的参数名称要和postman中传递的参数名称一样

后端如何接受把前端传递的参数自动封装到JavaBean中?

定义的JavaBean中的属性名和请求参数名一样

后端如何处理json格式的参数?

使用@RequestBody注解将外部传递的json格式的数据转成对应的java数据类型(数组,集合,对象)

后端如何处理路径参数格式的参数?

使用@PathVariable注解,此注解写在方法参数的前面即可,比如:delete(@PathVariable Integer id)

@ResponseBody注解的作用是什么?

@ResponseBody注解的作用是将controller的方法返回的对象,转换为json格式的数据返回给前端

Spring中bean实例化有哪几种方式?

1)使用无参构造方法实例化,默认调用无参构造方法创建对象,如果bean中没有默认无参构造函数,将会创建失败。
2)静态工厂方式
3)实例工厂方式

Spring中常见的注入方式有哪几种方式?

1)setter注入,实现步骤 a:提供私有属性,b:为属性提供setter方法,c:配置文件中使用进行注入
2)构造器注入,实现步骤 a:为类提供构造函数,b:配置文件使用进行注入

请求协议和响应协议每一部分的作用是什么?

请求数据总共分为三部分内容,分别是请求行、请求头、请求体
请求行: HTTP请求中的第一行数据,请求行包含三块内容,分别是 GET[请求方式] /[请求URL路径] HTTP/1.1[HTTP协议及版本]
请求方式有七种,最常用的是GET和POST
请求头: 第二行开始,格式为key: value形式
请求体:GET请求请求参数在请求行中,没有请求体,POST请求请求参数在请求体中
响应数据总共分为三部分内容,分别是响应行、响应头、响应体
响应行:响应数据的第一行,响应行包含三块内容,分别是 HTTP/1.1[HTTP协议及版本] 200[响应状态码] ok[状态码的描述]
响应头:第二行开始,格式为key:value形式
响应体: 最后一部分。存放响应数据

请求和响应的两个对象分别是什么以及他们的作用?

请求对象是Reqeust:在客户端发出每个请求时,服务器都会创建一个request对象,并把请求数据封装到request中,需要的数据从request对象获取即可。
响应对象是Response:在客户端发出每个请求时,服务器都会创建一个response对象,response对象是用来对客户端进行响应的。

什么是Spring的IOC与DI?

1.Spring的IOC指是控制反转,如Service以前需要用到Dao,都需要Service自己来new对象,现在Service不需要new了,对象的创建交给Spring容器来创建,Spring容器反转控制了所需对象的创建权。
2.Spring的DI指的是依赖注入,如Service以前需要用到Dao,都需要Service自己来new对象,现在Service不需要new了,所需的对象都依赖Spring容器来注入。
3.所以控制反转和依赖注入是站在不同的角度来描述的同一件事。控制反转是站在Spring容器的角度来说,依赖注入是站在需要资源方的角度来说的

什么是MySQL?MySQL有什么作用呢?

MySQL是一个关系型数据库管理系统,也是一种关联数据库管理系统,关联数据库将数据保存在不同的表中。
作用:我们使用关系型数据库管理系统来存储和管理大数据量。

MySQL关系型数据库有什么特点?

MySQL是开源的,目前隶属于Oracle旗下产品;
MySQL支持大型的数据库,可以处理拥有上千万条记录的大型数据库;
MySQL使用标准的SQL数据语言形式;
MySQL可以运行于多个系统上,并且支持多种语言。

MySQL中DDL是什么?有什么作用?

DDL是数据定义语言。
作用:可以用来创建/删除数据库或者修改/删除数据库表格等。

什么是DDL?ddl中常见的操作有哪些?

DDL是数据定义语言,用于定义数据库中数据结构和相关对象的语言。常见的DDL操作包括:创建表、修改表结构、删除表、创建视图、修改视图、删除视图、创建索引、修改索引、删除索引等。

MySQL中常用的数据类型有哪些?

1、数值类型
整形:TINYINT,SMALLINT,MEDIUMINT,INT,BIGINT
浮点型:FLOAT,DOUBLE
定点型:DECIMAL
2、时间日期类型
DATE,TIME,DATETIME,YEAR,TIMESTAMP
3、文本类型
CHAR,VARCHAR,TEXT

MySQL中的DML是什么?有什么作用?

DML是数据操纵语言。
作用:用于添加、修改、删除数据库记录,并检查数据完整性。

MySQL中的DQL是什么?有什么作用?

DQL是数据查询语言。
作用:用于查询数据,它是我们真正开发中使用最多的一种。

MySQL中做增/删/改/查的关键字分别对应的是什么?

MySQL中,新增关键字:INSERT;
删除关键字:DELETE;
修改关键字:UPDATE;
查询关键字:SELECT。

常见的聚合函数有哪些?

常见的聚合函数有:求和SUM()、求平均值AVG()、求最大值MAX()、求最小值MIN()、统计查询COUNT()等。

MySQL中where和having的相同点和区别分别是什么?分别什么时候使用?相同点:where和having作用是一样的,都是用于条件判断的。

区别:(1)where是数据从磁盘读入内存的时候进行判断,having是分组统计之前的所有条件进行判断的;(2)where不能使用字段别名,having中可以使用字段别名;(3)where不能使用统计函数,而having能够使用统计函数。

SQL查询语句的一般执行顺序是什么?

查询语句的一般执行顺序是:from>>on>>join>>where>>group by>>having+聚合函数>>select>>order by>>limit。

数据库设计的步骤有哪些?

步骤:
1.需求分析(数据是什么? 数据具有哪些属性? 数据与属性的特点是什么)
2.逻辑分析(通过ER图对数据库进行逻辑建模,不需要考虑我们所选用的数据库管理系统)
3.物理设计(根据数据库自身的特点把逻辑设计转换为物理设计)
4.维护设计(1.对新的需求进行建表;2.表优化)

表关系有哪些?举例说明

表关系:
1.一对一
如:用户 和 用户详情
2.一对多
如:部门 和 员工
3.多对多
如:商品 和 订单

数据库设计概念

概念:
数据库设计就是根据业务系统的具体需求,结合我们所选用的DBMS,为这个业务系统构造出最优的数据存储模型。
建立数据库中的表结构以及表与表之间的关联关系的过程。
有哪些表?表里有哪些字段?表和表之间有什么关系?

数据库的多表查询有哪些?

①内连接查询 :相当于查询AB交集数据
②外连接查询
2.1.左外连接查询 :相当于查询A表所有数据和交集部门数据
2.2.右外连接查询 : 相当于查询B表所有数据和交集部分数据

内连接查询和外连接查询的语法?

①内连接查询的语法:
– 隐式内连接
SELECT 字段列表 FROM 表1,表2… WHERE 条件;
– 显示内连接
SELECT 字段列表 FROM 表1 [INNER] JOIN 表2 ON 条件;
②外连接查询的语法:
– 左外连接
SELECT 字段列表 FROM 表1 LEFT [OUTER] JOIN 表2 ON 条件;
– 右外连接
SELECT 字段列表 FROM 表1 RIGHT [OUTER] JOIN 表2 ON 条件;

子查询根据查询结果不同,作用也不同。试分析当子查询的结果为:单行单列、多行单列、多行多列时,分别有哪些作用?

①子查询语句结果是单行单列:
子查询语句作为条件值,使用 = != > < 等进行条件判断

②子查询语句结果是多行单列:
子查询语句作为条件值,使用 in 等关键字进行条件判断

③子查询语句结果是多行多列:
子查询语句作为虚拟表

说说你对事务的理解?

①数据库的事务(Transaction)是一种机制、一个操作序列,包含了一组数据库操作命令
②事务把所有的命令作为一个整体一起向系统提交或撤销操作请求,即这一组数据库命令要么同时成功,要么同时失败
③事务是一个不可分割的工作逻辑单元。

事务的四大特征有哪些?

①原子性(Atomicity): 事务是不可分割的最小操作单位,要么同时成功,要么同时失败
②一致性(Consistency) :事务完成时,必须使所有的数据都保持一致状态
③隔离性(Isolation) :多个事务之间,操作的可见性
④持久性(Durability) :事务一旦提交或回滚,它对数据库中的数据的改变就是永久的

如何理解mybatis?

mybatis理解:
①mybatis概念:
1.1.MyBatis 是一款优秀的持久层框架,用于简化 JDBC 开发
1.2.MyBatis 本是 Apache 的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。2013年11月迁移到Github
②持久层
2.1.负责将数据到保存到数据库的那一层代码
2.2.JavaEE三层架构:表现层、业务层、持久层
③框架
3.1.框架就是一个半成品软件,是一套可重用的、通用的、软件基础代码模型
3.2.在框架的基础之上构建软件编写更加高效、规范、通用、可扩展

mybatis解决了哪些原生JDBC代码的问题?

JDBC 缺点:
①硬编码
1.1.注册驱动,获取连接
1.2.SQL 语句
②操作繁琐
2.1.手动设置参数
2.2.手动封装结果集

谈谈你对数据库连接池的理解?

①是一个容器,负责分配、管理数据库连接(Connection)
②优势:资源复用、提升系统响应速度
③接口: DataSource
④产品: C3PO、DBCP、Druid、Hikari

Mybatis常用注解

1、@Insert:实现新增
2、@Update:实现更新
3、@Delete:实现删除
4、@Select:实现查询
5、@Result:实现结果集封装
6、@Results:可以与@Result 一起使用,封装多个结果集
7、@One:实现一对一结果集封装
8、@Many:实现一对多结果集封装

MyBatis利用注解开发步骤

①添加MyBatis的jar包
②创建数据表
③编写实体类
④编写Mapper接口类
⑤编写业务代码;例子:@select(select * from xx)
⑥编写单元测试类

为什么使用预编译sql

1、性能更高
2、更安全(防止sql注入)

mybatis常用的标签,并说出标签的作用?

①if标签:作用是判断参数是否有值,使用test属性进行条件判断

②where标签:作用是替换where关键字

Mybatis 动态 SQL 的 sql 和 include 标签的作用。

Mybatis 动态 SQL 的 sql 和 include 标签是用于提高 SQL 可重用性和可维护性的标签。其中,sql 标签可以将常用的 SQL 片段定义为一个公共的模板,并在需要使用的地方引用;include 标签可以将其他 XML 映射文件中定义的 SQL 片段引用到当前的 SQL 中

什么是需求分析?为什么要进行需求分析?

需求分析是指对用户、客户或者市场需求进行分析和研究,以确定软件产品或项目的功能、特性和性能等方面的需求。

进行需求分析有助于提高软件开发过程中的效率和质量,减少开发成本和风险,确保开发出符合用户需求和期望的软件产品或项目。

什么是前后端联调?为什么要进行前后端联调?

前后端联调是指将前端界面和后端逻辑进行整合和测试,确保两者之间的数据传输和处理正常,并且在不同浏览器和操作系统下能够正确显示和运行。

进行前后端联调有助于提高软件开发效率和质量,减少出错率和反复修改的次数,确保最终产生的软件产品或项目达到预期要求。

什么是增删查改操作?在软件开发中有哪些应用场景?

增删查改操作是指对数据库中的数据进行添加、删除、查询和修改等基本操作。

在软件开发中,增删查改操作常常用于程序的基本功能实现、用户信息管理、订单处理、商品销售等方面。

PageHelper有哪些功能作用?谈谈PageHelper的优点?

作用:
PageHelper是一个非常方便的MyBatis插件,可以帮助我们快速、简单地实现分页查询。使用PageHelper可以避免手动计算分页查询需要的总记录数等问题。

优点:
提高代码的可读性和可维护性。

Spring boot项目中使用Mybatis框架的分页功能?

步骤:
1.在pom.xml文件中添加依赖

com.github.pagehelper
pagehelper-spring-boot-starter
1.3.0

2.通过PageHelper设定分页条件

前端页面文件上传的三要素是什么?

三要素:
①表单项:type=“file”
②表单提交方式:post
③表单的enctype属性:multipart/form-data

服务端接收文件的api是?

MultipartFile

本地存储的概念?

在服务端,接收到上传上来的文件之后,将文件存储在本地服务器磁盘中

spring boot项目中配置文件application.yml的语法是什么?

①大小写敏感
②数值前边必须有空格,作为分隔符
③使用缩进表示层级关系,缩进时,不允许使用Tab键,只能用空格(idea中会自动将Tab转换为空格)
④缩进的空格数目不重要,只要相同层级的元素左侧对其即可
⑤#表示注释,从这个字符一直到行尾,都会被解析器忽略

spring boot项目支持哪些格式的配置文件?

①application.properties
②application.yml
③application.yaml

@ConfigurationProperties与@Value注解的区别是什么?

相同点:
①都是用来注入外部配置的属性的

不同点:
①@Value注解只能一个一个的进行外部属性的注入
②@ConfigurationProperties可以批量的将外部的属性注入到bean对象的属性中

开启事务、提交事务、回滚事务的语法?

开启事务:
START TRANSACTION;
或者
BEGIN;

提交事务:
commit;

回滚事务:
rollback;

spring boot项目支持哪些格式的配置文件?

支持的格式:
①application.properties
②application.yml
③application.yaml

会话技术在登录认证中起什么作用?

会话技术用于在用户登录后跟踪用户的状态和身份信息,在用户与系统之间建立持久的连接。一旦用户通过登录认证成功,会话技术可以通过生成唯一的会话标识(如会话ID),将用户信息与该会话关联起来。这样,系统可以在会话期间持久保存用户的登录状态,以便在后续请求中验证用户身份。

Cookie和Session会话跟踪方案的优缺点是什么?

Cookie:
优点:HTTP协议中支持的技术
缺点:
①移动端APP无法使用Cookie
②不安全,用户可以自己禁用Cookie
③Cookie熊跨域

Session:
优点:存储在服务端,安全
缺点:
服务器集群环境下无法直接使用Session
Cookie的缺点

使用JWT实现登录认证场景有哪些步骤?

①登录成功后,生成令牌
②后续每个请求,都要携带JWT令牌,系统在每次请求处理之前,先校验令牌,通过后,再处理

过滤器(Filter)的概念和执行流程?

Filter 过滤器,是JavaWeb 三大组件(Servlet、Filter、Listener)之一。过滤器可以把对资源的请求拦截下来,从而实现一些特殊的功能。过滤器一般完成一些通用的操作,比如:登录校验、统一编码处理、敏感字符处理等

执行流程:
请求–>放行前逻辑–> 放行–> 资源–> 放行后逻辑

Filter的工作流程?

1.客户端请求访问容器内的Web资源;
2.Servlet容器接受请求,并针对本次请求分别创建一个request请求和response对象;
3.请求到达Web资源之前,先调用Filter的doFilter()方法,检查request对象,修改请求头和请求正文,或对请求进行预处理操作;
4.在Filter的doFilter()方法内,调用FilterChain.doFilter()方法,将请求传递给下一个过滤器或目标资源;
5.目标资源生成响应信息返回客户端之前,处理控制权会再次回到Filter的doFilter()方法,执行FilterChain.doFilter()后的语句,检查response对象,修改响应头和响应正文;
6.响应信息返回客户端。

自定义拦截器的步骤?

1.自定义一个实现Interceptor接口的类,或者继承抽象类AbstractInterceptor;
2.在配置类中注册定义的拦截器;
3.在需要使用Action中引用上述定义的拦截器。

事务的4大特性是什么?

原子性、一致性、隔离性、持久性,简称为 ACID 特性

rollbackfor属性的用法和作用?

Spring框架的事务管理默认地只在发生不受控异常时才进行事务回滚。也就是说,当事务方法抛出受控异常时不会进行事务回滚。这个时候就可以使用rollbackFor属性,在类或方法前注解配置@Transactional(rollbackFor=Exception.class)就可以了,这个时候当发生受控异常时,事务也进行回滚。

Spring的传播行为有哪些?

REQUIRED:支持当前事务,如果当前没有事务,就新建一个事务。这是最常见的选择。
SUPPORTS:支持当前事务,如果当前没有事务,就以非事务方式执行。
MANDATORY:支持当前事务,如果当前没有事务,就抛出异常。
REQUIRES_NEW:新建事务,如果当前存在事务,把当前事务挂起。
NOT_SUPPORTED:以非事务方式执行操作,如果当前存在事务,就把当前事务挂起。
NEVER:以非事务方式执行,如果当前存在事务,则抛出异常。
NESTED:支持当前事务,如果当前事务存在,则执行一个嵌套事务,如果当前没有事务,就新建一个事务。

Spring AOP中的通知有哪些类型,每种类型分别什么时候执行?

前置通知(before) :在切点运行之前执行
后置通知(after-returning):在切点正常运行结束之后执行
异常通知(after-throwing):在切点发生异常的时候执行
最终通知(after):在切点的最终执行
环绕通知:它是一种特殊的通知,他允许以编码的形式实现四大通知

AOP是什么,作用是什么?

AOP( 面向切面编程 )是一种思想,它的目的就是在不修改源代码的基础上,对原有功能进行增强。AOP作为面向对象的一种补充,用于将那些与业务无关,但却对多个对象产生影响的公共行为和逻辑,抽取并封装为一个可重用的模块,这个模块被命名为“切面”(Aspect). SpringAOP 使用的动态代理,所谓的动态代理就是说 AOP 框架不会去修改字节码,而是每次运行时在内存中临时为方法生成一个 AOP 对象,这个 AOP对象包含了目标对象的全部方法,并且在特定的切点做了增强处理,并回调原对象的方法。

如果切点表达式要匹配com.itheima.service包下的所有接口中的所有方法,那么切点表达式要怎么写。切点表达式的通用格式是什么?@Pointcut(“execution(* com.itheima.service..(…))”)

public void pt(){}

切入点表达式标准格式:动作关键字(访问修饰符 返回值 包名.类/接口名.方法名(参数)异常名)

切入点表达式中的通配符

. :单个独立的任意符号,可以通配任意返回值、包名、方法名、任意类型的一个参数,也可以通配包、类、方法名的一部分
… :多个连续的任意符号,可以通配任意层级的包,或任意类型、任意个数的参数

@annotation切入点表达式的使用

通过自定义注解,在需要切入的地方加上该自定义注解,然后在切入点表达式中通过@Pointcut(@annotation(全类名))的形式进行匹配

ProceedingJoinPoint中的几个常用方法

getTarget().getClass().getName() //获取目标对象的类名
getSignature().getName() //获取目标方法的方法名
getArgs() //获取目标方法运行时传入的参数
proceed() //放行目标方法执行

maven中的继承,有什么作用?怎么实现

概念:继承描述的是两个工程间的关系,与java中的继承相似,子工程可以继承父工程中的配置信息,常见于依赖关系的继承
作用:简化依赖配置,统一管理依赖
实现:通过… 和xxxx标签实现

maven中的聚合,有什么作用?怎么实现

概念:将多个模块组织成一个整体,同时进行项目的构建。
作用:快速构建项目(无需根据依赖关系手动构建,直接在聚合工程上构建即可)
实现:通过…标签实现

springboot配置文件优先级

.yaml > .yml > .properties > java系统属性 > 命令行参数

  • 19
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值