自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(38)
  • 资源 (1)
  • 问答 (1)
  • 收藏
  • 关注

原创 Spring自定义BeanPostProcessor的时候怎么支持循环依赖

1. 什么是循环依赖?循环依赖说白了就是在我们的程序中,类A需要依赖于类B,类B又需要依赖于类A,这时候两个类实例就构成了相互依赖,你中有我,我中有你。@Componentpublic class A { @Autowired private B b;}@Componentpublic class B { @Autowired private A a...

2020-04-25 12:20:38 590 1

原创 springboot配置logback日志示例大全

PS: 1、springboot默认使用的日志框架是logback;2、想使用spring扩展profile支持,要以logback-spring.xml命名,其他如property需要改为springProperty一、configuration (最外层)scan当此属性设置为true时,配置文件如果发生改变,将会被重新加载,默认值为true。scanPeriod:设置监...

2019-10-11 10:27:26 473

原创 RedisLock 锁注解,基于springboot2.0.4,lettuce

最近因为业务需要用到加锁,所以就想用redis锁,因为对于业务来说,redis锁已经能够满足需求了。但是,因为需要很多地方需要用到加锁,项目又是基于springboot,所以,就想写个springboot-starter,然后封装个注解,需要的项目中只要引入starter,并且在需要加锁的方法上加上注解就可以了。1、添加pom依赖 <dependency> ...

2019-06-22 17:28:12 3149

原创 maven引用不到jar包问题总结

总结一下maven引用jar包遇到的问题:1、地址不对,jar包没有下载下来;2、网络问题,jar包没有下载下来;3、在install或者deploy工程的时候,没有install或者deploy root pom;4、idea编译器上的Maven Projects的Profiles中没有勾选nexusRepository,不勾选会导致最新的jar包更新不下来如图所示:...

2019-02-11 16:21:50 2058

原创 springboot2.0整合工作流activiti6.0,以及与业务集成时的一些坑

1、首先,要在springboot工程的pom文件中引入相关jar包&lt;dependency&gt; &lt;groupId&gt;org.activiti&lt;/groupId&gt; &lt;artifactId&gt;activiti-spring&lt;/artifactId&gt; &lt;version&gt;6.0.0&lt;/vers...

2018-10-13 17:45:43 80349 6

原创 springboot2.0集成ldap分页获取AD域中的用户信息

 1、添加maven依赖 &lt;dependency&gt; &lt;groupId&gt;org.springframework.boot&lt;/groupId&gt; &lt;artifactId&gt;spring-boot-starter-data-ldap&lt;/artifactId&gt; ...

2018-09-23 23:04:44 4386 3

原创 使用java nio 编写简易聊天室

服务器端:相当于是一个接收客户端消息的分发器,为了简单,直接在接收到客户端的消息后,                 直接发送给所有的客户端package chatroom.chatserver;import java.io.IOException;import java.net.InetSocketAddress;import java.net.ServerSocket;i

2018-01-09 14:45:22 1254

原创 怎么通过poi将Excel中的科学计数法正确导入?

最近导入excel表格的时候,因为excel表格中存在科学计数法,在使用poi导入数据库的时候,发现部分数据出现异常,例如:3010102010100000000 在excel中表示为 3.0101E+18 ,选中在excel展示出来的数据是正确的,但是通过poi导入数据库后数据就变成了3010102010199999700 ,导致公司业务不能正常运行,出现异常数据解析不了的现象。

2018-01-09 10:18:22 3273 3

原创 给大家分享一个桥接模式的讲解

本文最后会放上文章的连接。网上大部分讲设计模式之桥接模式的文章都千篇一律,看了很多文章也没理解什么情况,不过还是发现了一篇好文章,看了之后感觉终于明白了桥接模式是怎么一回事了。我的理解就是:如果在两个以及两个以上维度都可能会发生变化的情况下,如果使用继承的方式,那么类会出现飞速的增长,如果我们用了桥接模式,那么我们就可以让多个维度各自变化互不影响,只需要组合一下,就可以

2017-10-31 20:26:08 480

原创 springboot怎么使用maven打包时将本地jar包一块打进去

如果我们通过本地向springboot工程中引入了jar包,那么我们在打包发行的时候,怎么将本地jar也打包到该工程发行包中去呢?1、我们需要手工引入本地jar包      1.1  选中工程-->单击鼠标右键(选择如下图所示)            1.2 然后添加需要引入的本地jar包       1.3 点击apply后,点击o

2017-10-24 17:15:15 14233 3

原创 在maven仓库没有对应的jar包时,怎么将本地jar包通过maven引入

我们有时会遇到这么一种情况,就是我们本地下载了需要的jar包,可是在maven仓库中并没有相关的jar包,那么我们就没有办法通过maven引入该jar包,通过在工程中手工添加jar包在maven打包的时候并不会将该jar包打进去。那么我们此时就可以先将该jar包通过maven打包到我们本地的maven仓库,然后在通过maven引到我们对应的工程中就可以了。接下来,我们说一下步骤:1

2017-10-24 13:59:39 6320

转载 Java中几种常量池的区分

在java的内存分配中,经常听到很多关于常量池的描述,我开始看的时候也是看的很模糊,网上五花八门的说法简直太多了,最后查阅各种资料,终于算是差不多理清了,很多网上说法都有问题,笔者尝试着来区分一下这几个概念。1.全局字符串池(string pool也有叫做string literal pool)全局字符串池里的内容是在类加载完成,经过验证,准备阶段之后在堆中生成字符串对象实例,然后将该字符

2017-10-19 14:55:26 238

原创 linux命令学习总结

注意shell中通配符和正则表达式的区别 通配符:*表示任意的字符0-n个 正则: *表达*号前面的字符匹配0-n个   nohup command &amp; 后台运行// 例如运行java程序nohup java -jar test.jar &gt;/dev/null 2&gt;&amp;1 &amp; // 这句话就是说后台运行java...

2017-09-24 21:26:05 684

原创 linux命令文本操作随笔记

以下是我在学习linux命令的时候随手记的一些命令:文本切割:cut -d";" [file] 自定义分割符 -b 按字节 -c 按字符echo "123" | cut -c 1 // 按字符切割,取第一个字符echo "123" | cut -c 1-2,3 // 按字符切割,取第123个字符echo "1,2,3" |

2017-09-24 21:12:00 421

原创 使用springboot时,@Scheduled定时器遇到的问题

@Scheduled 这个注解确实给我们带了很大的方便,我们只要加上该注解,并且根据需求设置好就可以使用定时任务了。但是,我们需要注意的是,@Scheduled 并不一定一定会按时执行。因为使用@Scheduled 的定时任务虽然是异步执行的,但是,不同的定时任务之间并不是并行的!!!!!!!!在其中一个定时任务没有执行完之前,其他的定时任务即使是到了执行时间,也是不会执行的,它们会进

2017-09-18 21:42:03 18504 1

原创 使用BitSet对1000万个Int整数进行排序

//因为BitSet中可以存true/false,而且是按位存储,所以在数据量很大的时候,合理的使用BitSet可以节省很大的内存空间,//提高程序的运算效率。// 下面是我使用Bitset和Arrays工具类进行排序的测试类public class BitSetSort { public static void main(String[] args) {// Stri

2017-09-12 21:48:39 1635 1

原创 AOP 切面的使用,以及如何在通知上获取切入方法的注解和参数

1、自定义注解@Retention(RetentionPolicy.RUNTIME)@Target(value=ElementType.METHOD)public @interface AdviceAnnotation { String name();}2、service层public interface AdviceService { void study(String

2017-09-09 18:52:49 5355

原创 证书,私钥,公钥,pfx,keystore,pem,der 都是什么??

刚开始接触证书,很容易就会被各种名词整的迷迷糊糊,因为对这一块一直不在熟悉,所以今天找机会好好看了一下关于证书的知识点,,主要是理了一下思路。通过搜索引擎一搜索,我们会发现很多介绍文章,如果没接触过这一块的话,一上来很多的名字就会把人绕晕了。什么csr,crt,cer,keystore等等。我们知道,现在的网站为了数据的安全,往往都会使用证书进行签名或者加密数据。可以证书的各种后缀

2017-09-08 15:16:58 20237 2

原创 电脑装多个jdk后,配置环境变量无效的解决办法

最近在使用JAXB进行xml和javabean进行转换的时候,遇到了一件事,就是在我本机上可以正常转换,可是到了测试环境和正式环境转换出来的内容都是null,经过查找原因,最后感觉是jdk版本问题导致的转换出现了问题。我本机的JDK版本是1.8.0_77,测试机上的版本是1.8.0_111,正式机上是1.8.0_4几,所以我就在测试机上又装了一个1.8.0_77的JDK,到了这里,

2017-08-25 15:31:32 3167 1

原创 springcloud中的feign使用

我们使用springcloud的feign,可以让我们像调用本地方法似的调用远程方法,就和dubbo类似。但是,使用feign的时候,我们要注意几点。首先,我们要开启feign。@EnableFeignClients该注解就可以开启feign功能。使用feign的时候,参数上我们一定要加@RequestParam,@RequestBody等注解,不然的话就会报错。

2017-08-16 16:33:33 573

原创 Javaweb中乱码问题详解

为什么需要编码?由于人类的语言太多了,在计算机中表示这些语言的符号太多了,导致在计算机中无法通过一个基本的存储单元--字节来表示,所以我们就需要进行一些拆分和翻译工作,以使计算机可以理解我们的语言。计算机中都有哪些编码?ASCII码:共128个字符,用一个字节的低7位表示,0-31是控制字符,32-126是打印字符;ISO-88559-1:扩展了ASCII码,共256个字符,包

2017-08-15 21:23:56 192

原创 同步异步和阻塞非阻塞

今天突然看到同步异步和阻塞非阻塞的问题,一度陷入迷茫,经过我努力的汲取知识,在这里说下我的理解。同步异步:可以理解成这是一种行为。阻塞非阻塞:可以理解成这是一种状态。举一个我看到的很不错的例子:《张大爷烧水》话说张大爷有两只壶,一只是普通的烧水壶,一只是有响笛的壶。今天张大爷心情不错,想泡茶喝。那还等什么,烧水呗!(同步阻塞):张大爷拿出了普通的烧水壶开始烧水,然后站在旁边

2017-08-14 22:40:01 229

原创 Java线程之semaphore和Exchanger

Semaphore是Java线程的一个计数信号量。我们可用于多线程的并发访问控制。就像我们常见的线程池,数据库连接池就可以使用Semaphore进行逻辑的实现。Semaphore中我们就介绍两个最常用的两个方法。acquire() 从Semaphore获取许可,如果计数不小于0,就说明还有可用的许可,那么线程就可以成功获取许可,执行。如果没有许可      了,那么这个方法就会一直阻塞

2017-08-13 15:12:09 265

原创 大白话讲解ThreadLocal的原理

ThreadLocal顾名思义,本地线程,可以理解为本地线程变量,说白了就是操作本地线程的局部变量。下面我们通过源码进行说明:首先,我们看一下ThreadLocal的set方法源码实现:public void set(T value) { Thread t = Thread.currentThread(); ThreadLocalMap map = ge

2017-08-12 17:10:36 1340 1

原创 Java如何捕获线程异常?

首先,我们要知道,在Java中,线程中的异常是不能抛出到调用该线程的外部方法中捕获的。为什么不能抛出到外部线程捕获?因为线程是独立执行的代码片断,线程的问题应该由线程自己来解决,而不要委托到外部。”基于这样的设计理念,在Java中,线程方法的异常都应该在线程代码边界之内(run方法内)进行try catch并处理掉.换句话说,我们不能捕获从线程中逃逸的异常。怎么进行的限制?通过

2017-08-10 13:04:45 6140

原创 Java生成并合并图片以及base64转图片

由于最近研究了下打码平台(验证码识别平台),但是像需要特殊说明的二维码(例如:只需要提取验证码中黄颜色的字符),就需要将说明信息和验证码图片合成一张图片,然后在发送给打码平台才可以。所以,我就研究了下使用Java操作图片。因为我获取到的验证码图片信息是经过base64编码的字符串,所以我需要先进行解码。其次因为我只需要提取特定颜色的信息,所以我还要讲具体信息和验证码进行图片合成。下

2017-08-09 09:20:04 5236

原创 Java的静态分派和动态分派

静态分派:Java的静态分派只涉及到方法的重载,也就是我们实际调用的是哪个重载方法实际上是在编译期间确定的。下面来举例说明一下:// 水果接口interface Fruit{}// 苹果实现类class Apple implements Fruit{}// 橘子实现类class Orange implements Fruit{}// 重载方法class

2017-08-08 15:42:50 311

原创 Java通过反射获取泛型实际类型总结(什么可获取,什么不可获取)

Type接口说明Type接口只有一个实现类Class,但是有四个子接口,这四个Type子接口描述了Java泛型的四种形式。分别是:GenericArrayType 该接口表示一种数组类型,其组件类型为参数化类型或类型变量,如参数化类型数组Map[] map,还有类型变量数组T[] tParameterizedType 该接口表示参数化类型,如 Collection。Ty

2017-08-04 11:19:53 7709

原创 Java内部类总结

很多学习Java的人都知道Java有内部类,但是我想大部分人在开发中都很少使用内部类编写代码。大部人也不知道内部类有什么作用。接下来,我们就一起来聊聊内部类。Java中有:成员内部类,静态内部类,局部内部类,匿名内部类 四种。成员内部类:public class OutClass{ private class InnerClass{ }}

2017-08-02 09:09:28 170

原创 在toString()方法中千万不要使用this

如果我们想打印出一个对象的引用地址,我们可以想到重写toString()方法,在该方法中打印this的值,因为this就是指代的本身。然后我们就写了如下的代码:@Overridepublic String toString(){ return "对象地址:"+this;}可是,这样的话,就导致了toString()方法的无限递归调用,最终导致内存溢出。为什么

2017-08-01 17:23:31 2316

转载 sapjco3使用详解

上篇文章看完之后,感觉很清晰了,于是我下载了sapjco3,准备自己亲自写一遍,可是,等我下载下来准备开写的时候,发现了我在JCO中并没有发现createClient()等方法,查阅了很多文章后发现,貌似sapjco3和以前的写法不太一样。于是,在这里,我将sapjco3的用发展示出来,都做了详细的解释。import java.io.File;import java.io.FileO

2017-07-28 10:16:35 3250 1

转载 Java使用Jco连接sap详解

SAP的R/3系统与Java平台一样有着许多类似的技术理念,以及同样广泛的企业级用户,但是它们完全是两个不同的世界。当用户面临流程或者数据整合方面的需求的时候,就迫切需要一种高效的方式,在R/3系统和Java平台之间实时地交换数据。基于这样的需求,SAP提供了一套高效的基于RFC的ABAP和Java进程间通讯组件:SAP Java Connector(JCo)。 本文将介绍JCo组

2017-07-27 11:28:25 8802

原创 springboot包扫描导致的问题

springboot 默认扫描的路径,是该工程application启动类所在包以及所有子包下的所有文件。但是今天遇到一个问题,我在工程中引入了我的另一个工程,假如是A工程引入了B工程。我的A工程的启动类在com.mpc.test1 包目录下,我的B工程的启动类在com.mpc 目录下,也就是说A工程的包级结构比B工程多了一级。A工程中的某个接口继承了B工程的某个接口,而在启动A工

2017-07-20 18:19:13 3592

原创 使用自定义注解进行restful请求参数的校验

在使用springmvc开发的时候,我们通常会在controller中的方法参数实体类中加上@NotNull()等类似注解,然后在方法参数上加上@Vilad 注解,这样在有请求的时候,就会自动按照我们的注解进行参数是否合法,避免了我们手工的校验。但是,自带的校验注解有的时候并不能满足我们的业务验证需求,因此,我们就有必要进行自定义校验注解,以业务为需求定制我们自己的校验注解。下面我

2017-07-19 15:31:43 5164

转载 多线程-线程的中断

说明一下:interrupt()方法是给其它线程设置中断状态,不是指给当前线程设置中断状态原文地址:http://blog.csdn.net/axman/article/details/562249[线程的中断]不客气地说,至少有一半人认为,线程的"中断"就是让线程停止.如果你也这么认为,那你对多线程编程还没有入门.在java中,线程的中断(interrupt)只是改变

2017-07-17 15:04:53 184

原创 设计模式之代理模式and装饰者模式

注意:本文不讲具体的概念,只是谈谈自己的一些想法。代理模式分为:静态代理,动态代理(jdk动态代理,cglib动态代理)静态代理:静态代理就是在开发的时候直接编码到程序中,也就是在编码的时候,我们就已经确定了被代理的对象等信息。静态代理思路:创建一个接口,代理类和被代理类都实现该接口,然后代理类还要持有本代理类的一个实例。

2017-07-14 10:12:51 227

原创 java访问者模式学习总结

访问者模式,自我感觉就相当于是从不同的方向去实现相同的问题,只不过使用访问者模式后,和一般写法导致的扩展能力正好相反。      一般继承接口,实现所有接口方法:不同实现类的扩展容易,其中的方法扩展困难。     访问者模式:不同实现类扩展困难,其中的方法扩展容易。    一般情况下我们都是定义好接口,以及接口需要实现的所有方法,然后方法的具体实现就交给不同的实现类去实现。这样的话

2017-07-01 11:54:16 356

原创 java中condition使用遇到的问题

今天在学习java中的condition的时候,遇到一个问题。(最后发现还是基础不行啊~)在使用condition.await()方法之后,我以为该线程就结束了,剩余的代码不执行了,后来在写demo的时候发现测试结果怎么也不正确,一调试发现condition.await()后面的代码执行了。所以,await()方法只是让线程停止了执行,并且释放了锁,在使用signal()重新唤醒该线程

2017-06-07 14:04:33 687

jco_jar_dll(最全资源)

Java通过jco调用sap最全jar,dll文件

2017-07-27

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

TA关注的人

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