自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(29)
  • 资源 (1)
  • 收藏
  • 关注

原创 理解Java泛型通配符上下边界

<? extends T>和<? super T>是Java泛型中的“通配符(Wildcards)”和“边界(Bounds)”的概念。<? extends T>:是指 “上界通配符(Upper Bounds Wildcards)”<? super T>:是指 “下界通配符(Lower Bounds Wildcards)” // 定义一个Number类型的泛型容器 List<Number> rawNumberContaine

2020-12-03 14:19:55 887 1

原创 java8正则之根据命名捕获组正则提取文本内容

JDK版本1.8命名捕获组的形式(?&amp;amp;lt;name&amp;amp;gt;X) X, as a named-capturing group命名捕获组应用@Testpublic void namedGroup() { Pattern pattern = Pattern.compile(&amp;quot;(?&amp;amp;lt;text&amp;amp;gt;.*)&amp;quot;); Matcher matche

2018-10-15 10:05:14 2391 2

原创 在spring cloud中引入jaeger报'io.jaegertracing.spi.Reporter' 不存在问题

问题描述:在spring cloud项目中使用jaeger追踪系统opentracing-spring-jaeger-cloud-starter时出现错误2018-09-14 17:53:36.404 - DEBUG [main] sync [org.springframework.boot.diagnostics.LoggingFailureAnalysisReporter_report...

2018-09-14 22:00:33 2393

原创 Java Bean Validation自定义注解

版本来自springboot 版本 1.5.14.RELEASE其中validation部分的版本号为:&lt;!-- 接口 --&gt;&lt;dependency&gt; &lt;groupId&gt;javax.validation&lt;/groupId&gt; &lt;artifactId&gt;validation-api&lt;/artifactId&gt......

2018-07-24 09:22:47 2616

原创 java笛卡尔积算法实现

1、笛卡尔积定义(摘自百度百科)笛卡尔乘积是指在数学中,两个集合X和Y的笛卡尓积(Cartesian product),又称直积,表示为X × Y,第一个对象是X的成员而第二个对象是Y的所有可能有序对的其中一个成员 [1] 。假设集合A={a, b},集合B={0, 1, 2},则两个集合的笛卡尔积为{(a, 0), (a, 1), (a, 2), (b, 0), (b, 1), (...

2018-07-06 18:16:20 10373

原创 java求集合幂集算法

1、幂集所谓幂集(Power Set), 就是原集合中所有的子集(包括全集和空集)构成的集族。可数集是最小的无限集; 它的幂集和实数集一一对应(也称同势),是不可数集。不是所有不可数集都和实数集等势,集合的势可以无限的大。如实数集的幂集也是不可数集,但它的势比实数集大。 设X是一个有限集,|X| = k,则X的幂集的势为2的k次方。(摘自百度百科)|X| 表示集合X中元素的个数。...

2018-07-06 15:23:09 4278

原创 (八)关于spring aop的实现细节(如何实现的各种Advice)

(七)重点看了spring aop的各个主要接口的定义,以及简单分析了各个主要方法的作用,这节主要了解spring是怎么利用jdk\cglib 来实现的前置通知、环绕通知等等通过(七)中查看AbstractAutoProxyCreator类时,可以知道spring创建代理对象是通过ProxyFactory来创建的。那么这里就从ProxyFactory开始1、查看分析spring创建...

2018-05-21 10:17:41 2666

原创 (七)spring aop的源码学习

1.spring AOP相关的核心API接口定义关于AOP概念Aspect:方面 一个模块化的关于点Join point:连接点 程序中的一个执行点(比如执行方法、执行构造器)Advice: 通知 在特定的连接上的特定时机的特定行为Pointcut:切入点 用来匹配符合要求的连接点(用于配合通知使用,来控制在哪些连接点执行通知的行为)Int...

2018-05-11 17:36:16 331 1

原创 (六)关于spring中的FactoryBean与ObjectFactory以及其区别

1.查看接口定义以及其区别public interface FactoryBean&amp;lt;T&amp;gt; { //获取对象的工厂方法 @Nullable T getObject() throws Exception; //对象类型 @Nullable Class&amp;lt;?&amp;gt; getObjectType(); //是否是单例,这个属性...

2018-05-11 17:35:13 14242 4

原创 (五)关于BeanPostProcessor各个回调的时机

1、BeanPostProcessor的五大接口一共有11个回调方法1.1.BeanPostProcessor关于对象初始化前后的回调。public interface BeanPostProcessor { //该方法在bean实例化完毕(且已经注入完毕),在afterPropertiesSet或自定义init方法执行之前 @Nullable ...

2018-05-11 17:34:39 4875 1

原创 (四)BeanFactory初始化Singleton的实现细节

1.介绍查看ApplicationContext的启动以及初始化部分的代码时,发现最终实现对象创建以及所有非懒加载的单例对象整体初始化,都是通过DefaultListableBeanFacotry来实现的其中对象创建是通过beanFactory.getBean(xxx)来实现,而整体初始化是通过beanFactory.preInstantiateSingletons();来实现,下面针对这...

2018-05-11 17:33:58 4612

原创 (三)spring中BeanFacotryPostProcessor注册以及执行的先后顺序以及BeanPostProcessor的注册先后顺序

1. spring中的两大回调接口org.springframework.beans.factory.config.BeanFactoryPostProcessor关于对象工厂BeanFactory创建完毕的回调处理org.springframework.beans.factory.config.BeanPostProcessor关于通过对象工厂BeanFactory创建对象前后...

2018-05-11 17:32:47 4786 2

原创 (二)ApplicationContext的启动以及初始化过程

在查看SpringBoot的源码时,可以看到构造完ConfigurableApplicationContext实例后,是通过调用ConfigurableApplicationContext中的refresh方法来触发容器的一切处理流程的。1.关于AbstractApplicationContext的refresh()方法该方法是触发容器加载BeanDefinition以及创建对象等...

2018-05-11 17:32:19 5170

原创 (一)SpringBoot源码学习笔记

1、SpringBoot容器启动版本: &lt;parent&gt; &lt;groupId&gt;org.springframework.boot&lt;/groupId&gt; &lt;artifactId&gt;spring-boot-starter-parent&lt;/artifactId&gt; &lt;version&gt;...

2018-05-11 17:30:28 736

原创 在SpringTest中将Mockito的mock对象通过spring注入使用

1. 原理介绍通过BeanFactoryPostProcessor向BeanFactory中注册需要进行Mock的对象,使当前Bean容器在依赖注入时使用我们提供的Mock对象注入到实例中使用。具体需要交给容器管理的mock实例,是通过TestExecutionListener在容器开始启动前去解析当前测试类中的使用@Mock注解的字段,然后根据类型创建对应的Mock实例,将创建出来的M...

2018-04-27 18:37:18 12271 3

原创 Java封装统一的Result Model

在开发过程中,有时候会需要使用错误码+错误信息的形式,来返回某些业务操作的错误结果信息,来代替效率较低的异常传递。这样就需要封装一个统一的Result model作为返回值,代替直接返回数据等结果。1.定义错误码 - 错误信息接口错误码可能是String、Integer、Long 等类型,也可能是enum类型。因此这里使用泛型来代替,错误码类型,可以提高灵活性。也可以通过枚举直接...

2018-03-26 12:09:05 12300

原创 Java资源管理之ResourceBundle

/** * ResourceBundle 可以轻松实现国际化 * 命名规则按照:资源名_语言_国别.properties * &lt;p&gt; * baseName + "_" + language + "_" + script + "_" + country + "_" + variant * For example, * if baseName is "baseName" a

2018-03-08 22:41:50 444

原创 IDEA中使用eclipse快捷键

1.修改使用Eclipse风格的快捷键目的是习惯了使用eclipse的快捷键,在使用IDEA时不想重头记一套新的快捷键。按照下面的顺序操作File --> settings --> keymap --> 在下来框中选中Eclipse 选择Apply保存设置 这样改完就是elipse风格的快捷方式了2.单独设置一部分比较主要的与eclipse中不一致的操作2

2018-02-03 01:17:59 120031 13

原创 Maven jar项目引入本地jar包后奇怪的ClassNotFoundExtention

问题描述:在有几个老项目迁移过来的功能中,有几个比较古董级的jar包比较老,没有maven坐标,然后查阅一些资料,选择引入了本地jar包的配置方式如下:dependencies> dependency> groupId>org.xxxgroupId> artifactId>xxx-jarartifactId> version>1.0versio

2018-01-04 15:43:01 6495

原创 ITextRenderer多线程使用时java.lang.NullPointerException问题

问题:由于使用的版本比较古老:R5pre1,所以在使用过程中遇到了并发使用的问题,就是在多线程创建ITextRenderer时会出现.java.lang.NullPointerException: nullat org.xhtmlrenderer.util.XRLog.log(XRLog.java:206)at org.xhtmlrenderer.util.XRLog.render(XRLo

2018-01-02 16:24:41 1956 1

原创 Spring获取日期时间差8小时问题解决

问题默认情况下在使用spring的@ResponseBody返回json串时,如果有日期类型的数据,会发现在日期会莫名其妙的差8小时比如:2017-12-20 10:16:23.0结果是:2017-12-20 02:16:23分析经过查阅相关资料发现在spring转json的默认实现jackson中会根据时区去转换时间,而jackson的默认时区跟国内应该是相差8小时,所以再时间换算上自

2017-12-20 17:01:33 13404 1

原创 shiro权限标示符

1.shiro权限管理在实现shiro权限时,一般是继承AuthorizingRealm时,认证方法:doGetAuthenticationInfo(AuthenticationToken token)与授权方法:doGetAuthorizationInfo(PrincipalCollection principals)其中在授权方法中可以在AuthorizationInfo中添加权限标识符

2017-11-30 09:44:38 2095

原创 spring拓展之定义自己的namespace

1.查看源码认识spring是怎么加载xml配置的1.1 spring是怎么创建对象的?查看spring beanFactory的继承关系 通过查看源码可以得知,BeanFactory 中的对象创建是实际是根据RootBeanDefinition创建的, 在AbstractAutowireCapableBeanFactory有具体的实现,包括创建实例,利用Spring拓展的 java的内省Be

2017-10-24 14:24:46 5410

原创 java中包装数据类型与基本数据类型比较相等的问题

最近检查之前写过的代码,突然发下了一个问题,现场还原如下: @Test public void testEquals2(){ System.out.println(new Long(1000).equals(1000)); }根据平时对基础的理解,乍一看,没什么问题,但是经过运行得出的结果为:false 于是: @Test public voi

2017-09-27 16:21:41 1169

原创 SpringBoot使用devtools导致的类型转换异常

问题:最近在使用新框架SpringBoot + shiro + spring-data-jpa时,为了体验下spring自带的热部署工具的便捷,于是引入了<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <!-

2017-09-22 16:42:42 29962 7

原创 Thymeleaf表达式语法以及日期格式化

简单表达式 (simple expressions)${...} 变量表达式*{...} 选择变量表达式#{...} 消息表达式@{...} 链接url表达式字面量Text literals: 'one text' , 'Another one!' ,…文本Number literals: 0 , 34 , 3.0 , 12.3 ,…数字Boolean literals: true , f

2017-09-22 16:18:47 22182

原创 浅析java中的BigDecimal

在精确小数运算中,经常会用到java.math.BigDecimal这个类,那么BigDecimal到底能参与多大范围的数字间的运算呢,查看BigDecimal的注释:意思就是一个Bigdecimal是任意精度的 整数非标度值和32位标度值组成,那么BigDecimal的最大值,以及最大小数位到底可以是多少呢。通过查看源码可以看到public class BigDecimal extends Nu

2017-09-21 11:08:21 11273 1

原创 spring源码学习之容器监听器篇

一、监听器相关接口1、ApplicationEventPublisher容器的事件发布者//该接口规范了发布事件的基本功能public interface ApplicationEventPublisher { /** * 发布事件 */ void publishEvent(ApplicationEvent event); /** * 发布事件

2017-04-12 13:32:39 334

原创 Spring源码学习之容器篇

一、ApplicationContext系列浏览ApplicationContext接口体系如图: 其中主要分为ApplicationContext和WebApplicationContext 1、ApplicationContext接口//从接口ApplicationContext中可以看出,该接口扩展自对象工厂体系,主要实现的也还是一个对象工厂功能public interface Ap

2017-04-10 15:23:21 248 3

spring cloud文档pdf版(带书签)

spring-cloud的pdf格式文档 版本:Dalston.SR5 带书签,英文版

2018-07-31

空空如也

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

TA关注的人

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