2024-05-25
编程与技术
00

springboot启动类剔除扫描某个包

java
// 排除api中不引数据库导致的报错包 @ComponentScan(excludeFilters = { @ComponentScan.Filter(type = FilterType.REGEX,pattern = "top.oldmoon.aop.log.service.*") })

通过该注解配置,可以实现剔除某个包,让Spring不自动扫描该包下的内容。

适用于依赖api或者其他包时,一些不必要或不支持的对象被扫描到,引发的报错或内存占用等问题。通过该配置可以去掉这些不必要的扫描。

2024-05-25
编程与技术
00

Java正则--地址结构化解析

java
public static Map<String, String> addressResolution(String address) { String regex = "(?<province>.*?自治区|.*?省|.*?行政区|.*?市)(?<city>.*?自治州|.*?地区|.*?行政单位|市辖区|.*?市)?(?<county>.*?市|.*?县|.*?区)?(?<village>.*)"; Matcher m = Pattern.compile(regex).matcher(address); String province, city, county, village; Map<String, String> row = null; while (m.find()) { row = new LinkedHashMap<>(); province = StringUtils.isNotBlank(m.group("province")) ? m.group("province").trim() : ""; row.put("province", StringUtils.isEmpty(province) ? address : province); city = StringUtils.isNotBlank(m.group("city")) ? m.group("city").trim() : ""; row.put("city", StringUtils.isEmpty(city) ? province : city); county = StringUtils.isNotBlank(m.group("county")) ? m.group("county").trim() : ""; row.put("county", StringUtils.isEmpty(county) ? city : county); village = StringUtils.isNotBlank(m.group("village")) ? m.group("village").trim() : ""; row.put("village", StringUtils.isEmpty(village) ? county : village); } if (row == null) { row = new LinkedHashMap<>(); row.put("village", address); } return row; } public static void main(String[] args) { System.out.println(addressResolution("山东省潍坊市昌邑市龙源国际小区")); }
2024-05-25
编程与技术
00

问题

通过传统的 form 表单提交的方式上传文件

html
<form id="uploadForm" action="" method="post" enctype="multipart/form-data">        <p>上传文件:<input type ="file" name="file"/></p>        <input type="submit" value="上传"/>   </form>

不过传统的 form 表单提交会导致页面刷新,但是在有些情况下,我们不希望页面被刷新,这种时候我们都是使用 Ajax 的方式进行请求的。

使用 serialize() 对 form 表单进行序列化提交

javascript
$.ajax({        url: "",        type: "POST",        data: $('#uploadForm').serialize(),        success: function(data) {           },        error: function(data) {      }   });

如上,通过 $('#uploadForm').serialize() 可以对 form 表单进行序列化,从而将 form 表单中的所有参数传递到服务端。

但是上述方式,只能传递一般的参数,上传文件的文件流是无法被序列化并传递的。不过如今主流浏览器都开始支持一个叫做 FormData 的对象,有了这个对象就可以轻松地使用 Ajax 方式进行文件上传了。

2024-05-25
编程与技术
00
java
public static boolean judgeIP(JTextField ipText, JFrame jf) { String ipAddress = ipText.getText(); String[] ip = ipAddress.split("\\."); if (ip.length != 4) { return false; } for (int i = 0; i < 4; i++) { int dress = 0; try { dress = Integer.parseInt(ip[i]); } catch (NumberFormatException e1) { return false; } if ((dress >= 0) && (dress <= 255)) { if (i == 3) { System.out.println("IP地址【" + ipAddress + "】合法"); return true; } } else { return false; } } return false; }
2024-05-25
编程与技术
00

前言

  1. 这个错误信息是从IDEA的日志中看到的,因为如果遇到这个错,IDEA控制台不会体现任何有用的错误日志,所以就只能看IDEA的日志了。
  2. 出现这个错误时,你的Gradle项目什么都干不了,就连clear都不行,执行main方法也不行。