使用springboot进行后端开发100问

  1. properties和yaml文件怎么互转
    安装插件

  2. properties文件和yaml文件区别
    properties 文件通过“.”和“=”赋值,值前不加空格,yaml通过“:”赋值,值前面加一个空格;yaml文件缩进用空格;
    properties只支持键值对, yaml 配置文件支持列表,短横线表示列表“-”;
    properties不保证加载顺序,yaml有先后顺序;

  3. 程序会自动读取yaml文件么,需要配置么

  4. restcontroller和controller的区别

  5. 不加restcontroller报错
    Error resolving template [], template might not exist or might not be accessible by any of the conf

  6. postman 如何向后台传对象

  7. @Requestpart,@RequestBody,@RequestParam

  8. @RequestBody主要用来接收前端传递给后端的json字符串中的数据的(请求体中的数据的);而最常用的使用请求体传参的无疑是POST请求了,所以使用@RequestBody接收数据时,一般都用POST方式进行提交。在后端的同一个接收方法里,@RequestBody与@RequestParam()可以同时使用,@RequestBody最多只能有一个,而@RequestParam()可以有多个。

博文

9.postman同时传递文件和对象参数

  1. get请求如何传对象
    和Post请求一样 用RequestBody就行

  2. 上传下载文件

  3. Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed: java.lang.NullPointerException: Cannot invoke "String.length()" because "s" is null] with root cause
    原因,就是调用length方法的对象为空,当时传入的文件名是从数据库里面读入进来的,但是忘记在数据库里面存文件名了

  4. Cannot call sendError() after the response has been committed
    字面意思就是response被调用了两次,导致无法调用sendError方法。

  5. No converter for [class com.seed5.ocs.model.Respond] with preset Content-Type 'application/octet-stream'
    把controller的返回值类型改成void

response.reset()

但是我使用了response.reset好像不太管用的样子。
破案了,使用response.reset()函数不管用的原因是

InputStream inputStream=new FileInputStream(file)
//我这里的file参数是File类型,实际应该传入String类型的path

没有破案,所以到底是什么原因呢?

  1. 热部署

  2. 2021版IDEA没有compiler.automake.allow.when.app.running

  3. npm ERR! { Error: EPERM: operation not permitted, mkdir 'C:\Program Files\nodejs\node_cache\_locks'

  4. 前后端对接接口的时候,请求的success.function.res()回调函数中的参数res是什么

  5. 前后端对接时的跨域问题

  6. 后端给前端返回统一结果
    建立格式
    定义常见的错误,枚举类
    工具类,写返回信息

    result风格
    restful风格

  7. 枚举类

  8. axios发请求,SpringBoot接请求的各种对应

  9. vue $符号的作用
    Vue 实例还暴露了一些有用的实例属性与方法,它们都有前缀 $,以便与用户定义的属性区分开来
    挂载在vue身上的属性

  10. this.$message()

  11. 跨域问题
    跨域请求资源问题,前后端分离项目不可避免的问题
    同域:协议相同,端口号相同,主机相同
    CORS,在后端设置,新建一个配置类,允许跨域请求。

@Configuration
public class CorsConfig implements WebMvcConfigurer{@Overridepublic void addCorsMappings(CorsRegistry registry){registry.addMapping("/**")//允许跨域访问的路径.allowedOrigins("*")//允许跨域访问的源.allowedMethods("POST","GET","PUT","OPTIONS","DELETE")//允许跨域访问的方法.maxAge(168000)//预检间隔时间.allowedHeaders("*")//允许头部设置.allowCredentials(true);//是否允许发送cookie}
}

修改响应头
jsonp
报了一行错
When allowCredentials is true, allowedOrigins cannot contain the special value "*" since that cannot be set on the "Access-Control-Allow-Origin" response header. To allow credentials to a set of origins, list them explicitly or consider using "allowedOriginPatterns" instead.
这是因为springboot升级成2.4.0以上时对AllowedOrigin设置发生了改变,不能有”*“
解决办法:跨域配置报错,将.allowedOrigins替换成.allowedOriginPatterns即可。

@Configuration
public class CorsConfig implements WebMvcConfigurer{@Overridepublic void addCorsMappings(CorsRegistry registry){registry.addMapping("/**")//允许跨域访问的路径
//                .allowedOrigins("*")//允许跨域访问的源.allowedOriginPatterns("*").allowedMethods("POST","GET","PUT","OPTIONS","DELETE")//允许跨域访问的方法.maxAge(168000)//预检间隔时间.allowedHeaders("*")//允许头部设置.allowCredentials(true);//是否允许发送cookie}
}
  1. JS回调函数的作用域发送变化
    用箭头函数(网络请求回调函数这一块儿)
    this.data相当于 this=>name

  2. No converter for [class com.seed5.ocs.model.ReturnRestful] with preset Content-Type 'application/octet-stream'
    application/octet-stream

    当浏览器在请求资源时,会通过http返回头中的content-type决定如何显示/处理将要加载的数据,如果这个类型浏览器能够支持阅览,浏览器就会直接展示该资源,比如png、jpeg、video等格式。在某些下载文件的场景中,服务端可能会返回文件流,并在返回头中带上Content-Type:application/octet-stream,告知浏览器这是一个字节流,浏览器处理字节流的默认方式就是下载

    Application/octet-stream是应用程序文件的默认值。意思是未知的应用程序文件,浏览器一般不会自动执行或询问执行。浏览器会像对待,设置了HTTP头Content-Disposition值为attachment的文件一样来对待这类文件,即浏览器会触发下载行为。

    说人话就是,浏览器并不认得这是什么类型,也不知道应该如何展示,只知道这是一种二进制文件,因此遇到content-type为application/octet-stream的文件时,浏览器会直接把它下载下来。这个类型一般会配合另一个响应头Content-Disposition,该响应头指示回复的内容该以何种形式展示,是以内联的形式(即网页或者网页的一部分),还是以附件的形式下载并保存到本地。

    解释来源
    那么是不是这个返回的参数也被浏览器视为要下载的内容了呢?所以没办法将返回参数类型转换成二进制类型。

    目前这个问题的已知有效方案为:将函数设置为void函数(不设置返回值类型)。
    但是在response提交之前设置,就没办法提交二进制流,之后设置,就会报错Cannot call reset() after response has been committed

  3. 文件删除
    java中普适的文件删除方法

  4. springboot配置全局变量

  5. 日志

private static final Logger log = LoggerFactory.getLogger(homeworkController.class);
  1. 富文本编辑器
    我想要搞一个富文本编辑器,能编辑、保存、查看、修改、删除内容。

  2. SpringBoot + Mybatis实体类属性与数据库表列名之间的对应关系
    问题长这样
    在这里插入图片描述

解决办法,做个映射应该就行了
Mybatis 解决数据库字段名和实体类属性名不一致问题

我的解决办法:
开启驼峰命名规则:
修改mybaits-config.xml
在这里插入图片描述
在settings标签里面插入
<setting name="mapUnderscoreToCamelCase" value="true"/>

  1. postman怎么查看原始的http请求和响应的内容(想要康康请求头等具体信息)
    点击控制台,再点击具体的想查看的请求
    在这里插入图片描述

  2. 请求出现“Content type ‘application/octet-stream‘not supported“错误

  3. 后端使用@RequestParam传递文件,@RequestPart传递对象来实现同时上传对象和文件,前端应该怎么传参数?
    我把json对象变成blob(二进制数组)之后,后端还是在疯狂报错。
    2023-04-06T23:42:12.512+08:00 WARN 9272 --- [nio-8443-exec-3] .w.s.m.s.DefaultHandlerExceptionResolver : Resolved [org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Cannot deserialize value of type com.seed5.ocs.model.Studentworkfrom Array value (tokenJsonToken.START_ARRAY)]
    不知道是解析的问题还是咋回事,传的时候参数是json对象,传过去之后参数就变成数组了,卒
    解决办法,传递@RequestParam类型参数,在后台打包成对象。

  4. 开启驼峰映射
    在application.properties文件里面加上这么一句话
    mybaits.configuration.map-underscore-to-camel-case:=true
    报错:

 Property 'configuration' and 'configLocation' can not specified with together

解决
就是我已经有mybaits.xml文件了,所以不能再在application.properties里面配置了
但是我发现我其实已经在mybaits.xml文件里面配置过了
在这里插入图片描述

没有生效
原因:手动配置了数据库连接
解决方法:

  1. 在终端使用git clone拉取maven项目后,用IDEA打开项目,但文件显示的全是黄色图标的.java文件,并不能像新建Java文件一样显示蓝色的class文件,且不能直接运行。
    解决方案

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

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

相关文章

Ubuntu下打开QtCreator环境变量LD_LIBRARY_PATH与终端不一致

问题描述&#xff1a; 在unbuntu下使用QtCreator编译、运行程序时&#xff0c;总是出现XXX.so: cannot open shared object file: No such file or directory这类问题&#xff0c;但是在终端中编译或者运行程序则不会出现这些问题。在网上查了好久才明白QtCreator在打开时&…

逻辑漏洞原理及实战

前言 作者简介&#xff1a;不知名白帽&#xff0c;网络安全学习者。 博客主页&#xff1a;不知名白帽_网络安全,CTF,内网渗透-CSDN博客 网络安全交流社区&#xff1a;https://bbs.csdn.net/forums/angluoanquan 目录 逻辑漏洞基础 概述 分类 URL跳转漏洞 概述 危害 漏洞…

51单片机串口

该部分的笔记来自视频教程链接https://www.bilibili.com/video/BV1bt4y197NR/?spm_id_from333.788&vd_sourceb91967c499b23106586d7aa35af46413 一、51单片机串口基础介绍 一般的应用层的协议中采用和校验或CRC校验&#xff0c;而奇偶校验还是解决基本通信中的帧格式中的…

Eclipse整合tomcat时要注意的几点

Eclipse整合tomcat时要注意的几点 1、安装目录及jdk 2、参数配置 注意&#xff1a;Arguments的配置&#xff0c;日志输出文件目录及java内存大小设置等&#xff0c;如下&#xff1a; -Dcatalina.base"E:\apache-tomcat-7.0.52" -Dcatalina.home"E:\apache-tomc…

无符号数和有符号数的“bug”

1. 起因 在实现kmp算法时&#xff0c;出现了诡异的现象&#xff0c;看下面的代码&#xff1a; int KMP (const char *s, const char *t) {int lenS strlen (s);int lenT strlen (t);int next[lenT];get_next (next, t);int i 0;int j 0;while (i < lenS && j …

程序化广告还有未来么?——程序化领域变化的底层逻辑和反思

三、近几年程序化广告领域的变化底层逻辑是什么呢&#xff1f; 当前国内程序化生态的状态&#xff0c;更像是希腊的古典时代&#xff1a;古希腊时代的城邦高度繁荣的时期。很多人可能对古希腊城邦没有概念&#xff0c;我们解释一下&#xff1a; 所谓城邦就是城市国家&#xff0…

涵子来信——自己的电脑——谈谈想法

大家好&#xff1a; 上一次谈论了苹果的那些事&#xff0c;今天我们来聊聊电脑。 我的第一台电脑现在成了这样子&#xff1a; 很多人以为是我自己拆了电脑做研究&#xff0c;其实是我的第一台电脑&#xff0c;真的坏了。 2021年&#xff0c;我有了属于我自己的第一台电脑&am…

链表 --- C语言实现

本篇文章来详细介绍一下数据结构中的链表。 目录 1.链表的概念及结构 2.链表的分类 3.单链表的实现 4.链表的面试题 5.双向链表的实现 6.顺序表和链表的区别 1.链表的概念及结构 概念&#xff1a;链表是一种物理存储结构上非连续、非顺序的存储结构&#xff0c;数据元素…

【HTML5】拖放详解及实现案例

文章目录 效果预览代码实现 效果预览 代码实现 <!DOCTYPE html> <html><head><meta charset"utf-8"><title>一颗不甘坠落的流星</title><style>#div1,#div2 {float: left;width: 100px;height: 27px;margin: 10px;paddin…

关于 Qt在windows使用mingw32编译器时从Qt5.9切换至Qt5.12出现“C2001:常量中有换行符“不修改编码 的解决方法

若该文为原创文章&#xff0c;转载请注明原文出处 本文章博客地址&#xff1a;https://hpzwl.blog.csdn.net/article/details/131901444 红胖子(红模仿)的博文大全&#xff1a;开发技术集合&#xff08;包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软…

Git简介与工作原理:了解Git的基本概念、版本控制系统和分布式版本控制的工作原理

&#x1f337;&#x1f341; 博主 libin9iOak带您 Go to New World.✨&#x1f341; &#x1f984; 个人主页——libin9iOak的博客&#x1f390; &#x1f433; 《面试题大全》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33…

day33哈希表

1.哈希表 常见的哈希表分为三类&#xff0c;数组&#xff0c;set&#xff0c;map&#xff0c;C语言的话是不是只能用数组和 2.例题 题目一&#xff1a; 分析&#xff1a;题目就是判断两个字符串出现的次数是否相同&#xff1b; 1&#xff09;哈希表26个小写字母次数初始化为0&…

RB-tree(红黑树)详解

RB-tree(红黑树) 红黑树的规则如下&#xff1a; 1.每个节点不是红色就是黑色 2.根节点为黑色 3.如果节点为红色&#xff0c;那么它的子节点必须为黑色 4.任何一个节点到NULL&#xff08;树的尾端&#xff09;的任何路径所包含的黑节点个数相同 简而言之就是每个路径的黑色节点数…

模拟量输出FC S_RTI(信捷C语言源代码)

模拟量输出FC SCL源代码请查看下面博客: PLC模拟量输出 模拟量转换FC S_RTI_博途模拟量转换指令_RXXW_Dor的博客-CSDN博客1、本文主要展示西门子博途模拟量输出转换的几种方法, 方法1:先展示下自编FC:计算公式如下:intput intput Real ISH Real //工程量上限 ISL Real //工…

【数据挖掘】将NLP技术引入到股市分析

一、说明 在交易中实施的机器学习模型通常根据历史股票价格和其他定量数据进行训练&#xff0c;以预测未来的股票价格。但是&#xff0c;自然语言处理&#xff08;NLP&#xff09;使我们能够分析财务文档&#xff0c;例如10-k表格&#xff0c;以预测股票走势。 二、对自然语言处…

【OpenCV】常见问题及解决办法

文章目录 0 前言1 中文乱码问题2 非法路径问题 0 前言 本篇博客主要是总结OpenCV使用过程中遇到的一些问题&#xff0c;以及对应的解决办法&#xff0c;这里重点是关注OpenCV&#xff0c;既有基于C的&#xff0c;也有基于Python的&#xff0c;比较全面&#xff0c;而且也会随着…

RocketMQ教程-安装和配置

Linux系统安装配置 64位操作系统&#xff0c;推荐 Linux/Unix/macOS 64位 JDK 1.8 Maven3.0 yum 安装jdk8 yum 安装maven 1.下载安装Apache RocketMQ RocketMQ 的安装包分为两种&#xff0c;二进制包和源码包。 点击这里 下载 Apache RocketMQ 5.1.3的源码包。你也可以从这…

Windows11的VS201x编译OpenCV+Contrib+CUDA

(1) CUDA下载&#xff0c;注意要和cudnn版本号相关。 我安装的是cuda11.0,注意VS2015不能编译CUDA11&#xff0c;所以用VS2015的话需要下载CUDA 10。因为更高的版本目前还没有cudnn。 (2) 下载和安装VS2015。 (3) 下载和解压CMake。 CMake地址&#xff1a; Releases Kitw…

Android dp to pix resources.getDimension(R.dimen.xxx) ,kotlin

Android dp to pix resources.getDimension(R.dimen.xxx) ,kotlin <?xml version"1.0" encoding"utf-8"?> <resources><dimen name"my_size_dp">20dp</dimen><dimen name"my_size_px">20px</dime…

数据仓库表设计理论

数据仓库表设计理论 数仓顾名思义是数据仓库&#xff0c;其数据来源大多来自于业务数据(例如:关系型数据库)&#xff0c;当设计数仓中表类型时(拉链表、增量表、全量表、流水表、切片表)时&#xff0c;应先观察业务数据的特点再设计数仓表结构 首先业务数据是会不断增长的-即…