开发踩坑纪实
- 1 npm安装
- 1.1 查看当前的npm镜像设置
- 1.2 清空缓存
- 1.3 修改镜像
- 1.4 查看修改结果
- 1.5 重新安装vue
- 2 VScode——NPM脚本窗口找不到
- 3 springboot项目中updateById()失效
- 4 前端跨域
- 4.1 后端加个配置类
- 4.2 @CrossOrigin注解
- 5 路由出口
- 6 springdoc openapi3 swagger3文件上传
- 7 连接mysql时出现[HY000][1130] null, message from server: “Host ‘‘ is not allowed报错
- 8 Nacos2.2.3 启动成功但访问空白
- 9 ERROR StatusLogger Log4j2 could not find a logging imple mentation. Please add log4j-core to the classpath. Using SimpleLogger to log to the console...
- 10 mapper.xml在pom文件中打包后找不到数据源配置了
- 11 Refused to execute script from because its MIME type ('text/html') is not executable, and strict MIME type checking is enabled
- 12 Nacos Whitelabel Error Page 503
- 13 Mybatis-Plus代码生成器
1 npm安装
npm报错:request to https://registry.npm.taobao.org failed, reason certificate has expired
其实,早在2021年,淘宝就发文称,npm淘宝镜像已经从registry.npm.taobao.org切换到了registry.npmmirror.com。旧域名也将于2022年5月31日停止服务(不过,直到今天HTTPS证书到期才真正不能用了)
解决方案
1.1 查看当前的npm镜像设置
npm config list
1.2 清空缓存
npm cache clean --force
1.3 修改镜像
npm config set registry https://registry.npmmirror.com
1.4 查看修改结果
1.5 重新安装vue
npm install -g @vue/cli #需要管理权限
vue3官网推荐在项目目录下执行:
npm create vue@latest
2 VScode——NPM脚本窗口找不到
设置→User→Extensions→Npm→勾选Enable Run From Folder
点击项目右上角的...,勾选NPM Scripts
3 springboot项目中updateById()失效

实体类继承自公共实体类BaseEntity,并将主键id放进去了,service方法调用getById正常,但是调用updateById时,传入一个json实体却获取不到id,这时,在id上添加注解:@JsonProperty("id")
@JsonProperty(“id”) //入参转换,为解决前端传入的json包无法接收
@JsonFiels(name = “id”) //出参转换
4 前端跨域
http://127.0.0.1:8001/admin/edu/teacher/list/1/5’ from origin ‘http://localhost:9528’ has been blocked by CORS policy: Response to preflight request doesn’t pass access control check: No ‘Access-Control-Allow-Origin’ header is present on the requested resource.

4.1 后端加个配置类
@Configuration
public class CorsConfig implements WebMvcConfigurer {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
.allowedOriginPatterns("*") // 允许跨域的域名,*代表任何域名
.allowedMethods("GET", "POST") // 允许的方法
.allowedHeaders("*") // 允许任何请求头
.allowCredentials(true) // 允许cookies
/*.exposedHeaders(HttpHeaders.of("SET_COOKIE",fie))*/.maxAge(3600L);
}
}
4.2 @CrossOrigin注解
也可以在Controller上添加该注解
5 路由出口
如果路由指向的页面组件是同一个,那么路由出口显示的页面组件不会重新渲染
为使重新渲染,需要为路由出口定义一个唯一key值
6 springdoc openapi3 swagger3文件上传
OpenAPI Specification - Version 3.1.0 | Swagger
#Considerations for File Uploads
In contrast with the 2.0 specification, input/output content in OpenAPI is described with the same semantics as any other schema type.
fileIn contrast with the 3.0 specification, the keyword has no effect on the content-encoding of the schema. JSON Schema offers a keyword, which may be used to specify the for the schema. The keyword supports all encodings defined in RFC4648, including “base64” and “base64url”, as well as “quoted-printable” from RFC2045. The encoding specified by the keyword is independent of an encoding specified by the header in the request or response or metadata of a multipart body – when both are present, the encoding specified in the is applied first and then the encoding specified in the header.
formatcontentEncodingContent-EncodingcontentEncodingcontentEncodingContent-TypecontentEncodingContent-TypeJSON Schema also offers a keyword. However, when the media type is already specified by the Media Type Object’s key, or by the field of an Encoding Object, the keyword SHALL be ignored if present.
contentMediaTypecontentTypecontentMediaType
原来的写法:
public void upload(@RequestParam("file") MultipartFile file){}
3.0版本的写法:
public void upload(
@RequestBody(
content = @Content(
mediaType = "multipart/form-data",
schema = @Schema(type = "object"),
schemaProperties = {
@SchemaProperty(
name = "file",
schema = @Schema(
type = "string",
format = "binary"))
}
)
) MultipartFile file){}
7 连接mysql时出现[HY000][1130] null, message from server: “Host ‘‘ is not allowed报错
出现这个问题先考虑端口3306是否开通,如果开通还出现报错则开始下一步
解决这个问题有个很简单的方法就是先进入mysql然后命令
use mysql
update user set host='%' where user='root';
然后通过命令
GRANT ALL ON *.* TO 'root'@'%';
FLUSH PRIVILEGES;
8 Nacos2.2.3 启动成功但访问空白
修改conf/application.properties文件
### If turn on auth system:
nacos.core.auth.enabled=true
### Since 1.4.1, worked when nacos.core.auth.enabled=true and nacos.core.auth.enable.userAgentAuthWhite=false.
### The two properties is the white list for auth and used by identity the request from other server.
#用户名
nacos.core.auth.server.identity.key=nacos
#密码
nacos.core.auth.server.identity.value=nacos
### The default token (Base64 String):
nacos.core.auth.plugin.nacos.token.secret.key=SecretKey012345678901234567890123456789012345678901234567890123456789
9 ERROR StatusLogger Log4j2 could not find a logging imple mentation. Please add log4j-core to the classpath. Using SimpleLogger to log to the console…
添加依赖
<!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-api -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>2.0.13</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-core -->
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.23.1</version>
</dependency>
问题源自于easyexcel
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>3.3.4</version>
</dependency>
10 mapper.xml在pom文件中打包后找不到数据源配置了
mapper.xml文件在src/main/java/mapper/xml中,
在pom文件中添加了打包
<build>
<!-- 项目打包时会将java目录中的*.xml文件也进行打包 -->
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.*</include>
</includes>
<filtering>false</filtering>
</resource>
</resources>
</build>
但是添加后,application.yml就变红了,运行报错
Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured.
尝试把resoources下的application.yml也打包到maven里,成功了。
<build>
<!-- 项目打包时会将java目录中的*.xml文件也进行打包 -->
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
<filtering>false</filtering>
</resource>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.yml</include>
</includes>
<filtering>false</filtering>
</resource>
</resources>
</build>
看来maven默认是都打包,但是如果我自定义的话就要全都定义了。
11 Refused to execute script from because its MIME type (‘text/html’) is not executable, and strict MIME type checking is enabled
每次打开前端,控制台都会报错,虽然不影响运行……
Refused to execute script from 'http://localhost:8080/something/index_bundle.js' because its MIME type ('text/html') is not executable, and strict MIME type checking is enabled.
某度某应都试过了,无果。在StackOverflow搜索了下,方案:
Your webpack config is malformed. So your devServer is returning the fallback html file instead of the bundle.
Hence why the script is served with the (‘text/html’) MIME type.
devServer: {
historyApiFallback:{
index:'/dist/index.html'
},
}
You probably meant something like this:
devServer: {
historyApiFallback: true
}
前端的工程只找到了webpack.dev.conf.js,果然有这一行,修改后,成功解决。
12 Nacos Whitelabel Error Page 503
Whitelabel Error Page
This application has no configured error view, so you are seeing this as a fallback.
Tue May 21 04:01:08 CST 2024
[9b38c884-1] There was an unexpected error (type=Service Unavailable, status=503).
用了负载均衡,控制台一路绿灯过去的,页面就是刷不出来,恼火。
查得,Nacos在2021版本起就删除了Ribbon的包,需要引入springcloud-loadbalancer
所以,依赖应该这么引:
<!-- nacos -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<!-- loadbalancer -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-loadbalancer</artifactId>
</dependency>
13 Mybatis-Plus代码生成器
Spring Boot (v3.2.5)
mybatis-plus-generator (v3.5.6)
Mybatis-Plus代码生成器配置





![[实例] Unity Shader 逐像素漫反射与半兰伯特光照](https://img-blog.csdnimg.cn/direct/0098a63f439043e5b5920a77726734df.gif)













