![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
文章平均质量分 55
我辈岂是蓬蒿人225
青梅煮酒
展开
-
SpringBoot项目没有RunWith注解
在使用SprintBoot项目写JunitTest类时,在类名上添加RunWIth注解发现找不到引用,原因在于SpringBoot2.2以后不再需要RunWith’注解,并且@SpringBootTest注解不需要在写classpath。原创 2022-11-23 11:26:55 · 1071 阅读 · 1 评论 -
IDEA安装lombok插件以及解决无法加载Marketplace的方法
如果Java项目中用到了lombok的jar包以及自动生成getter setter的注解,就需要在IDEA中安装lombok插件才行,不然会发现所有使用注解的Javabean的getter setter方法都会报红。虽然不影响项目运行和打包,但是开发的时候,你是无法点出getter setter方法的。那么如何安装呢,以IntelliJ IDEA 2020.1为例:首先打开File->Settings:找到左侧的Plugins,点击,会出现右侧的界面。如果你发现右侧加载不出来,一直在原创 2021-05-25 10:59:24 · 1519 阅读 · 2 评论 -
Java源码解读系列之Java8Lambda表达式详解
在介绍流(Stream)时,我们提到过Lambda表达式,当时只是就写法做了一个粗浅的解释。本文展开讲一讲关于Lambda表达式的一二事。在介绍Lambda表达式之前,需要提到一个叫做Functional Interface的概念,中文名叫函数式接口:首先它是一个接口,其次它的特点是只有一个抽象方法。那么为什么讲Lambda要说它呢?首先Lambda表达式其实是一种语法糖。语法糖在Vue中也有提到过,本质上来说,就是一个为了方便程序员编写代码的简写,通过规定好的格式,可以用更少的代码、更简洁的方原创 2021-05-07 15:27:39 · 354 阅读 · 0 评论 -
Java源码解读系列之Java8Stream(流)详解
Java8推出了Stream流的新特性,让开发者可以用声明式的方法操作集合,无需再进行循环遍历。流使用起来方便快捷,同时,开发者肯定也会好奇流到底是个什么东西?为什么可以用lambda表达式就能将以前复杂的统计筛选等功能简单优雅地表达出来?这篇文章笔者就来尝试着从源码的角度剖析一下Stream。打开Stream类,可以看到类注释有很长一段,咱们分段来进行解读:第一句话解释了Stream是一个支持顺序和并行聚合操作的一串元素。然后给出了这么一个例子: int sum = widg原创 2021-04-27 15:02:42 · 538 阅读 · 0 评论 -
Java实现Excel导出
工作中需要用到导出Excel功能,传统的方法比较复杂,不好修改。这里介绍一种封装好的工具类写法,只需要设置好实体类,用注解的方式写好对应的列名,再传入从数据库查出的数据集合就可以导出。先来介绍代码,如果不想看的同学可以直接点击下载链接,里面有所有相关代码。首先pom引入jar包: <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</arti原创 2021-04-27 11:00:37 · 584 阅读 · 2 评论 -
SpringBoot配置MongoDB双数据源
项目中需要在访问两个数据库,这时候需要用到配置双数据源的写法,这里简单介绍一下对于MongoDB该怎么写。先配置application.yml:spring: data: mongodb: primary: uri: mongodb://localhost:27017/tp secondary: uri: mongodb://localhost:27017/detect然后写一个抽象类AbstractMongoConfig:原创 2021-04-26 16:48:40 · 1055 阅读 · 0 评论 -
Failed to execute goal org.apache.maven.plugins:maven-resources-plugin Mark invalid
解决方案,在pom.xml的plugin标签下的maven-resources-plugin里加入maven-filtering依赖,完整代码如下: <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-resources-plugin</artifactId> <version>2.7</v原创 2021-04-15 11:12:44 · 430 阅读 · 0 评论 -
have started a thread named [spring.cloud.inetutils] but has failed to stop it
先说解决方案,看看你写的serviceImpl和daoImpl里有没有加@Component注解,没有的话加上,解决问题。马失前蹄,这次的错误真的是太低级了。SpringBoot项目无论如何都启动不了,总报错:The web application [xx] appears to have started a thread named [cluster-ClusterId{value='60768d464970c146080d3707', description='null'}-localho原创 2021-04-14 15:32:42 · 6743 阅读 · 0 评论 -
OTS parsing error: Failed to convert WOFF 2.0 font to SFNT
SpringBoot项目启动后,访问页面发现字体图标不显示,打开控制台看到如下报错Failed to decode downloaded font: URLOTS parsing error: incorrect file size in WOFF header Failed to decode downloaded font: URLOTS parsing error: incorrect entrySelector for table directoryOTS parsing erro原创 2021-04-13 14:59:09 · 3075 阅读 · 0 评论 -
Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:test (default-test)
Maven打包时报错导致无法继续,解决方案如下:在pom.xml中加入 <build> <plugins> <plugin> <artifactId>maven-surefire-plugin</artifactId> <configuration> <skipTests>true</skipTests> &l原创 2021-04-07 11:15:14 · 148 阅读 · 0 评论 -
IDEA中提交代码,新文件不在列表里
这是因为第一次新建文件的时候,会弹出提示框,可能你自己没在意,勾选了不添加到版本控制,并勾上了Don't ask me,导致了以后新建的文件都无法在IDEA内提交代码时显示。修改方法很简单:File->Settings->Version Control->Confirmation->When file are created->Add silently。就可以自动添加新文件到版本控制中了。同时右边的When file are deleted也可以勾上Remove原创 2021-04-07 09:09:41 · 3341 阅读 · 1 评论 -
SpringBoot使用JUnit框架书写单元测试
一个健壮的代码,不仅需要逻辑清晰、书写简洁、适当注释,还要具有可扩展性、可维护性、可复用性。其中好的单元测试是必不可少的,这是程序员对代码的自测,是代码质量的保障。当代码后期维护时,如果有一套很周全的单元测试,就可以知道修改后的代码,是否还能通过单元测试,从而保证程序员不会“写出“bug。这里介绍一下,如何在SpringBoot中使用JUnit框架书写单元测试。首先需要在pom.xml中引用测试框架: <dependency> <groupId>org.sprin原创 2021-03-25 14:59:40 · 230 阅读 · 0 评论 -
SpringBoot启动报错Could not resolve placeholder ‘XXX.XXX‘ in value
SpringBoot启动项目时报错:Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'msgReceiver': Injection of autowired dependencies failed; neste原创 2021-03-25 14:14:15 · 13865 阅读 · 0 评论 -
SpringBoot启动单元测试报错javax.websocket.server.ServerContainer not available
在运行SpringBoot单元测试时,出现以下报错Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'serverEndpointExporter' defined in class path resource [X原创 2021-03-25 13:29:57 · 7345 阅读 · 4 评论 -
IDEA无法打开Marketplace的解决方案
出现这个问题的原因可能是在下载安装IDEA之后HTTP Proxy没有进行相关配置,解决方式如下1.首先打开File->Settings->Appearance&Behavior->System Settings->HTTP Proxy,界面如下图勾选Auto-detect proxy settings,然后勾上Automatic proxy configuration URL,在后面的输入框中输入http://plugins.jetbrains.com,之后点击下原创 2021-01-12 10:45:16 · 6400 阅读 · 2 评论 -
SpringCloud org.apache.coyote.http11.Http11Processor : The host is not valid解决方法
工作中遇到在客户服务器上运行SpringCloud微服务时,启动报错SpringCloud org.apache.coyote.http11.Http11Processor : The host is not valid.java.lang.IllegalArgumentException: The character [_] is never valid in a domain name.查看日志发现域名变为了带下划线的英文,可能是在服务器上设置了域名映射的原因。只需要在项目配置文件ap.原创 2020-06-22 09:18:26 · 4357 阅读 · 0 评论 -
Windows开机自启动jar包
在Windows环境设置开机自启动jar包的核心思想就是把启动命令注册成一个服务,然后就可以设置开机自启动了。手写一个注册服务代码比较麻烦,可以借助线程的exe可执行文件来做。首先去https://github.com/kohsuke/winsw/releases下载WinSW软件下载最新版本红框内的两个文件。把这两个文件复制粘贴到jar包的同目录下,改成相同的名字,例如web-start等。修改xml文件,这里给个例子<service> <!-- ID o.原创 2020-06-02 10:32:14 · 10197 阅读 · 0 评论 -
Java使用itext7生成pdf文件并下载
首先需要引入itext7的jar包,如果是maven项目的话,在pom中加入 <dependency> <groupId>com.itextpdf</groupId> <artifactId>itext7-core</artifactId> <version>7.0.3</version> <type>pom</type> </dependency>Spri原创 2020-05-14 15:16:50 · 3664 阅读 · 0 评论 -
使用Spring-data-mongodbAPI对内嵌数组批量新增
假设有这样的数据结构{ _id:123 name:'张三', age:12, gender:'male', grades:[{ subject:数学, score:97 }, { subject:英语, ...原创 2020-04-21 16:54:03 · 439 阅读 · 0 评论 -
java发送post请求实现服务器间文件上传功能(转)
后台仿造提交文件,发送post请求到服务器实现文件上传/** * 测试上传图片 * */ public static void testUploadImage(){ String url = "http://xxxtest/Api/testUploadModelBaking"; String fileName = "e:...转载 2020-04-14 10:59:59 · 1395 阅读 · 2 评论 -
使用Spring-data-mongodbAPI对内嵌数组增删改
在对MongoDB数据进行操作时,难免碰到数据含有内嵌数组的情况,对内嵌数组进行增删改操作,会有些不同。假设有这样的数据结构{ _id:123 name:'张三', age:12, gender:'male', grades:[{ subject:数学, score:97 ...原创 2020-04-02 15:25:53 · 930 阅读 · 0 评论 -
Java实现word导出
poi导出word分为两种方式,一种为使用word模板,然后替换值,另一种为使用poi提供的api生成word。这里介绍后者。最后的效果图使用的maven依赖<dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId...原创 2019-12-11 09:18:28 · 618 阅读 · 0 评论 -
Java中运用MongoTemplate对MongoDB实现分组查询和联表查询
库里有两个Collection,分别为Student和Tests,存储学生信息和考试成绩信息。Student的Document:{ "_id" : ObjectId("5db6423241b19004100bb0cb"), "name" : "小霞", "age" : "11", "gender" : "女"},{ "_id" : ObjectId("5db6422141b...原创 2019-10-28 10:36:05 · 2792 阅读 · 4 评论 -
SpringBoot集成Quartz动态添加定时任务时Autowired为null的另一种解决方法
最近在做项目时,因为业务需要,得动态添加定时任务,在网上找了一些资料之后顺利集成。但是发现在Job实现类里Autowired自动注入dao时,dao为null,导致无法对数据库进行修改。遂又去网上搜索解决方案。后来找到两种,均未能成功。百思不得其解时,灵机一动,想起在别的项目中看过用ApplicationContext.getBean方法可以注入,试了一下,果然可行。写一个SpringCont...原创 2019-08-30 09:38:37 · 983 阅读 · 4 评论 -
Java中运用MongoTemplate对MongoDB实现增删改查以及聚合查询的使用
在Java中除了使用源生的方式操作MongoDB,还可以使用MongoTemplate封装类。首先pom中引入依赖 <dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-mongodb</artifac...原创 2019-08-30 15:13:48 · 2729 阅读 · 12 评论 -
递归遍历比较两个JSONObject是否一致
有时候需要比较两个JSONObject(com.alibaba.fastjson.JSONObject)是否一致,因为JSON对象有时候会有多层结构,其中会有JSONArray、JSONObject或者String,就牵扯到递归和判断下一层是何种类型以便调用不同的比较方法的问题,我的思路是使用try catch来试着getJSONArray,如果异常了,就在catch里再试着getJSONObje...原创 2019-09-12 15:39:41 · 4186 阅读 · 3 评论 -
前言中不允许有内容 JAVA解析xml文件时去掉bom头的方法
最近项目有了新需求,需要把指定目录下的xml文件解析成JSON字符串并存储到mongoDB中。我使用了org.dom4j的解析方法,在运行时发现报错:前言中不允许有内容。百度后得知是因为文件带bom头,解析的时候就会报错,需要去掉bom头。结果网上的方法让人啼笑皆非,用EditPuls来转换成无bom编码。我就纳闷了,难道项目运行时,还要人工一个个的去这样操作吗?肯定不行,得用java的方式去自动...原创 2019-09-11 10:50:15 · 3731 阅读 · 1 评论