java
不忘初心1123
分享程序猿每天艰苦加班写出来的bug或者问题以及其解决的办法,供大家一起交流沟通
展开
-
java之动态配置定时任务
需求场景最近我在工作当中遇到需要支持用户在前端界面上动态配置定时任务的执行时间和执行参数的需求。在我们平时的开发当中,传统的方式就是在类的方法上使用注解@Scheduled(cron = “0 0 0 1 * ?”)这样来配置时任务,但是不能够满足我们的需求,不能动态配置和改变任务的执行时间和执行参数。我们需要怎么做?接下来我们来实现一下上才艺目录结构DemoApplicationpackage com.example.demo;import org.springframework.boot原创 2020-08-14 19:10:43 · 10055 阅读 · 11 评论 -
接口业务异步处理
场景比如我们在项目中的一个前端接口在每次调用的时候需要处理比较耗时且对结果不需要直接反馈的业务(比如需要多次调用第三方的http接口同步一些信息等),此时我们就需要将其设计成异步,以此来提高接口的响应速度。处理方式启动类在我们的启动类上面加上开启异步的注解@EnableAsync@SpringBootApplication@EnableAsyncpublic class TestApplication { public static void main(String[] args) {原创 2020-08-13 15:40:52 · 2885 阅读 · 0 评论 -
Spring Boot——文件上传与下载
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4....转载 2018-06-15 13:03:34 · 149 阅读 · 0 评论 -
Java中Comparable和Comparator区别小结
一、Comparable简介 Comparable是排序接口。若一个类实现了Comparable接口,就意味着该类支持排序。实现了Comparable接口的类的对象的列表或数组可以通过Collections.sort或Arrays.sort进行自动排序。 此外,实现此接口的对象可以用作有序映射中的键或有序集合中的集合,无需指定比较器。该接口定义如下:package java.la...转载 2018-08-10 19:08:54 · 98 阅读 · 0 评论 -
springboot+swagger2集成
添加pom依赖<!--swagger2 start--><dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.2.2</ve原创 2018-09-07 17:49:25 · 722 阅读 · 0 评论 -
理解、学习与使用 JAVA 中的 OPTIONAL
从 Java 8 引入的一个很有趣的特性是 Optional 类。Optional 类主要解决的问题是臭名昭著的空指针异常(NullPointerException) —— 每个 Java 程序员都非常了解的异常。本质上,这是一个包含有可选值的包装类,这意味着 Optional 类既可以含有对象也可以为空。Optional 是 Java 实现函数式编程的强劲一步,并且帮助在范式中实现。但...转载 2018-09-28 02:25:55 · 125 阅读 · 0 评论 -
`spring boot`高并发秒杀测试
https://blog.csdn.net/qq523786283/article/details/80813416翻译 2018-11-15 15:55:30 · 815 阅读 · 0 评论 -
解决spring boot启动报错java.lang.NoClassDefFoundError: ch/qos/logback/classic/Level
今天在spring boot开发写代码的时候碰到了一个问题,启动应用报错:java.lang.NoClassDefFoundError: ch/qos/logback/classic/Level 之前使用spring boot 1.4.2开发正常 当升级到1.5.7后启动报错。这里通过idea的ctrl+N定位所在Level类存在于 logback-classic-1.1.11.jar 中,...原创 2019-01-06 11:21:59 · 8762 阅读 · 0 评论 -
非对称加密算法RSA整理
RSA算法实现类没有的jar包可以到maven中央仓库找package com.jx.tmall_demo.utils;import cn.hutool.core.codec.Base64;import javax.crypto.Cipher;import java.io.*;import java.security.*;import java.security.inter...原创 2019-03-15 13:27:28 · 173 阅读 · 0 评论 -
springboot集成springjpa+h2轻量级内嵌式数据库
什么是H2 database?H2是一个短小精干的嵌 入式数据库引擎,主要的特性包括:1、免费、开源、快速;2、嵌入式的数据库服务器,支持集群;3、提供JDBC、ODBC访问接口,提供基于浏览器的控制台管理程序;4、Java编写,可使用GCJ和IKVM.NET编译;5、短小精干的软件,1M左右。引入maven依赖 <!--引入h2数据库的依赖 --> ...原创 2019-04-27 19:23:32 · 1826 阅读 · 0 评论 -
springboot集成websocket+前端vue掉线重连机制
注入maven依赖<!--websocket--><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-websocket</artifactId></dependency&g...原创 2019-05-25 15:10:12 · 876 阅读 · 0 评论 -
自定义注解的方式的使用场景:解决业务分发
实际项目中我们可以用自定义注解解决很多事情!解决业务分发最近在做的一个项目,对接科大讯飞语音平台,他们平台上面的调用地址只能填一个,所以我项目上需要做到一个接口处理很多业务场景,如果我用传统方式处理,那么我可能需要些大量的if else或者switch等语法糖,这里我们可以使用自定义注解解决,废话少说直接上代码。首先创建我们的自定义注解控制器/类注解,注解到类上面 ,用于我们查找我们...原创 2019-06-10 16:34:14 · 1866 阅读 · 3 评论 -
自定义注解的方式的使用场景:解决签名校验
实际项目中我们可以用自定义注解解决很多事情!解决签名校验创建自定义注解类,注解到我们需要校验才能进入的方法上面package com.jx.fly.common.annotation;import java.lang.annotation.ElementType;import java.lang.annotation.Retention;import java.lang.anno...原创 2019-06-10 16:48:00 · 781 阅读 · 0 评论 -
秒杀系统下的分布式锁redis实现
在springboot的日益成熟之下,分布式架构越来越普遍,面临的问题也随之增加,分布式锁就是其中之一,以前我们都是使用synchronized来处理并发请求,虽然也支持分布式,但是总有一下业务不适合,我们首先来看一个例子:秒杀系统synchronized关键字public synchronized void sellProduct(String productId){ //1、...原创 2019-07-31 12:53:36 · 280 阅读 · 1 评论 -
springboot打包排除第三方依赖
修改pom文件即可<build> <plugins> <!-- 不包含第三方依赖jar打包--> <plugin> <groupId>org.springframework.boot</groupId> ...原创 2019-09-18 19:13:20 · 2160 阅读 · 3 评论 -
SSM框架使用POI技术导出Excel表
POI框架是Apache开源的可以导出导入Excel表的,本博客介绍在SSM(Spring+SpringMVC+Mybatis)项目里,如何使用POI框架,导出Excel表这里我们先要去Apache官网下载jar然后,就可以先编程了先提供一个封装的httpservlet请求和添加数据的类[java] view plain copypublic class PageData extends Hash...转载 2018-06-15 13:01:15 · 405 阅读 · 0 评论 -
springmvc整合shiro权限控制
一、什么是Shiro Apache Shiro是一个强大易用的Java安全框架,提供了认证、授权、加密和会话管理等功能: 认证 - 用户身份识别,常被称为用户“登录”;授权 - 访问控制;密码加密 - 保护或隐藏数据防止被偷窥;会话管理 - 每用户相关的时间敏感的状态。对于任何一个应用程序,Shiro都可以提供全面的安全管理服务。并且相对于其他安全框架,Shiro要简单的多。二:springmvc...转载 2018-06-15 12:59:26 · 712 阅读 · 0 评论 -
java实现FTP多线程断点续传,上传下载!
package com.ftp; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.io.PrintWriter; impo...转载 2018-03-16 15:55:44 · 1466 阅读 · 2 评论 -
Java通过httpclient模拟登录
方法1:importorg.apache.commons.httpclient.Cookie;importorg.apache.commons.httpclient.HttpClient;importorg.apache.commons.httpclient.NameValuePair;importorg.apache.commons.httpclient.cook...转载 2018-03-16 18:22:52 · 11048 阅读 · 11 评论 -
WebService入门实例教程
什么是WebService 通过使用WebService,您的应用程序可以向全世界发布信息,或提供某项功能,它是基于Web的服务,通过Web进行发布、查找和使用。WebService脚本平台需支持XML+HTTP。HTTP协议是最常用的因特网协议。XML提供了一种可用于不同的平台和编程语言之间的语言。 为什么要使用WebService 最重要的事情是协同工作。1.跨平台调用(WebService不...转载 2018-03-18 14:05:05 · 157 阅读 · 0 评论 -
lombok注解
为了简化开发我们可以引入lombok注解来帮助我们,先看一下lombok支持的一些常见的注解。@NonNull@Cleanup@Getter/@Setter@ToString@EqualsAndHashCode@NoArgsConstructor/@RequiredArgsConstructor /@AllArgsConstructor@Data@Value@SneakyThrows@Synchr...原创 2018-03-30 15:15:29 · 141 阅读 · 0 评论 -
spring boot redis配置
导入依赖<!--redis--><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-redis</artifactId></dependency><de转载 2018-03-30 15:17:30 · 3836 阅读 · 1 评论 -
java9 逆天的十大新特性
modularity System 模块系统Java 9中主要的变化是已经实现的模块化系统。Modularity提供了类似于OSGI框架的功能,模块之间存在相互的依赖关系,可以导出一个公共的API,并且隐藏实现的细节,Java提供该功能的主要的动机在于,减少内存的开销,在JVM启动的时候,至少会有30~60MB的内存加载,主要原因是JVM需要加载rt.jar,不管其中的类是否被classl...转载 2018-03-25 01:15:32 · 1848 阅读 · 0 评论 -
完美解决ajax跨域请求
我们只需要在项目当中增加一个配置类import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.web.cors.CorsConfiguration;import org.springf...原创 2018-03-28 09:36:06 · 165 阅读 · 0 评论 -
tomcat安装APR本地库不兼容问题的解决 APR based Apache Tomcat Native library is installed
其内容就是说:tomcat在安装本地APR库时的版本1.1.29不兼容,最起码得安装1.1.32版的APR库。网上有很多搜索结果,就是将tcnative-1.dll这个文件放到tomcat目录的bin目录,其实也不一定解决问题。我是多次测试,发现一个规律,总结一下:1. 去http://archive.apache.org/dist/tomcat/tomcat-connectors/native/...原创 2018-04-10 22:33:40 · 4403 阅读 · 0 评论 -
解决重复对象转json字符串时引用上一次对象转换位置
JSON.toJSONString(youObject,SerializerFeature.DisableCirularReferenceDetect)原创 2018-04-26 09:32:26 · 722 阅读 · 1 评论 -
使用Spring Cloud Feign作为HTTP客户端调用远程HTTP服务
在Spring Cloud Netflix栈中,各个微服务都是以HTTP接口的形式暴露自身服务的,因此在调用远程服务时就必须使用HTTP客户端。我们可以使用JDK原生的URLConnection、Apache的Http Client、Netty的异步HTTP Client, Spring的RestTemplate。但是,用起来最方便、最优雅的还是要属Feign了。Feign简介Feign是一种声明...转载 2018-05-17 17:39:42 · 187 阅读 · 0 评论 -
事物场景当中,抛出异常被catch之后,如果要回滚事务,一定要手动回滚
Positive example 1: @Service @Transactional(rollbackFor = Exception.class) public class UserServiceImpl implements UserService{ @Override public void save (User user){ ...原创 2018-05-26 11:29:03 · 6456 阅读 · 0 评论 -
JAVA异常信息Exception e,e的相关方法
public class Test { public static void main(String[] args) { try { System.out.println(1 / 0); } catch (Exception e) { System.out.println(e.toString()); ...转载 2018-05-22 11:54:01 · 2768 阅读 · 0 评论 -
RabbitMQ 主题(Topic)Demo
出处:http://blog.csdn.net/lmj623565791/article/details/37706355虽然使用direct类型改良了我们的系统,但是仍然存在一些局限性:它不能够基于多重条件进行路由选择。在我们的日志系统中,我们有可能希望不仅根据日志的级别而且想根据日志的来源进行订阅。这个概念类似unix工具:syslog,它转发日志基于严重性(info/warning/crit...转载 2018-05-16 17:36:45 · 911 阅读 · 1 评论 -
【RabbitMQ】三种类型交换器 Fanout,Direct,Topic
RabbitMQ服务器会根据路由键将消息从交换器路由到队列中,如何处理投递到多个队列的情况?这里不同类型的交换器起到了重要的作用。分别是fanout,direct,topic,每一种类型实现了不同的路由算法。Fanout Exchange 不处理路由键。你只需要简单的将队列绑定到交换机上。一个发送到交换机的消息都会被转发到与该交换机绑定的所有队列上。很像子网广播,每台子网内的主机都获得了一份复...转载 2018-05-16 19:10:17 · 214 阅读 · 0 评论 -
Spring Boot配置文件放在jar外部
Spring Boot程序默认从application.properties或者application.yaml读取配置,如何将配置信息外置,方便配置呢?查询官网,可以得到下面的几种方案:通过命令行指定SpringApplication会默认将命令行选项参数转换为配置信息例如,启动时命令参数指定:java -jar myproject.jar --server.port = 9000从命令行指定配...原创 2018-03-16 10:09:17 · 2929 阅读 · 0 评论