自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 redis 自增长报错(value ERR value is not an integer or out of ra)

原因是因为没有序例化package com.fcar.kj.bsj.wx.common.config;import com.fasterxml.jackson.annotation.JsonAutoDetect;import com.fasterxml.jackson.annotation.PropertyAccessor;import com.fasterxml.jackson.databind.ObjectMapper;import org.springframework.context.a

2020-08-14 10:30:07 886

原创 SpringBoot限制上传文件大小

SpringBoot 默认上传的文件大小为1M,超过就可能报错。解决:/** * 李晨亮 * web配置 */@Configurationpublic class WebConfig implements WebMvcConfigurer { /** * 跨域配置 * * @param registry */ @Override public void addCorsMappings(CorsRegistry registry)

2020-08-03 16:02:08 387

原创 EasyExcel导出中文名文件不显示

/** * 获取文件名称 * * @param name * @return */ public static String getFileName(String name){ long newTime = System.currentTimeMillis(); String fileName=name + newTime; log.info("文件名fileName={}",fileName); .

2020-07-31 15:25:27 2747

转载 MyBatis <forEach>操作出现的错误

错误提示:java.util.ArrayList and java.lang.String传输的是一个List报错的写法:(New_Opn_Sco_Card_Sco 是Integer类型) <if test="newOpnScoCardScoList != null and newOpnScoCardScoList.size != '' "> and ( <foreach collection="newOpnSco

2020-07-27 20:13:42 652

转载 Shiro入门

什么是shiro?shiro是一个功能强大且易于使用的Java安全框架,它的认证,授权,加密和会话管理可以用于保护任何应用程序——来自从命令行应用程序、移动应用程序到最大的web和企业应用程序。shiro为以下几个方面提供应用程序的安全API(应用程序安全的4大基石):Authentication - 提供用户身份认证,俗称登录Authorization - 访问权限控制Cryptography - 使用加密算法保护或者隐藏数据Session Management - 用户的会话管理Login

2020-07-23 10:18:29 115

转载 LocalDateTime、LocalDate、Long、Date、String 相互转换

LocalDateTime、LocalDate、Long、Date、String 相互转换DateTimeFormatter dateTimeFormatter1 = DateTimeFormatter.ofPattern(“yyyy-MM-dd HH:mm:ss”);DateTimeFormatter dateTimeFormatter2 = DateTimeFormatter.ofPattern(“yyyy-MM-dd”);LocalDateTime localDateTime = LocalDa

2020-07-03 17:06:20 972

原创 Cannot determine value type from string

错误提示的意思是查找数据库时生成不了实体类,原因有两个1:没有相应的构造方法 2:没有无参构造函数

2020-07-03 16:13:06 4368

转载 @ConfigurationProperties 与 @EnableConfigurationProperties

@EnableConfigurationProperties注解的作用是:使使用 @ConfigurationProperties 注解的类生效。如果一个配置类只配置@ConfigurationProperties注解,而没有使用@Component,那么在IOC容器中是获取不到properties 配置文件转化的bean。说白了 @EnableConfigurationProperties 相当于把使用 @ConfigurationProperties 的类进行了一次注入@EnableConfigur

2020-07-01 09:37:19 484

原创 application.yml和bootstrap.yml和SpringCould rocketMq的使用

bootstrap的优先级高于application(bootstrap一般用于微服务的使用)bootstrapserver: port: 8086spring: application: //pom.xml文件中该目录下名称的引用 //<artifactId>boyun-open-gateway</artifactId> // <name>${project.artifactId}</name> // <versio

2020-06-29 16:39:16 960

原创 TCP/IP

早期的网络通信中心通信中心受到攻击就会影响到整个网路交互。分组交换技术:当tcp/ip的某个节点出现问题,仍然可以根据线路通行保持网络的通信。交换图:现在所使用的看视频,上网等都得归功于窗口系统的发明(也就是windows的操作系统)为什么我们能访问各种各样的资源?网络之间能进行各种资源的享受归功于网络中的协议。不管什么公司、厂商生产的,只要协议相同就能相互访问(其实协议就是网络通信的一种语言交流)。OSS(Open System Interconnect 开放式系统互联)参考模型(

2020-06-28 19:10:51 108

转载 时间格式的转换

LocalDate、LocalTime、LocalDateTime、Instant1.字符串转换成日期时间类型private static void testStringT0LocalDate() { // String --> LocalDate LocalDate localDate = LocalDate.parse("2019-12-07");      DateTimeFormatter pattern = DateTimeFormatter.ofPatt

2020-06-28 16:58:27 161

转载 http状态码

201-206都表示服务器成功处理了请求的状态代码,说明网页可以正常访问。 200(成功) 服务器已成功处理了请求。通常,这表示服务器提供了请求的网页。 201(已创建) 请求成功且服务器已创建了新的资源。 202(已接受) 服务器已接受了请求,但尚未对其进行处理。 203(非授权信息) 服务器已成功处理了请求,但返回了可能来自另一来源的信息。 204(无内容) 服务器成功处理了请求,但未返回任何内容。 205(重置内容) 服务器成功处理了

2020-06-24 09:54:44 162

原创 用request接收json格式数据

package com.bsj.boyun.open.car.util;import com.alibaba.fastjson.JSONObject;import javax.servlet.http.HttpServletRequest;import java.io.IOException;/** * @author 李晨亮 * @date 2020-06-23 14:45 **/public class GetRequestJsonUtils { public static

2020-06-23 17:32:18 2289

转载 BeanUtil工具类

一、概述第一次看到BeanUtils包,是在Struts项目中,作为Struts一个工具来使用的,估计功能越弄越强,就移到Common项目中了吧。BeanUtils一共有四个package:org.apache.commons.beanutilsorg.apache.commons.beanutils.convertersorg.apache.commons.beanutils.localeorg.apache.commons.beanutils.locale.converters后三个包主

2020-06-22 20:16:07 1078

转载 kafka与Rocketmq的区别

淘宝内部的交易系统使用了淘宝自主研发的Notify消息中间件,使用Mysql作为消息存储媒介,可完全水平扩容,为了进一步降低成本,我们认为存储部分可以进一步优化,2011年初,Linkin开源了Kafka这个优秀的消息中间件,淘宝中间件团队在对Kafka做过充分Review之后,Kafka无限消息堆积,高效的持久化速度吸引了我们,但是同时发现这个消息系统主要定位于日志传输,对于使用在淘宝交易、订单、充值等场景下还有诸多特性不满足,为此我们重新用Java语言编写了RocketMQ,定位于非日志的可靠消息传输(

2020-06-17 10:23:02 158

原创 线程为什么要弃用stop取而代之的是interrupt

package phonedemo.demo.test;/** * @author 李晨亮 * @date 2020-06-16 9:28 **/public class threadTest extends Thread implements Thread.UncaughtExceptionHandler {// @Override// public void run(){// Thread thread=new Thread(){//

2020-06-16 17:29:34 240

转载 RSA加密、解密、签名、验签的原理及方法

一、RSA加密简介RSA加密是一种非对称加密。可以在不直接传递密钥的情况下,完成解密。这能够确保信息的安全性,避免了直接传递密钥所造成的被破解的风险。是由一对密钥来进行加解密的过程,分别称为公钥和私钥。两者之间有数学相关,该加密算法的原理就是对一极大整数做因数分解的困难性来保证安全性。通常个人保存私钥,公钥是公开的(可能同时多人持有)。二、RSA加密、签名区别加密和签名都是为了安全性考虑,但略有不同。常有人问加密和签名是用私钥还是公钥?其实都是对加密和签名的作用有所混淆。简单的说,加密是为了防止信息

2020-06-16 17:05:40 358

转载 有参构造函数和无参构造函数

有参构造函数是默认不生成对象的。无参构造函数默认是会生成一个对象的。作用:new一个对象的时候要用到构造函数,例如Hello hello = new Hello();这时调用的是Hello的无参数构造方法;Hello hello = new Hello(“hi”);这个是调用Hello有参数构造方法,在JAVA中如果不写构造方法的话,会默认加上一个无参数的构造方法,但是如果已经有了一个有参数的构造方法,那么无参数的构造方法就不会默认被加上.如果Hello类中已经有了一个有参数的构造方法,这时再使用He

2020-06-15 11:41:25 4526

原创 ArrayList为什么初始化的时候最好设置默认大小

看一下对比 public static void main(String[] args) { //得到当前时间 Long nowTime = System.currentTimeMillis(); List<Integer> nosize = new ArrayList<>(); for (int i = 0; i < 10000000; i++) { //默认不设置大小

2020-06-15 11:19:14 2678 1

原创 阿里云语音通话获取语音回执消息码

开启消息通道(首先要开通MNS权限,不然会启动报错,报无权限)开通MNS权限的地址:https://help.aliyun.com/document_detail/147912.html?spm=5176.10695662.1996646101.searchclickresult.385c7538XXq1yz(开通MNS的同时也要获取队列的key值)package phonedemo.demo.test;import com.alicom.mns.tools.DefaultAlicomMessag

2020-06-12 10:54:32 1484

原创 阿里云语音电话的sdk的调用实例

/** * 语音呼叫 * * @return * @throws ClientException /http/RealTimeInfo/Call.json */ public RetObj doCall() throws ClientException { RetObj retObj = new RetObj(); //设置访问超时时间 System.setProperty("sun.net.clien

2020-06-10 09:37:36 2036 1

转载 为什么要使用base64的传输格式

“Base64是网络上最常见的用于传输8Bit字节码的编码方式之一,Base64就是一种基于64个可打印字符来表示二进制数据的方法”。 什么是“可打印字符”呢?为什么要用它来传输8Bit字节码呢?在回答这两个问题之前我们有必要来思考一下什么情况下需要使用到Base64?Base64一般用于在HTTP协议下传输二进制数据,由于HTTP协议是文本协议,所以在HTTP协议下传输二进制数据需要将二进制数据转换为字符数据。然而直接转换是不行的。因为网络传输只能传输可打印字符。什么是可打印字符?在ASCII码中

2020-06-09 19:08:09 1874

原创 ImmutableMap代替ifelse和switch

//初始化 Map<Integer, String> INTEGER_STRING_MAP = new ImmutableMap.Builder<Integer, String>(). put(1, "1"). put(31, "31"). put(32, "32").build();源码分析:public abstract...

2020-06-08 19:29:28 246

原创 Maven命令

使用jetty:run启动项目Maven的组合命令:clean install 并且跳过单元测试:

2020-05-28 15:41:09 93

原创 Spring的对象复制

最近在写对外开放的接口遇到一个问题就是有些敏感数据不想返回给前台,但又不的不去查询,于是就想到再建一个实体类然后把需要展示的数据set进去发现太麻烦,而且代码也很长,所以就是用了Spring自带的方法。 BeanUtils.copyProperties(“原始数据”, “展示给前台的数据”); 但这个只能是一个实体类的转不能List的批量转...

2020-05-18 09:30:51 1638

原创 多线程回调

第一种:package com.example.demo.test;import org.apache.http.concurrent.FutureCallback;import java.util.LinkedList;import java.util.List;import java.util.concurrent.CountDownLatch;import java.util...

2020-05-14 14:55:10 448

原创 SpringBoot制定返回格式

JSON是:用produces制定返回格式:@RequestMapping(value = "v1/open/BaseData",produces = MediaType.APPLICATION_JSON_VALUE)<dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId>

2020-05-11 09:56:20 191

原创 解决Unable to find a single main class from the following candidates

SpringBoot打包异常提示:Unable to find a single main class from the following candidates说明该项目中有很多main方法,需要制定一个main方法的入口。在maven项目中加上这个,指定入口和启动类型 <build> <plugins> <plugin> <groupId>org.springframework.

2020-05-11 09:19:30 2643

原创 参数类型导致的启动空指针

这是一段获取Redis的代码,注释的代码因为修饰的是static所以每次会首先自动保存在方法栈中,但此时因为redis还未读取配置初始化,所以会报空指针异常。使用注入的方式获取redis是可以的因为获取redis在后public static JedisClusterBSJ jedisClusterBSJ; @Autowired public void setJedisClusterBSJ(JedisClusterBSJ aa) { jedisClusterBSJ =

2020-05-09 17:35:16 160

原创 maven报错

错误提示:failed: Unable to find a single main class from the following candidates [com.bsj.boyun.open.car.BoyunOpenCarApplication, com.bsj.boyun.open.car.util.BaiduMapstoAutoNaviMapUtil, com.bsj.boyun.open.car.util.BytesUtil, com.bsj.boyun.open.car.util.DateU

2020-05-09 14:25:26 222

原创 java.lang.ClassNotFoundException错误

SpringBoot启动时报错:Caused by: java.lang.ClassNotFoundException: Cannot find class: com.bsj.openBoot.def.entity.AppInterface提示说找不到Mapper中的映射实体类,原来是再生产映射的时候多了一个空格无法定位到实体类。...

2020-05-08 16:15:30 379

原创 把图片用流的方式保存和展示

//读取流 static byte[] image2Bytes(String imgSrc) throws Exception { FileInputStream fin = new FileInputStream(new File(imgSrc)); byte[] bytes = new byte[fin.available()]; fi...

2020-05-05 19:26:29 793

原创 时间注解格式失效

时间注解格式有三种:@JSONField(format = “yyyy-MM-dd HH:mm:ss”)这里适用的转换是fashjson@JsonFormat这里使用的是Json格式转换@DateTimeFormat这里使用的是Spring自带的格式这里我使用的是Fashjson的范湖一个是,所以使用其他的时间转换格式会失败,无效package com.bsj.openBoot...

2020-04-29 15:26:19 407

原创 jdk1.8的新方法removeIf

public static void main(String[] args) { List<Integer> list=new ArrayList<>(); for (int i = 0; i < 10; i++) { list.add(i); } list.r...

2020-04-27 18:50:39 534

转载 AbstractQueuedSynchronizer的介绍和原理分析

同步器的原理

2020-04-26 19:40:06 86

原创 拦截器自定义返回参数

private void returnMessage(HttpServletRequest request, HttpServletResponse response, RetObj retObj) throws IOException { // 跨域配置 if (request.getHeader(HttpHeaders.ORIGIN) != null) ...

2020-04-25 12:08:45 1124

转载 节省空间

类中的内部方法:如果某些方法只在一个类中使用,那么就用private修饰这个方法。因为它能提高性能。原因:函数调用其实就是对栈stack的操作,即压栈和出栈过程,当一个方法被调用,一个新的栈帧会被加到栈顶,分配的本地变量和参数会存储在这个栈帧,然后跳转到目标方法代码执行,方法返回的时候,本地方法和参数被销毁,栈顶被移除,最后返回到原来的地址执行。所以函数调用需要有一定的时间和空间开销,当一...

2020-04-12 00:30:10 107

转载 枚举的使用方法

枚举和switch一起使用enum Signal { GREEN, YELLOW, RED } public class TrafficLight { //声明一个枚举类型 Signal color = Signal.RED; public void change() { switch (colo...

2020-04-10 00:17:23 178

原创 注解的反射机制

新建注解/** * 在Controller的方法上使用此注解,该方法在映射时会对用户进行身份验证,验证失败返回401错误 * 也可以直接在Controller上使用,代表该Controller的所有方法均需要身份验证 */@Target({ElementType.TYPE, ElementType.METHOD})@Retention(RetentionPolicy.RUNTIME)...

2020-04-09 21:23:03 115

原创 java8流和lambot表达式的使用

List<BasicsDataDto> basicsDataDtoList1 = basicsDateMapper.getCompositionNum(oProductNumbers); //订单数量 basicsDataDtoList1.stream().forEach( w -> { ...

2020-04-08 21:12:22 148

空空如也

空空如也

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

TA关注的人

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