Spring Boot
文章平均质量分 54
LeoSong121
知识来源于分享
展开
-
Spring- 上传文件 MultipartFile.transferTo() 报错 FileNotFoundException
上传文件时,使用MultipartFile.transferTo()将文件保存到本地路径:报错:java.io.IOException: java.io.FileNotFoundException: C:\Users\XXXXX\AppData\Local\Temp\tomcat.8350081478984499756.8080\work\Tomcat\localhost\ROOT\app\file\xxxx.xlsx (系统找不到指定的路径。) @Override publ原创 2021-12-17 18:37:49 · 6977 阅读 · 1 评论 -
Springboot yml配置文件处理特殊字符
当我们使用yml配置文件时,有时候需要配置一些特殊字符会有问题,如:解决办法,增加单引号引入需要配置的内容:问题解决。原创 2021-03-31 18:55:35 · 3439 阅读 · 0 评论 -
SpringBoot 如何优雅处理- 自定义restful 404 Error
背景相信大家使用springboot开发的小伙伴,对下面两张截图都不陌生:但大多数解决自定义404 Not Found- application/json类型的时候,都是通过定义class HttpErrorHandler implements ErrorController,然后在application.properties 中添加两个配置:spring.mvc.throw-exception-if-no-handler-found=truespring.resources.add原创 2020-12-25 18:36:22 · 1507 阅读 · 0 评论 -
SpringBoot 踩坑笔记(二)
最近在做项目的时候,发现一些不存在的接口,经常会被转发到一个特定的地址(我这里被转发的是:"/api/v1/sendgrid",这个地址在项目是存在的)然后我打开了对应的controller,刚开始始终没有发现问题:/** * @author xxxx * @since 2020/4/21 17:24 sendgrid邮件控制器 */@RestController("/api/v1/sendgrid")public class SendGridController { @Aut原创 2020-05-09 17:49:25 · 240 阅读 · 0 评论 -
[Eclipse] 开发springboot项目 -- pom.xml第一行报错Unknown error
解决办法1:尝试将SpringBoot2.1.14.BUILD-SNAPSHOT版本降级到SpringBoot2.1.1.RELEASE版本,感觉这治标不治本啊,以后想升级不是玩完了。错误如下:解决办法2:在pom.xml 文件中的 properties 加入maven jar 插件的版本号。错误原因呢,报错是因为版本不兼容问题,将Maven的版本降到3.1.1就可以了,在po...原创 2020-03-20 18:01:59 · 1485 阅读 · 0 评论 -
SpringBoot - 启动时实现预加载自动执行代码
前言目前开发的SpringBoot项目在启动的时候需要预加载一些资源。而如何实现启动过程中执行代码,或启动成功后执行,是有很多种方式可以选择,我们可以在static代码块中实现,也可以在构造方法里实现,也可以使用@PostConstruct注解实现,当然也可以去实现Spring的ApplicationRunner与CommandLineRunner接口去实现启动后运行的功能。在这里整理一下,在...翻译 2020-02-25 16:52:16 · 5652 阅读 · 0 评论 -
Spring Security - 认证流程与搭建过程问题记录
用户认证的流程:Spring Security支持多种用户认证的方式,最常用的是基于用户名和密码的用户认证方式,其认证流程如下图所示:1. 为什么定义的成功处理地址defaultSuccessUrl没生效:如果自定义了用户认证成功处理器,则在Spring Security配置类中通过http.formlogin().defaultSuccessUrl(" URL")来指定的默认认证...原创 2019-12-27 16:42:17 · 370 阅读 · 0 评论 -
SpringBoot - @Autowired 注解注入规则
@Autowired - 注入默认根据类型,匹配不到则根据bean名字Spring中注解方式的默认beanName生成规则:在Spring中,当我们配置一个bean的时候,可以不指定name,这样的话,Spring会生成一个默认的beanName1. 驼峰形式类名首字母小写:UserService--userService2. 特殊情况--当类名的首字母和第二个字母是大写的时候,将...原创 2019-12-27 14:43:44 · 2102 阅读 · 0 评论 -
SpringBoot - 集成Jasypt(注意点)
关于Jasypt Jasypt是一个Java库,允许开发人员以很简单的方式添加基本加密功能,而无需深入研究加密原理。利用它可以实现高安全性的,基于标准的加密技术,无论是单向和双向加密。加密密码,文本,数字,二进制文件。一般可以将项目配置中敏感信息(如数据库密码,管理者密码,第三方账号密码等)使用Jasypt加密配置。官网:http://www.jasypt.org/Spri...原创 2019-12-27 14:21:45 · 1322 阅读 · 0 评论 -
Spring Security - 使用 Bcrypt 代替 MD5/SHA1
前言:如果数据库被“拖库”明文存储的密码就变得不安全。之前的做法是使用 md5 散列的方式,因为 md5 不可逆,无法从密文推出原文。MD5/SHA1为什么不安全:HASH 算法最大的问题是,会发生撞库,也就是说,有可能出现多个原文得到同一个密码。下面这个式子是存在的,如果原文是 M1,只需要另外一个同样 HASH 值的密码即可登录。MD5(M1) = MD5(M2) ...原创 2019-12-27 11:01:03 · 997 阅读 · 0 评论 -
Spring Security - @PreAuthorize安全表达式hasRole、hasAuthority区别
hasRole:角色授权:授权代码,在我们返回的UserDetails的Authority需要加ROLE_前缀,Controller上使用时不要加前缀;hasAuthority:权限授权:用户自定义的权限,返回的UserDetails的Authority只要与这里匹配就可以,这里不需要加ROLE_,名称保持一至即可另外的安全表达式还有:表达式 说明 per...原创 2019-12-20 15:01:40 · 11538 阅读 · 1 评论 -
SpringBoot 设置response header(全局设置和单独controller设置)
如果我们要在单个请求响应response增加header,可以使用httpServletResponse或者ResponseEntityobjects.UsingHttpServletResponseWe simply have to add theHttpServletResponseobject to our REST endpoint as an argument, th...原创 2019-10-10 17:38:10 · 40590 阅读 · 1 评论 -
SpringBoo 踩坑笔记(一)
问题描述: boot项目一直在我发送post API请求后重启。 问题总结:最近在做微信上传素材的接口,使用了spring的RestTemplate 发送请求,但是媒体文件必须使用File 类型发送。所以必须要将controller得到的MultipartFile 类型转为File类型。但是转换的过程是,只有一种生成临时文件的解决办法,multipar...原创 2018-12-28 19:58:39 · 298 阅读 · 0 评论 -
springboot + mybatis出现was not registered for synchronization because synchronization is not active
springboot + mybatis plus + druid进行数据库交互,出现以下提示:Creating a new SqlSessionSqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@77a86d01] was not registered for synchronization because sy...原创 2019-05-06 18:40:35 · 82538 阅读 · 9 评论 -
SpringBoot日志,默认日志问题
默认情况下,Spring Boot会用Logback来记录日志,并用INFO级别输出到控制台。在运行应用程序和其他例子时,你应该已经看到很多INFO级别的日志了。从上图可以看到,日志输出内容元素具体如下: 时间日期:精确到毫秒 日志级别:ERROR, WARN, INFO, DEBUG or TRACE 进程ID 分隔符:--- 标识实际日志的开始...原创 2019-07-05 15:50:38 · 947 阅读 · 0 评论 -
form-data和x-www-form-urlencoded请求的参数
对multipart/form-data请求的参数处理,是先上传文件,再获取参数的。因为multipart/form-data本身就是可以把文件当参数上传的,可能是考虑到缓存或者方便处理文件类型的参数,所以采用了临时文件的处理方式。对application/x-www-form-urlencoded请求参数的处理对application/x-www-form-urlencoded...翻译 2019-07-16 17:04:04 · 3954 阅读 · 0 评论 -
RestTemplate uriVariables 怎么使用详解
参数是url路径上,如:http://www.xxx.com/users/{id}/kids/{name}。此时使用restTemplate.getForObject可以写成String url = "http://www.xxx.com/users/{id}/kids/{name}";Map<String, Object> resultMap = restTemplate.ge...原创 2019-07-16 17:59:55 · 22133 阅读 · 1 评论 -
AES对称加密,Linux系统报错javax.crypto.BadPaddingException: Given final block not properly padded. Such issue
之前写了个aes 加密和解密的算法,本来在windows调试一直没有出现问题,部署到Linux确报错:javax.crypto.BadPaddingException: Given final block not properly padded. Such issues can arise if a bad key is used during decryption. at java.ba...原创 2019-07-22 17:51:37 · 1483 阅读 · 0 评论 -
Springboot2配置FastJsonHttpMessageConverter不生效,FastJsonHttpMessageConverter返回类型字符串String中文乱码问题
com.dreamer.core.converter.FastJsonJsonpHttpMessageConverter@75652058org.springframework.http.converter.ByteArrayHttpMessageConverter@30fa29eforg.springframework.http.converter.StringHttpMessageConverter@7749f8a4org.springframework.http.converter.Resour原创 2019-07-26 14:43:19 · 6388 阅读 · 0 评论 -
SpringBoot 默认日志和自定义日志配置
默认情况下,Spring Boot会用Logback来记录日志,并用INFO级别输出到控制台。在运行应用程序和其他例子时,你应该已经看到很多INFO级别的日志了。默认的输出格式:2018-08-21 14:34:19.788 INFO 6384 --- [ restartedMain] o.s.j.e.a.AnnotationMBeanExporter : Unregi...原创 2019-07-23 14:24:28 · 437 阅读 · 0 评论 -
[前后端分离] 前端发送跨域API请求,每次访问会发送两次请求OPTIONS问题
最近在做前后端分离的项目,项目部署到azure后,发现前端访问后端API的时候,每次都会发送两次请求第一次是OPTIONS的请求,然后才是正常的请求,。这个问题十分有意思。查阅资料得到的结论是:第一个OPTIONS的请求是由Web服务器处理跨域访问引发的。OPTIONS是一种“预检请求”,浏览器在处理跨域访问的请求时如果判断请求为复杂请求,则会先向服务器发送一条预检请求,根据服务器...原创 2019-08-28 16:15:58 · 5812 阅读 · 0 评论 -
log4j2配置日志打印时区
在项目开发遇到一个关于系统时区的问题,因为服务器使用的国外的服务器,时区统一设置不方便(反正是云架构师说的),但是对于系统的业务又需要使用中国时区,所以日志,还是后端代码都要使用中国时区。后端代码有很多方法设置时区,对于日志设置时区,网上资料比较少,然而我在stack overflow还是找到了。亲测有效的,配置如下:<!--log4j2 配置timezone --><...原创 2019-10-08 11:26:27 · 3065 阅读 · 0 评论 -
Spring-Boot启动方式及部署
前言spring-boot简化的spring繁琐的配置文件方式,还可以很好的融入Docker,并且集成tomcat,Jetty等容器。启动方式有三种:第一、作为一个Java应用程序,可以直接运行main方法。第二、在Maven配置中,执行mvn spring-boot:run命令。第三、通过maven命令打包jar,在在命令行中执行java -jar xxx.jar来启动...原创 2018-08-10 14:53:46 · 357 阅读 · 0 评论