本篇文章主要记录本人学习过程中的一些小干货。
Intellij IDEA 快速找到某个maven依赖所在的pom.xml
在企业开发中,公司项目各模块的依赖是比较复杂,往往是A模块中依赖了B、C、D…等模块,此时我们若想在A模块中查找某个jar依赖就会很麻烦,因为无法在A的pom.xml中直接搜索到。最笨的方法就是对A模块依赖的其他模块进行逐一搜索,但我想你并不想这么做。下面我通过一个实际的案例,来简单地谈谈 IDEA 如何快捷地找到相应的pom.xml。
进去依赖树后, Ctrl + F
搜索即可。
java.lang.IllegalStateException: Duplicate key问题解决方案
重定向携带数据
重定向一般携带的数据会丢失,我们一般使用的是
Model model
这样是不行的,我们可以使用 RedirectAttributes redirectAttributes
redirectAttributes.addFlashAttribute("xxx", xxx);
这样重定向就可以携带原来的数据了
Windows 端口被占用
netstat -aon|findstr "端口号"
然后会得到占用的 PID,到任务管理器去结束它。
tasklist|findstr PID # 查看是哪个进程占用了端口
关于重定向RedirectAttributes的用法
RedirectAttributes
是Spring mvc 3.1
版本之后出来的一个功能,专门用于重定向之后还能带参数跳转的的工具类
他有两种带参的方式:
第一种
redirectAttributes.addAttributie("param",value);
这种方法相当于在重定向链接地址追加传递的参数,例如:
redirectAttributes.addAttributie("param1",value1);
redirectAttributes.addAttributie("param2",value2);
return "redirect:/path/list";
以上重定向的方法等同于
return "redirect:/path/list?param1=value1¶m2=value2"
注意这种方法直接将传递的参数暴露在链接地址上,非常的不安全,慎用。
第二种
redirectAttributes.addFlashAttributie("param",value);
这种方法是隐藏了参数,链接地址上不直接暴露,但是能且只能在重定向的页面
获取 param
参数值。其原理就是放到 session
中,session 在跳到页面后马上移除对象。
如果是重定向一个 controller
中是获取不到该 param
属性值的。
除非在controller
中用(@RequestParam(value = "param") String param
)注解,采用传参的方式。
页面获值例如:
redirectAttributes.addFlashAttributie("param1",value1);
redirectAttributes.addFlashAttributie("param2",value2);
return "redirect:/path/list.jsp";
在以上参数均可在 list.jsp
页面使用 EL表达式
获取到参数值 ${param}
controller 获得重定向的值例如:
redirectAttributes.addFlashAttributie("param1",value1);
redirectAttributes.addFlashAttributie("param2",value2);
return "redirect:/path/list/";
@RequestMapping("/list")
public List<Student> list(@RequestParam(value = "param1") String param1,
@RequestParam(value = "param2") String param2,
...){
//TODO
//your code
}
spring cloud集成分布式事务中间件seata报错 not support register type: null
在启动集成 seata
的微服务时报错:
看了下发现,是我忘记把 seata
的两个配置文件复制到工程了,所以才报错
只要把 registry.conf
和 file.conf
复制到工程就可以了
class path resource[org/springframework/web/servlet/mvc/method/annotation/xxx.class
具体报错内容
nested exception is java.io.FileNotFoundException: class path resource[org/springframework/web/servlet/mvc/method/annotation/xxx.class] cannot be opened because it does not exist
问题原因
FileNotFoundException
这个错误是指找不到文件- 是因为少引入了依赖,所有会报错
个人解决办法
- 引入依赖
- 重新编译即可
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.2.8.RELEASE</version>
</dependency>
Spring Boot Configuration Annotation Processor not found in claspath
加入依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
renren-fast 莫名报java.lang.IllegalStateException: dbType not support : null, url null
尝试使用Lifecycle下的clean清空下本地缓存。
在提一个建议,可以在 renren-fast 的 pom 里边的 <parent>
标签里边加个<relativePath />
如果再报错,再把 <relativePath />
删掉。
如何解决IntelliJ在打包Maven项目时不打包配置文件
在pom文件中加上你的配置文件夹目录:
<build>
<resources>
<resource>
<directory>src/res</directory>
</resource>
</resources>
</build>
Notepad++查看、编辑二进制文件——安装附加组件HexEditor实现
Notepad++是一款功能强大的编辑器,单独安装的Notepad++不能查看和编辑2进制、16进制文件,只要安装名为HexEditor的插件就可以了,这里分享出来。
插件下载地址与安装
有以下几种方式,我用的第3种
1、打开软件,点击菜单栏窗口右边的问号,然后点击获取插件:
2、同样是在菜单栏,点击插件——Plugin Manager(即插件管理器)
里面有很多可选插件,找到HexEditor就可以
已经安装好的插件,在这里可以看到
3、去Notepad++的插件下载主页,地址: https://sourceforge.net/projects/npp-plugins/files/
下面是下载与安装步骤:
-
页面往下滑动,找到Hex Editor,单击打开
-
选择最新的版本,单击打开
-
进入页面后,选择HexEditor_0_9_5_UNI_dll.zip,单击就可以下载了。
-
下载解压后,就能看到插件了,选中插件,复制
-
找到自己安装的Notepad++的文件目录,打开plugins文件夹,然后粘贴
-
完成后,确认关闭Notepad++,重新打开软件就可以看到有了二进制查看模式 ,右上角的
H
-
单击这个按钮,你的文件就会显示成16进制格式了
-
最后,可以在插件的
options
中更改设置,具体的就不说了。
MyBatis Generator:[WARNING] Table Configuration users matched more than one table
如果使用 mysql-connector-java 8.x 版本,generator 会为MySql中信息数据库(sys, information_schema, performance_schema)的表生成代码,若要避免这种操作,请在 JDBC URL 中加入属性“nullCatalogMeansCurrent=true
”。
评论区