SpringBoot
huayang183
不积跬步无以至千里
不积小流无以成江海
展开
-
Prefix must be in canonical form
prefix里面不能用驼峰写法,全部小写原创 2021-10-28 10:54:02 · 298 阅读 · 10 评论 -
springboot yml对于list列表配置方式
1、背景我们在使用@ConfigurationProperties(prefix = "system") 读取yml配置文件过程中会遇到读取yml文件中列表。如:yml文件设置访问白名单,Config里面使用List集合接收。方法比较简单。整理如下2、实现过程(“-”)yml文件 列表前都是‘ - ’ 加空格开头# 访问白名单system: whiteList: - /sso/auth/api - /swagger-ui - /webjars/springf原创 2021-10-28 10:51:43 · 3757 阅读 · 0 评论 -
Spring Bean的循环依赖解决方案
在字段上使用@Autowired注解,让Spring决定在合适的时机注入原创 2021-10-28 10:48:23 · 285 阅读 · 0 评论 -
反转map的key-value
// Map<外部订单号,出库单编号>Map<String,String> dnNumberMap=dnHeadService.generalDnNumberMap(dnSet);// Map<出库单编号,外部订单号>Map<String, String> outboundNumberMap = dnNumberMap.entrySet().stream().collect(Collectors.toMap(Map.Entry :: getValue,.原创 2021-10-28 10:46:51 · 808 阅读 · 0 评论 -
com.alibaba.fastjson.JSONException: can‘t create non-static inner class inst
在类修饰符前面加上static即可原创 2021-10-26 15:59:58 · 858 阅读 · 0 评论 -
Failed to load ApplicationContext
解决:Failed to load ApplicationContext一般按照如下步骤即可解决第一步:检查注解检查是否有如下注解@RunWith(SpringRunner.class)@SpringBootTest如果没有,添加依赖并补充注解<dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <versi...原创 2021-10-16 14:38:53 · 2258 阅读 · 0 评论 -
SpringBoot中的定时任务的同步与异步
SpringBoot中的定时任务的同步与异步你确定真的知道?授人以渔Java领域;架构知识;面试心得;互联网行业最新资讯定时任务调度功能在我们的开发中是非常常见的,随便举几个例子:定时清除一些过期的数据,定时发送邮件等等,实现定时任务调度的方式也十分多样,本篇文章主要学习各种实现定时任务调度方式的优缺点,以便为日后选择的时候提供一定的参考。本篇要点介绍Timer实现定时任务。 介绍ScheduledExecutorService实现定时任务。 介绍SpringBoot使用Sp..原创 2021-09-16 09:54:53 · 2852 阅读 · 0 评论 -
@Scheduled执行阻塞解决办法
问题还原:写了多了定时任务,但是部分任务一直不执行, 想起来多个函数上使用了@Scheduled,该定时任务默认使用单线程,从而导致了线程阻塞。解决办法: 方案一:使用@Async注解实现异步任务 @Async @Scheduled(cron="0 0/10 * * * ? ") //每10分钟执行一次注意:Application主类要开启 @EnableAsync 注解 方案二:配置线程池import org.springframework...原创 2021-09-16 09:51:00 · 1420 阅读 · 0 评论 -
Spring定时任务@scheduled多线程的使用(@Async注解)
1.开篇在Spring定时任务@Scheduled注解使用方式浅窥这篇文章里面提及过,spring的定时任务默认是单线程的,他在某些场景下会造成堵塞,那么如果我们想让每一个任务都起一条线程去执行呢?2.使用@Async我们可以使用Spring的@Async注解十分容易的实现多线程的任务执行。测试代码:@Scheduled(cron = "0/2 * * * * ?") @Async public void doTask() throws InterruptedExcept原创 2021-09-16 09:49:29 · 2219 阅读 · 0 评论 -
List的Stream流操作
Stream流Stream 中文称为 “流”,通过将集合转换为这么一种叫做 “流” 的元素序列,通过声明性方式,能够对集合中的每个元素进行一系列并行或串行的流水线操作。函数式编程带来的好处尤为明显。这种代码更多地表达了业务逻辑的意图,而不是它的实现机制。易读的代码也易于维护、更可靠、更不容易出错。面对一对多结构,查询主实体时需要附带主实体的子实体列表怎么写?查出主列表,循环差子列表List的Stream流操作可以简化我们的代码,减少程序运行的压力,应对上面的问题,以前的话是先查出对应的lis原创 2021-09-11 23:25:23 · 1006 阅读 · 0 评论 -
Java判断字符串的数字类型(小数、整数)
java判断数字类型是否为小数,可以采用正则表达式的方式来判断,以下是使用正则表达式来判断数字类型是否为小数的代码: public void checkNumber(String str) { if(null == str || "" == str){ System.out.println("字符串为空"); } boolean int_flag = Pattern.compile("^-?[1-9]\\d*$").matcher(str).find.原创 2021-09-11 23:23:01 · 2427 阅读 · 0 评论 -
Java Break和continue实现goto功能
continue实验 1 public class test { 2 static int i =0; 3 public static void main(String[] args) { 4 lable1: 5 while(true){ 6 7 if(i == 6){ 8 System.out.printl...原创 2021-09-08 10:04:04 · 397 阅读 · 0 评论 -
Java中判断字符串是否为数字
使用org.apache.commons.langStringUtils.isNumeric(null) = falseStringUtils.isNumeric("") = trueStringUtils.isNumeric(" ") = falseStringUtils.isNumeric("123") = trueStringUtils.isNumeric("12 3") = falseStringUtils.isNumeric("ab2c") = falseStringUtil.原创 2021-09-08 10:02:38 · 212 阅读 · 0 评论 -
SpringBoot工程不注册到Eureka上
本地调试SpringBoot工程时,因为服务会注册到dev环境上的Eureka上,导致其他人调用服务失败,因此在本地调试时可以不用将服务注册上去。而实现这个只需要在application.yml中增加一个配置: 1 2 3 eureka: client: register-with-eureka:false ...原创 2021-09-08 10:01:02 · 2045 阅读 · 0 评论 -
一次SpringBoot AutoWired 注入服务为null的事件
问题表述:java.lang.NullPointerException at com.ynd.back.socket.WebSocket.onMessage(WebSocket.java:113) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun原创 2021-09-01 18:51:40 · 301 阅读 · 0 评论 -
在JAVA中把JSON数据格式化输出到控制台
packagecom.test.jsonUtility; /** * @author * @date 创建时间:2017年10月17日 上午11:11:42 * @version 1.0 * @parameter * @since * @return * @throws */ publicclassJson { privatestaticString...原创 2021-08-31 10:01:25 · 643 阅读 · 0 评论 -
@PropertySource和@ConfigurationProperties
@ConfigurationProperties(prefix=”author”) 没有指定classpath时,IDEA提示没有找到classpath。在浏览器中访问的结果是null 0是由于在没指定路劲的情况下,默认在resource下的applications.properties中查找,如果找到则返回值,如果没有找到则返回默认值null/0/false…分析出现spring boot Configuration Annotation Proessor not found in c...原创 2021-08-28 11:04:55 · 263 阅读 · 0 评论 -
Could not connect to SMTP host: smtp.qq.com, port: 465, response: -1 clojure邮箱发送
错误描述:465端口是为SMTPS(SMTP-over-SSL)协议服务开放的,这是SMTP协议基于SSL安全协议之上的一种变种协议,它继承了SSL安全协议的非对称加密的高度安全可靠性,可防止邮件泄露所有要开启SSL解决办法:修改端口号为587...原创 2021-08-28 11:00:47 · 1491 阅读 · 0 评论 -
关闭eureka注册中心
在applicatioon.properties文件中,配置如下代码即可eureka.client.register-with-eureka=falseeureka.client.fetchRegistry=falseeureka.client.server.waitTimeInMsWhenSyncEmpty=0原创 2021-08-28 10:59:26 · 972 阅读 · 0 评论 -
java.lang.NoClassDefFoundError: javax/mail/internet/AddressException解决
添加依赖<dependency> <groupId>javax.mail</groupId> <artifactId>mail</artifactId> <version>1.4.7</version> </dependency>原创 2021-08-28 10:57:54 · 734 阅读 · 0 评论 -
2.1.9的mybatis-plus-boot-starter,无法使用QueryWrapper
用EntityWrapper原创 2021-08-28 10:44:37 · 1005 阅读 · 0 评论 -
使用Spring Boot发送邮件
pom包配置<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId></dependency>配置文件#163邮箱配置spring.mail.host=smtp.163.com #邮箱服务器地址spring.mail.username=xxx.163....原创 2021-08-28 10:43:33 · 161 阅读 · 0 评论 -
springBoot框架方法上面添加@Transactional注解的使用
@Transactional如果在一个方法上面添加@Transactional注解查看postgresql数据库当前的事务隔离级别: @Transactionalpublic void updateData(){ aService.updateA();//更新A表 bService.updateB();//更新B表 cService.updateC();//更新C表}假设,如果每一个service只会对应的更新他所对应的这张表,下面这三个方法上面加不加.原创 2021-08-19 14:25:16 · 1342 阅读 · 0 评论 -
restTemplate请求,报 : No instances avaliable for ip地址
原因:restTemplate加上负载均衡注解后,就会去注册中心寻找服务. 因为是第三方的服务,所以当然报找不到实例; 解决:重新注入一个restTemplate bean; 修改名称,然后获取这个restTemplate去调用第三方接口#启动类增加@Bean(name="remoteRestTemplate") public RestTemplate restTemplate() { return new RestTemplate(); }#调用类注入 @Autowir.原创 2021-08-16 17:43:51 · 582 阅读 · 0 评论 -
Java NPOIFSFileSystem.getRoot方法代碼示例
import org.apache.poi.poifs.filesystem.NPOIFSFileSystem; //導入方法依賴的package包/類public void execute(String fileName, JOfficeFrame jOfficeFrame) throws FileNotFoundException, IOException { NPOIFSFileSystem fs = new NPOIFSFileSystem(new File(fileName.原创 2021-08-14 18:07:59 · 553 阅读 · 0 评论 -
电子商务网站中订单号设计规则和依据
作者:ben ben链接:https://www.zhihu.com/question/19805896/answer/37150071来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。订单命名的几种规则:1、不重复。这点我相信大家都懂,订单的唯一性不用解释。2、安全性。你的订单编号不能透露你公司的真实运营信息,比如你的订单就是流水号的话,那么别人就可以从订单号推测出你公司的整体运营概括了。所以订单编码必须是除了你们公司少部分人外,其他人基本看不懂的。参考京.原创 2021-08-14 17:58:27 · 858 阅读 · 0 评论 -
Mybatis之执行自定义SQL举例
本文说明如何使用Mybatis执行我自定义输入的SQL语句。需要的mybaits文件包括:配置文件(mybatis-config-dao.xml 和 jdbc.properties)、接口文件(ISqlMapper.class)、xml文件 (sqlMapper.xml)、工具类(MybatisUtils.class)。依赖包: 1 <dependency> 2 <groupId>org.mybatis</groupI原创 2021-08-13 21:54:30 · 3873 阅读 · 0 评论 -
Spring-cloud Config Server 3种配置方式
1、config 默认Git加载通过spring.cloud.config.server.git.uri指定配置信息存储的git地址,比如:https://github.com/xxx/config-repo2、加载本地开发环境spring.profiles.active=nativespring.cloud.config.server.native.searchLocations=classpath:/config3、加载 本地物理环境spring.profiles.active=nati原创 2021-08-12 10:09:49 · 623 阅读 · 0 评论 -
Stream将List转换为Map
背景:User类,类中分别有id,name,age三个属性。List集合,userList,存储User对象1、指定key-value,value是对象中的某个属性值。Map<Integer,String> userMap1 = userList.stream().collect(Collectors.toMap(User::getId,User::getName));2、指定key-value,value是对象本身,User->User 是一个返回本身的lambda表达式.原创 2021-08-06 17:42:26 · 654 阅读 · 0 评论 -
springboot设置响应状态码
@RequestMapping("/oauth/token") public ResponseEntity<Object> token(@RequestParam(value="grant_type",required=false)String grant_type, @RequestParam(value="client_id",required=false)String client_id, @RequestParam(value=".原创 2021-08-05 09:52:29 · 1769 阅读 · 0 评论 -
resttemplate发送post请求
/** * 向目的URL发送post请求 * @param url 目的url * @param params 发送的参数 * @return ResultVO */ public static ResultVO sendPostRequest(String url, MultiValueMap<String, String> params){ RestTemplate client = new R..原创 2021-08-04 09:53:23 · 5846 阅读 · 0 评论 -
Could not find acceptable representation
引起的原因: 由于设置了@ResponseBody,要把对象转换成json格式,缺少转换依赖的jar包,故此错。解决办法:1 <dependency>2 <groupId>org.codehaus.jackson</groupId>3 <artifactId>jackson-core-asl</artifactId>4 </dependency>...原创 2021-08-03 11:12:36 · 164 阅读 · 0 评论 -
SpringCloud Config手动刷新及自动刷新
1、Config手动刷新a、使用@RefreshScope注解import org.springframework.beans.factory.annotation.Value;import org.springframework.cloud.context.config.annotation.RefreshScope;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.w原创 2021-07-31 19:03:06 · 339 阅读 · 0 评论 -
SpringBoot使用@Transactional
今天在写添加用户时发现一个问题,现进行总结,以后遇到事务的相关问题会继续补充。业务:新增用户时,需要对用户详细信息进行保存USER表,还要对用户的角色进行保存USER_ROLE表(一对多)。此时就需要对新增用户进行事务控制,避免二者不能同时更新成功。项目采用SpringBoot+MybatisSpringBoot不用单独的去配置事务管理,使用@Transactional即可,但是在service层方法上加上@Transactional后发现事务并没有生效。代码如下:此时新增用户.原创 2021-07-31 19:01:25 · 1959 阅读 · 0 评论 -
springBoot项目启动去掉多余的启动日志
springBoot项目启动去掉多余的启动日志:因为在 LoggingApplicationListener 中设置了项目的日志等级为 level ,在项目的yml文件中添加一行代码logging.level.org.springframework.boot.autoconfigure: error关闭这个设置就OK了...原创 2021-07-31 18:59:30 · 3401 阅读 · 0 评论 -
lombok 下的@Builder注解用法
pom依赖<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>0.10.2</version> </dependency>java~lombok里的Builder注解lombok注解在j...原创 2021-07-29 09:54:54 · 258 阅读 · 0 评论 -
双token刷新、续期,access_token和refresh_token实效如何设置
双token刷新、续期,access_token和refresh_token实效如何设置token认证,生成的token 过一段时间就会失效(不要故意把时间设的很长,这样不安全,token变得毫无意义!),用户需要重新登录获取token。用户经常使用客户端,使用过程中 由于token到期 客户端跳转到登录界面要求登录,这样体验极差!比如: token有效期2h,用户一直在使用客户端,使用过程中token到期跳转到登录页面邀请重新登录。第一次忍了,过了2个小时又要重新登录! 用户:MDZZ,再见。为了原创 2021-07-29 09:55:08 · 2248 阅读 · 0 评论 -
Spring Cloud OAuth2 实现用户认证及单点登录
OAuth 2 有四种授权模式,分别是授权码模式(authorization code)、简化模式(implicit)、密码模式(resource owner password credentials)、客户端模式(client credentials),具体 OAuth2 是什么,可以参考这篇文章。(http://www.ruanyifeng.com/blog/2014/05/oauth_2_0.html)本文我们将使用授权码模式和密码模式两种方式来实现用户认证和授权管理。OAuth2 其实是原创 2021-07-29 09:56:05 · 2762 阅读 · 1 评论 -
JasperReport报表设计总结
1)定制报表格式。 有二种方式,一种就是写jrxml文件,其实就是xml文件,只不过是后缀名不一样罢了。另一种方式更直接,就是生成一个JasperDesign类的实例,在japsperDesign中自己定义模板。jrxml文件也是通过一个JRXmlLoad加载过来,转成JasperDesign类的实例。也就是说写jrxml文件还需要进行解析,加载。现实中我们使用的报表一般格式比较固定,因而可以通过先使用iReport工具生成模板,再加载解析的方式。这种方式简单,而且可见性强。2)填充数据。 在最新版(2..原创 2021-07-28 10:09:38 · 513 阅读 · 0 评论 -
ireport导出文件工具类
package com.ntocc.util.ireport;import com.ntocc.config.RDSConnection;import net.sf.jasperreports.engine.*;import net.sf.jasperreports.engine.export.*;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.stereotype.Compo.原创 2021-07-28 10:09:58 · 217 阅读 · 0 评论