开发踩坑纪实
- 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)













