- 博客(26)
- 收藏
- 关注
原创 Mysql 字符集修改方案及说明
Mysql表中字符类型的字段长度为支持的字符个数,修改字符集不需要增加字段长度。文章内容适用于 Mysql5.7、Mysql 8.0。数据库、表、字段的字符集排序规则修改为:utf8mb4。和 utf8mb4_general_ci。经验证,字符集的变更不需要重新创建索引。逐条执行第2步中获取的。表需修改字符集SQL。表需修改字符集SQL。相关库原字符集SQL。
2023-09-22 17:27:21 1017
原创 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 844
原创 Spring Boot配置Redis缓存无法连接时请求数据库
业务场景: 在Spring Boot项目中使用了@Cacheable注解实现往Redis中存入数据库查询数据和读取缓存数据,如果由于一些原因Redis无法连接的话,那么@Cacheable标注的方法则会报错且无法返回数据。需要在Redis无法连接的情况下让方法直接请求数据库。 解决方法: 添加Redis配置类继承CachingConfigurerSupport类,重写errorHandler方法即可。代码如下:@Slf4j@Configuration@EnableCachingpublic
2020-05-25 17:58:01 1338 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 8746 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 3385 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 1228
原创 Spring Boot中优雅的判断请求来源设备并跳转对应的页面-Device detection
有时候我们有这种需求,想在同一个方法中判断发起请求的设备,并跳转到对应的页面,可能有不少人会写多个Controller或者方法以对应不同的请求设备,但这样的写法非常不优雅。 这里要介绍的是Spring Mobile这个框架,官网的描述:它提供了检测向Spring web站点发出请求的设备类型的功能,并提供基于该设备的其他视图。像所有的Spring项目一样,Spring Mobile的真正威力在于它的可扩展性。下面我们使用代码来说明。1.首先在pom.xml中引用以下依赖:<dependen
2020-05-15 11:44:54 1989
原创 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 2330
原创 Nginx解决前后端分离项目请求跨域问题
场景介绍: 本地有两个服务,一个是用于提供接口的后台服务,一个是调用接口的前端服务。 接口服务的地址为:http:127.0.0.1:8000。 前端服务的地址为:http:127.0.0.1,前端页面部署在Nginx中。1.在本机hosts文件中添加如下域名映射: 127.0.0.1 server.qiwan.com 127.0.0.1 h5.qiwan...
2020-04-30 17:46:58 757 1
原创 解决eclipse导入项目或者maven update后默认JDK版本过低的问题
方法一,在本地maven的配置文件settings.xml中添加如下配置:<profile> <id>jdk-1.8</id> <activation> <activeByDefault>true</activeByDefault> <jdk>1.8</jdk> </activ...
2020-04-26 11:14:29 577
原创 win10安装两个版本的JDK
1. 正常下载安装两个版本的JDK,如:JDK7和JDK8。2. 配置JAVA_HOME、JAVA7_HOME、JAVA8_HOME,如: JAVA7_HOME配置为D:\develop env\Java\jdk1.7.0_75 JAVA8_HOME配置为D:\develop env\Java\jdk1.8.0_231 需要使用哪个JDK版本时只需要修改JAVA_HOME变量即可,如...
2020-04-24 14:14:22 1095 1
原创 Lombok 注解开发使用指南(含部分生成代码示例)
Lombok(官网:https://projectlombok.org)是一个java类库,能以简单的注解在编译源码的时候自动生成JavaBean中的log、get、set、toString、构造方法等代码,能够让JavaBean更简洁、美观,并且提高开发效率。eclipse配置Lombok:1.下载lombok.jar(https://www.projectlombok.org/down...
2019-07-09 15:22:10 1143
原创 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 3871
原创 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 13658 3
原创 Spring Boot之@ConfigurationProperties注解
在实体上使用@ConfigurationProperties注解,配合@Component可以读取配置文件中同类配置信息并封装成对象。和@Bean注解同时使用时可以不用在实体上使用该注解。满足以下三条可以成功注入:1.配置key(除前缀外)与属性名相同可注入。2.以‘-’连接的配置key(除前缀外)自动处理成驼峰格式与属性名相同可注入。3.父类私有属性拥有公共set方法的,符合上述两...
2019-06-18 15:21:12 874
原创 Java构造方法和@Autowire
1.构造方法不能被继承。2.子类构造方法在没有显示调用父类有参构造方法时会默认调用父类无参构造方法(没有则报错)如:public class TestA extends Test { /** * 会默认调用父类的无参构造方法,父类没有时则开发工具会提示出错: * Implicit super constructor Test() is undefined. Must expli...
2019-06-14 13:48:03 2126
原创 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 23130 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 1773
原创 @Scheduled参数及cron表达式解释
@Scheduled支持以下8个参数:1.cron:表达式,指定任务在特定时间执行;2.fixedDelay:表示上一次任务执行完成后多久再次执行,参数类型为long,单位ms;3.fixedDelayString:与fixedDelay含义一样,只是参数类型变为String;4.fixedRate:表示按一定的频率执行任务,参数类型为long,单位ms;5.fixedRateStri...
2019-05-05 16:19:41 8013 3
原创 Java8 Lambda表达式示例
package com.qiwan.researchtec;import java.util.Arrays;import java.util.Comparator;import java.util.IntSummaryStatistics;import java.util.List;import java.util.concurrent.ThreadLocalRandom;impor...
2019-03-27 11:41:31 243
原创 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 2464
原创 maven编译时引入外部jar
<!-- 1.添加对工程lib目录中jar的编译 --><plugin> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.8</source> <target>1.8&
2019-03-08 16:21:48 1144 2
原创 maven工程编译时忽略执行单元测试
项目中的单元测试很多的时候,编译打包时执行Test会很耗时,pom.xml中可加入以下plugin配置:&lt;!-- 编译打包时忽略执行junit单元测试 --&gt;&lt;plugin&gt; &lt;groupId&gt;org.apache.maven.plugins&lt;/groupId&gt; &lt;artifactId&a
2019-03-08 14:32:41 1102
原创 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 1933
转载 Maven内置属性
Maven共有6类属性:1.内置属性Maven预定义,用户可以直接使用。${basedir}表示项目根目录,即包含pom.xml文件的目录;${version}表示项目版本;${project.basedir}同${basedir};${project.baseUri}表示项目文件地址;${maven.build.timestamp}表示项目构件开始时间;${mav...
2019-03-07 16:28:14 279
原创 mysql 5.6迁移数据文件到mysql 5.7(win10环境)
1.备份mysql 5.6.17(当前版本) 安装目录下的data目录。然后准备卸载5.6.17服务。 以管理员身份运行cmd并切换到5.6的bin目录下执行:net stop mysql、mysqld remove 此时服务已经删除还需要清理下相关注册表。若能找到注册表的以下位置则删除:HKEY_LOCAL_MACHINE/SYSTEM/ControlSet001/Servi...
2019-01-11 14:41:44 3496
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人