使用springboot进行后端开发100问

news2024/12/26 20:45:41
  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{
    @Override
    public 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{
    @Override
    public 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.coloradmin.cn/o/779170.html

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

相关文章

C++实现LRU(逐句讲解)

使用双向链表解决此问题&#xff0c;因为双向链表可以很容易的获取到头结点和尾结点。题目要求 get 和 put 要在O(1)的时间复杂度下运行&#xff0c;很显然要用set或map。根据题意&#xff0c;应使用map。 unordered_map<int,Node*> cache; map->first为Node中的key&a…

查看RabbitMQ日志---trace插件的使用

我的RabbitMQ是安装在docker里面的 所以我以下的方法都是根据这个路径去操作的 如果RabbitMQ安装在其他地方 请自行百度 1. 显示正在运行的RabbitMQ容器的名称或ID&#xff1a; docker ps这将启动所有正在运行的 Docker 容器&#xff0c;并包含 RabbitMQ 容器的信息。 使用…

【Docker】Docker的数据管理

目录 一、Docker 的数据管理1.1数据卷1.2 数据卷容器1.3端口映射1.4容器互联&#xff08;使用centos镜像&#xff09; 二、Docker镜像的创建2.1基于现有镜像创建2.2&#xff0e;基于本地模板创建2.3 基于Dockerfile 创建联合文件系统&#xff08;UnionFS&#xff09;镜像加载原…

【云原生】Docker网络及Cgroup资源控制

一、Docker网络 1.docker网络实现原理 Docker使用Linux桥接&#xff0c;在宿主机虚拟一个Docker容器网桥(docker0)&#xff0c;Docker启动一个容器时会根据Docker网桥的网段分配给容器一个IP地址&#xff0c;称为Container-IP&#xff0c;同时Docker网桥是每个容器的默认网关。…

【Linux网络】 网络套接字(二)socket编程_UDP网络程序

目录 socket 编程接口socket 常见的APIsockaddr结构 UDP网络程序简单例子服务端代码编写服务端创建套接字服务端绑定运行服务器测试启动服务端 客户端代码编写客户端创建套接字启动客户端本地测试INADDR_ANY服务端接收信息发回到客户端如何进行网络测试 socket 编程接口 socke…

【机器学习】吃瓜教程 | 西瓜书 + 南瓜书 (1)

文章目录 一、绪论1、什么是机器学习&#xff1f;2、基本术语3、假设空间4、归纳偏好5、发展历程 二、模型评估与选择A、一种训练集一种算法2.1 经验误差 与 过拟合2.2 评估方法a) 留出法b) 交叉验证法c) 自助法d) 调参与最终模型 2.3 性能度量a) 错误率与精度b) 查准率、查全率…

RT-Thread快速入门-内核移植

1RT-Thread快速入门-内核移植 RT-Thread 快速入门系列前面的文章介绍了内核相关的知识&#xff0c;以及内核提供的接口函数和如何使用。 本篇文章主要介绍如何将 RT-Thread 内核移植到某个硬件平台之上。移植分为两部分&#xff1a; CPU 架构移植 BSP 移植 也就是将 RT-Th…

MySQL第二课表的增删插改

&#x1f49b; 后端进行的表的操作增删查改 现在是建了一个成绩表&#xff0c;注意哈。 decimal(2,1). 2是M表示有两个有效数字长度&#xff0c;1是D的长度&#xff0c;即小数点后有一位(10分制) &#x1f493;开始 1.增加&#xff1a; insert into 表名 values(值&#xff0…

安装VS Code 和 MiKTeX开发环境

下载&#xff1a; Getting MiKTeX 然后以管理员方式运行安装。 配置VS Code 之后配置VS Code&#xff0c;选择扩展&#xff08;两个位置都可以&#xff09;&#xff0c;然后搜索Latex&#xff1a; 然后打开设置&#xff1a; 这样就打开了setting.json文件&#xff0c; 然后…

SQL注入之Oracle环境搭建

SQL注入之Oracle环境搭建 前言 Oracle Database&#xff0c;又名Oracle RDBMS&#xff0c;或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是世界上流行的关系数据库管理系统&#xff0c;系统可移植性…

gitlab上传新项目全过程

gitlab上传新项目全过程 一、前期准备1.1 gitlab配置1.2 gitlab安装1.3 需要在gitlab上新建一个空项目 二、本地操作2.1 gitlab上传新项目全过程2.2 gitlab将远程项目拉取到本地全过程 三、常见问题及解决四、常用命令4.1 代码更新提交命令4.2 其他指令 一、前期准备 1.1 gitl…

less中引入自定义字体文件

前言 一般做后台管理系统UI没有影响要求可以不使用自定义字体。但是在大屏项目中&#xff0c;高度自定义化&#xff0c;就肯定需要UI导出字体文件&#xff0c;然后放到服务器上或者是我们项目文件中&#xff0c;我们前端引入后在页面中使用。 下面以放在项目文件中为例。 各…

【linux】五种IO模型与非阻塞IO

文章目录 一、IO的概念二、IO的五种模型2.1 概念2.2 对比五种IO 三、非阻塞IO3.1 fcntl文件描述符控制3.2 以非阻塞轮询方式读取标准输入 一、IO的概念 前面我们说过其实IO就是拷贝数据。 先说一下读取的接口&#xff1a; 当系统调用read/recv的时候会有两种情况 ①没有数据&a…

【C语言】指针进阶(3)

目录 指针和数组笔试题解析 一维数组 字符数组 二维数组 指针笔试题 在前面两篇文章&#xff0c;我们已经学完了指针进阶的所有知识点。在这篇文章中&#xff0c;我们主要学习的是一些常见的笔试题的总结。 指针和数组笔试题解析 在做题之前&#xff0c;我们先复习一下之…

第三讲:k8s核心概念和专业术语

序言&#xff1a;这里只对概念继续基础阐述&#xff0c;不做具体案例&#xff0c;这位博主写的特别详细&#xff0c;想要对k8s深入的了解可以跳转了&#xff0c;作为小白的我看的有点懵&#xff0c;毕竟没实践过 链接地址→ http://t.csdn.cn/ZYtEF 这篇文章写了将近两万字对各…

mybatis-plus 缓存深入实践(二)

mybatis-plus 缓存&#xff08;一&#xff09;回顾、缓存&#xff08;二&#xff09;深入实践

3D测量之圆柱轴线直线度测量

视频演示效果 圆柱轴线直线度测量 零、效果图 一、目标 测量圆柱轴线的直线度误差&#xff1b; 二、测量方法–轴截面法[1] 本文主要是通过最小二乘法确定各截面中心坐标值。由各截面测得的实际中心构成测得中心线。按误差评定方法进行数据处理&#xff0c;求出轴线的直线度误…

启动es容器错误

说明&#xff1a;启动es容器&#xff0c;刚启动就停止&#xff0c;查看日志&#xff0c;出现以下错误信息&#xff08;java.lang.IllegalArgumentException: Plugin [analysis-ik] was built for Elasticsearch version 8.8.2 but version 7.12.1 is running&#xff09; 解决&…

【状态估计】基于UKF、AUKF的电力系统负荷存在突变时的三相状态估计研究(Matlab代码实现)

目录 &#x1f4a5;1 概述 &#x1f4da;2 运行结果 &#x1f389;3 参考文献 &#x1f308;4 Matlab代码及数据 &#x1f4a5;1 概述 基于UKF和AUKF的电力系统负荷存在突变时的三相状态估计研究是一种利用无迹卡尔曼滤波&#xff08;Unscented Kalman Filter, UKF&#xff09…

学习Dart语言---2023-07-23

环境搭建---windows Dart for WindowsDart installer for Windows. Installs the latest Dart SDK and Dartium.https://gekorm.com/dart-windows/选择标准版&#xff0c;下载安装&#xff0c;一直next 验证安装成功&#xff1a; IDEA中配置dart SDK 下载dart插件 创建dart文…