自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 收藏
  • 关注

原创 使用注解通过AOP实现Mybatis多数据源动态切换

最近有个公共的项目,需要连接多个系统的数据库读取数据生成报表。框架使用的是Springboot+Mybatis。下面展示如何使用注解通过AOP实现多数据源的自动切换。一、首先需要定义好数据源的类型。package com.test.db;public enum DatabaseType { DB_ORDER, // 订单库 DB_MEMBER, // 会员库 DB_STOCK; // 库存库 /** * 通过名字获取类型 * @param

2021-08-09 23:10:12 592 2

原创 Java中枚举类型的校验

最近项目中用到了一些枚举类,而接口API中提供的是String类型来接收,这样的话,调用方随便传什么,如果传的并不是后台定义的枚举类型,那么处理起来肯定会有问题。所以我们需要对调用方传来的枚举进行校验。简单粗暴的方法就是,拿传入的参数跟枚举类型一个个比较,直到找到相同的才认为输入的值合法。这样的话需要写很多的if else来判断。那有没有优雅点的处理方式呢?之前写过一篇通过注解校验参数的博...

2019-09-25 15:58:19 8502

原创 BigDecimal类型字段返回JSON格式数据时自定义保留几位小数

大家做项目的时候肯定或多或少遇到过这样的经历:比如有个字段rate(表示汇率),它在数据中的保存的类型是decimal(19, 12),那么尽管你的rate=6.1234,但是当存到数据库的时候也会给你的小数位自动补零,一直到小数位达到12位,如下:这样如果需要在接口中返回给调用方这个字段,但是在接口中又没做处理的话,那返回的就是这个后面自动补零的数据。如果调用方说,你别给我这么多...

2019-09-25 09:59:51 12737

原创 DES3加解密工具类

package com.test.app;import com.test.app.utils.Base64Util;import javax.crypto.Cipher;import javax.crypto.SecretKeyFactory;import javax.crypto.spec.DESedeKeySpec;import javax.crypto.spec.IvPara...

2019-05-30 14:48:00 1617

原创 Base64 Encode and Decode工具类

import java.io.IOException;import java.io.UnsupportedEncodingException;import java.util.Base64;import java.util.Base64.Decoder;import java.util.Base64.Encoder;import org.apache.commons.lang3.Ar...

2019-05-30 10:56:19 796

原创 Java文件上传报MaxUploadSizeExceededException

2019-05-27 15:07:27.077 DEBUG 1 --- [http-nio-8068-exec-2] o.s.web.servlet.DispatcherServlet : POST "/api/doc/v1/upload", parameters={}2019-05-27 15:07:27.077 DEBUG 1 --- [http-nio-8068-exec-2...

2019-05-27 15:38:16 1143

原创 Java后台通过IO流将文件返回至前端进行预览

数据库中有张表专门存文件的信息,字段包括如:文件名,文件类型,文件路径等等。下面演示怎么把后台的文件信息返回到前端预览。import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.util.FileCopyUtils;import org.springframework.web....

2019-05-17 10:00:18 27791 6

原创 Springboot中使用BindingResult校验字段

Java项目传参时,可能有许多字段都需要进行校验,可以通过javax.validation.constraints.*包下的注解,再配合@Valid和BindingResult进行错误信息的返回。如下:import org.hibernate.validator.constraints.Range;import org.springframework.format.annotation.D...

2019-05-16 21:00:12 5591

原创 HTTP响应的内容类型之Content-Type

Content-Type在HTTP网络请求中,用于定义响应数据的类型和编码,它决定了客户端将以什么形式、什么编码来接收这些返回的数据。比较常用的如application/json、application/xml。如果不指定 ContentType,那么默认为text/html。那么如果传输的数据为文件流,又该如何指定响应的ContentType呢?下面列举一些常用的文件的MIME类型。1...

2019-05-14 11:33:12 8356

原创 Springboot中使用RestTemplate完成多文件上传

背景:现有Springboot微服务A,其对外提供一个多文件上传的接口,接口代码如下:/*** 远程服务提供的多文件上传的REST API* @param files* @param request* @return*/@RequestMapping(value = "/file/upload", method = RequestMethod.POST)public Strin...

2019-05-07 22:35:23 4801

原创 Springboot FeignClient启动报错:Method has too many Body parameters:

FeignClient API中定义了如下Get方法:启动时报错如下:exception is java.lang.IllegalStateException: Method has too many Body parameters: public abstract java.lang.String com.geoswift.twpre.fapi.TwpreRestAPI.refres...

2019-04-14 21:54:28 1957

原创 Springboot中Feign client调用时版本问题

现有Springboot项目三个,分别为jpmc-adapter, gsdic-api, twpre-api。gsdic-api, twpre-api是公共的服务,对外提供Restful的API,通过feign client去调用。大的背景就是,jpmc-adapter现在需要调用另外两个公共的服务。Springboot版本:jpmc-adapter 1.5.9...

2019-04-14 21:45:56 5382

原创 Java生成CSV工具类

package com.test.app.utils;import java.io.BufferedWriter;import java.io.FileOutputStream;import java.io.IOException;import java.io.OutputStreamWriter;import java.lang.reflect.Field;import java...

2019-04-10 15:53:39 3163

原创 Java中利用POI读写Excel文件的工具类

package com.test.app.utils;import java.io.File;import java.io.FileInputStream;import java.io.IOException;import java.io.InputStream;import java.lang.reflect.Field;import java.lang.reflect.Meth...

2019-04-10 14:34:38 1863 1

原创 Java中利用Freemarker动态给请求模板赋值

开发时,需要调用第三方API,请求参数为XML格式的。我现有以下请求模板,模板中有些字段的值是需要动态传入的。如下图所示:模板所在位置:模板twapi_without_birthday_gender.ftl的内容如下:<?xml version="1.0" encoding="UTF-8" standalone="yes" ?><sdQuery> ...

2019-03-22 16:00:57 5516

原创 Java获取当前项目的路径

项目中可能需要读取项目路径下的模板等,我们可能需要知道模板的绝对路径。可以通过如下两种方法获取:public void testGetPath() throws IOException { /** * 获取项目的路径 */ // 1st projectPath==E:\Hunger\workspace\twpre String proje...

2019-03-21 17:25:41 18155 2

原创 JSON传参时字段首字母大写,对应的javaBean中该字段的值一直为null

如题,我在用JavaBean去接收Json参数的时候,有个字段首字母大写了,如下图:然后发现在请求的时候无论我传入什么值,这里的SDAPIScreening始终未null。这是由于JavaBean的规范导致的。一般JavaBean属性都是首字母小写,以驼峰命名格式命名,相应的 getter/setter 方法是 get/set 接上首字母大写的属性名。例如:属性名为clientId,其...

2019-03-18 13:42:12 2139 3

原创 SQLServer查询语句中,使用=号会自动忽略字符串后面的空格

因项目中需要判断银行名称是否可用,所以需要精确匹配。我原本使用如下语句查询:SELECT * FROM [gs_dictionary].[dict_category_detail] where code_text = '资阳雁江农村合作银行';如下图可以返回两条记录:但是后面测试的时候发现:如果银行名称后面带很多空格,sqlserver依然能查到结果。如下:SELECT * F...

2019-03-12 14:43:18 2976 1

原创 Navicat中如何复制数据库

1. 选中需要被复制的数据库,右键备份菜单,选择新建备份,输入名字保存确定。2. 新建一个数据库,选中后,右键备份菜单,选择还原备份,弹出窗口后选择上一步的备份文件,然后开始导入即可。数据库复制完成

2017-10-25 11:08:39 16525 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除