![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Spring Boot
文章平均质量分 53
Qiwany
这个作者很懒,什么都没留下…
展开
-
Spring Boot中优雅的判断请求来源设备并跳转对应的页面-Device aware view
在Spring Boot中优雅的判断请求来源设备并跳转对应的页面-Device detection和Spring Boot中优雅的判断请求来源设备并跳转对应的页面-Site preference这两篇文章中已经对Spring Mobile有过简单的介绍,这里介绍的是Spring Mobile的第三种方法也是最优雅的一种方法:Device aware view(设备自动感知视图)。1.首先在pom.xml中引用以下依赖:<dependency> <groupId>org.sp原创 2020-05-28 18:02:53 · 795 阅读 · 0 评论 -
Spring Boot配置Redis缓存无法连接时请求数据库
业务场景: 在Spring Boot项目中使用了@Cacheable注解实现往Redis中存入数据库查询数据和读取缓存数据,如果由于一些原因Redis无法连接的话,那么@Cacheable标注的方法则会报错且无法返回数据。需要在Redis无法连接的情况下让方法直接请求数据库。 解决方法: 添加Redis配置类继承CachingConfigurerSupport类,重写errorHandler方法即可。代码如下:@Slf4j@Configuration@EnableCachingpublic原创 2020-05-25 17:58:01 · 1292 阅读 · 1 评论 -
Spring Boot使用@Cacheable时设置部分缓存的过期时间
业务场景: Spring Boot项目中有一些查询数据需要缓存到Redis中,其中有一些缓存是固定数据不会改变,那么就没必要设置过期时间。还有一些缓存需要每隔几分钟就更新一次,这时就需要设置过期时间。Service层部分代码如下:@Override@Cacheable(cacheNames = {"distributor"}, key = "#root.methodName")public List<CityVO> findCities() { return distributor原创 2020-05-25 16:19:26 · 8632 阅读 · 1 评论 -
Spring Boot使用@ConfigurationProperties或者@Value读取properties文件中文乱码
在Spring Boot项目中,有时候需要自定义一些配置,如果使用中文值并使用注解读取时就会出现乱码。原因: SpringBoot注解读取application.properties或者application-{profile}.properties文件时默认的是ISO_8859_1编码。解决方案: 1. 使用yml配置文件进行配置。Spring Boot在读取yaml配置文件时使用的是UTF-8的编码方式。 2. 使用自定义配置文件如:custom.properties配置中文属性,并使用原创 2020-05-25 15:27:41 · 3290 阅读 · 1 评论 -
Spring Boot中优雅的判断请求来源设备并跳转对应的页面-Site preference
在Spring Boot中优雅的判断请求来源设备并跳转对应的页面-Device detection这篇文章中已经对Spring Mobile有过简单的介绍,这里介绍的是另一种类似的方法:Site preference。1.首先在pom.xml中引用以下依赖:<dependency> <groupId>org.springframework.mobile</groupId> <artifactId>spring-mobile-device</a原创 2020-05-15 13:51:17 · 1151 阅读 · 0 评论 -
Spring Boot中优雅的判断请求来源设备并跳转对应的页面-Device detection
有时候我们有这种需求,想在同一个方法中判断发起请求的设备,并跳转到对应的页面,可能有不少人会写多个Controller或者方法以对应不同的请求设备,但这样的写法非常不优雅。 这里要介绍的是Spring Mobile这个框架,官网的描述:它提供了检测向Spring web站点发出请求的设备类型的功能,并提供基于该设备的其他视图。像所有的Spring项目一样,Spring Mobile的真正威力在于它的可扩展性。下面我们使用代码来说明。1.首先在pom.xml中引用以下依赖:<dependen原创 2020-05-15 11:44:54 · 1887 阅读 · 0 评论 -
Spring Boot 实现接口统一入参校验
本文示例代码基于Spring Boot 2.2.6、JDK1.8。Spring Boot已经内置了所需参数校验的框架。代码中使用了lombok注解。 本文涉及的代码地址:https://gitee.com/qiwan/validated-demo.git1.基本类型参数入参校验及校验异常统一处理接口返回数据:package com.qiwan.validated.controller;import org.hibernate.validator.constraints.Length;imp原创 2020-05-09 18:49:48 · 2273 阅读 · 0 评论 -
Spring Boot 打包分离maven依赖jar
springboot项目打包的时候,如果maven依赖过多的话打的包会非常大,需要频繁上传到服务器时效率非常低。我们打包的时候可以将maven依赖和程序包分开,若仅仅是代码有改动那我们就不用再重复上传依赖包了。在pom文件中加入如下plugin配置:&lt;!-- 打jar包 --&gt;&lt;plugin&gt; &lt;groupId&gt;org.apache.maven.pl...原创 2019-03-07 17:02:55 · 1870 阅读 · 0 评论 -
Spring Boot整体打包jar(包含本地jar包)
plugins 结点下添加如下 plugin 配置:&amp;amp;lt;plugin&amp;amp;gt; &amp;amp;lt;groupId&amp;amp;gt;org.springframework.boot&amp;amp;lt;/groupId&amp;amp;gt; &amp;amp;lt;artifactId&amp;amp;gt;spring-原创 2019-03-08 18:17:38 · 2420 阅读 · 0 评论 -
Spring Boot之@ConfigurationProperties注解
在实体上使用@ConfigurationProperties注解,配合@Component可以读取配置文件中同类配置信息并封装成对象。和@Bean注解同时使用时可以不用在实体上使用该注解。满足以下三条可以成功注入:1.配置key(除前缀外)与属性名相同可注入。2.以‘-’连接的配置key(除前缀外)自动处理成驼峰格式与属性名相同可注入。3.父类私有属性拥有公共set方法的,符合上述两...原创 2019-06-18 15:21:12 · 835 阅读 · 0 评论 -
Spring Boot整合FastDFS完整示例
SpringBoot整合FastDFS很简单,这里使用的组件是:<dependency> <groupId>com.github.tobato</groupId> <artifactId>fastdfs-client</artifactId> <version>1.26.2</version> <...原创 2019-06-19 15:22:09 · 3831 阅读 · 0 评论 -
FastDFS并发上传任务时异常:Unable to borrow buffer from pool
因需求,公司SpringBoot项目中需使用异步多线程进行FastDFS的文件上传,单个上传耗时大概1秒左右,当并发操作超过8个时总是出现Unable to borrow buffer from pool异常,小于8个时全部正常,因此怀疑是使用的组件的默认连接数限制导致的。上网翻查资料无果后决定分析一下所用的FastDFS组件的源码。使用的FastDFS组件:<dependenc...原创 2019-06-19 13:46:51 · 13272 阅读 · 3 评论 -
maven项目install时忽略执行test的几种方法
1.在项目所在文件夹根目录使用maven命令打包时:<!-- 不执行单元测试,也不编译测试类 -->mvn install -Dmaven.test.skip=true或<!-- 不执行单元测试,但会编译测试类,并在target/test-classes目录下生成相应的class -->mvn install -DskipTests=true2.spring...原创 2019-05-28 17:17:15 · 22457 阅读 · 1 评论 -
Spring Boot 简单开启单线程和多线程定时任务
1.单线程任务TestSchedule.java代码:@Componentpublic class TestSchedule { private static Logger log = LoggerFactory.getLogger(TestSchedule.class); //上一次任务执行完成1秒后再次执行 @Scheduled(fixedDelay = 1000) pu...原创 2019-05-06 16:20:28 · 1680 阅读 · 0 评论