Spring boot

Spring 的一些技巧(1)

2020-12-09  本文已影响0人  三也视界

添加文件头注释

image.png

/**

端口被占用

Web server failed to start. Port 5088 was already in use.


image.png

使用cmd命令查看端口号占用情况,例如查看端口 5088,可以看出进程号为10944;

netstat -ano | findstr 端口号
image.png

关闭该进程

mac上是

lsof -i :端口号
image.png

方法一:使用任务管理器关闭:

菜单栏 -> 右键 - > 任务管理器 -> 详细信息,根据PID排序找到PID为10944的进程,选择后点击结束任务。


image.png

方法二: 使用命令关闭

命令:

taskkill -PID 进程号 -F
image.png image.png

mac上杀死进程命令为:

kill -9 进程号

springboot错误: 找不到或无法加载主类

cd 项目根目录,执行命令进行编译

mvn clean install 

Optional int parameter 'xx' is present but cannot be translated into a null value

Optional int parameter 'page' is present but cannot be translated into a null valuedue to being declared as a primitive type. Consider declaring it as object wrapper for the corresponding primitive type.
这句话解释了错误原因:page值可能为空
解决方法:可以用包装类,int的包装类为Integer ,int的默认值为0,若想能够接受NULL的值,将int换成integer即可解决

@RequestParam(value = "page", required = false) Integer page

问题解决。

乱码错误

之前建立项目是utf8,但是不知道怎么操作的application.yml有一次变成乱码,于是用GBK重载,注释的中文恢复了,但是执行代码发现报错

Caused by: org.yaml.snakeyaml.error.YAMLException: java.nio.charset.MalformedInputException: Input l
其实应该是文件的格式问题造成的解析错误,改变改文件的解析格式为utf8,或者新建一个application.yml文件覆盖,里面乱码的中文,重新输入即可。

SpringBoot 获取jar包所在目录路径

有时候我们非常需要获取当前运行的jar包的路径,Spring提供了一个ApplicationHome 用于简化这个操作。代码如下:

package me.kagura;
 
import org.springframework.boot.system.ApplicationHome;
 
public class Test {
    public static void main(String[] args) {
        ApplicationHome applicationHome = new ApplicationHome();
        //C:\Users\Administrator\IdeaProjects\demo\  项目运行jar所在目录
        System.err.println(applicationHome.getDir().getAbsolutePath());
        //C:\Users\Administrator\IdeaProjects\demo\Test.jar  项目运行jar所在目录
        System.err.println(applicationHome.getSource().getAbsolutePath());
    }
}

Caused by: java.lang.IllegalStateException: Failed to introspect Class from ClassLoader Caused by: java.lang.ClassNotFoundException: javax.servlet.Filter

image.png image.png
上一篇 下一篇

猜你喜欢

热点阅读