@Documented@Retention(RetentionPolicy.RUNTIME)@Target(ElementType.METHOD)public @interface MapKey { String value();}只要注意这一点就可以了:@Target(ElementType.METHOD),说明是修饰方法的。

@Documented@Retention(RetentionPolicy.RUNTIME)@Target({})public @interface Many { String select() default "";FetchType fetchType() default FetchType.DEFAULT;}many当做注解,见它的属性:sel...

@Documented@Retention(RetentionPolicy.RUNTIME)@Target(ElementType.METHOD)public @interface Lang { Class<?> value();}需要注意:Lang表示什么呢?language

@Documented@Retention(RetentionPolicy.RUNTIME)@Target(ElementType.METHOD)public @interface Insert { String[] value();}@Documented@Retention(RetentionPolicy.RUNTIME)@Target(Elem...

@Documented@Retention(RetentionPolicy.RUNTIME)@Target(ElementType.METHOD)public @interface Flush {}看其注释:The maker annotation that invoke a flush statements via Mapper interface....

@Documented @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.METHOD) public @interface Delete { String[] value(); }@Documented @Retention(RetentionPolicy.RUNTIME) @Targ...

ConstructorArgs类很简单,如下所示,其实源码并不想想象中那么难,很多代码写的很短小的。很多人想写个开源东西,让自己简历更出彩,其实开源并不是很难的。不过,要想写出高质量的开源成品,那就难了,需要足够的阅历。@Documented @Retention(RetentionPolicy.RUNTIME) @Target(ElementType...

Case类用于动态sql生成部分。@Documented @Retention(RetentionPolicy.RUNTIME) @Target({}) public @interface Case { String value(); Class<?> type(); Result[] results() default {...

本文更新日期:2019年10月9日1、CacheNamespaceRef 源码Java里面没有指针,但是Java里面有引用,CacheNamespaceRef就是一个引用。它是谁的引用呢?请看源码注释:A namespace type to reference a cache (the namespace name become a FQCN of s...

本文更新日期:2019年10月5日1、@CacheNamespace的源码分析@CacheNamespace注解主要用于mybatis二级缓存,等同于<cache>属性。默认情况下,MyBatis 3 没有开启二级缓存,要开启二级缓存,需要在SQL 映射文件(mapper.xml)中添加一行:<mapper namespace=&qu...

AutomapConstructor类,有点意思,看其注释:The marker annotation that indicate a constructor for automatic mapping.这就是一个起到注释作用的类,注释的作用大不大,说大也大,没有注释,代码会让人抓狂。这个类没有什么可解释的,贴源码:@Documented @Reten...

Arg类所在的包package org.apache.ibatis.annotations;Arg类源码@Retention(RetentionPolicy.RUNTIME) public @interface Arg { boolean id() default false; String column() default "...

紧接上文,我给大家来个续文,之前没有这个想法,突然感觉有料了,就赶紧来篇续文。看不懂,没有关系。时间会解决一切问题的。在群里有个小伙伴提出一个问题,关于Kafka的,他使用的是python语言发送Kafka消息。问题是这样的:在使用pykafka的生产者的时候,尝试捕获异常,然后有异常的话,就重新实例化KafkaClient,然后再尝试继续生产,然后自...

主线程是从main函数开始的。非主线程,是从run函数开始的。run不要当做是普通的函数,函数是翻译过来的,原文是procedure,意指过程。main的准确描述是entry,而run也应该是entry。区分procedure和entry的区别对理解线程很关键。主线程main是可以接受输入参数的,int main(int argc, char *arg...

站长语:搞web开发的离不开redis,这篇文章写的不错,来源于网络,无论是菜鸟还是面试官都可以看看。Redis在互联网技术存储方面使用如此广泛,几乎所有的后端技术面试官都要在Redis的使用和原理方面对小伙伴们进行各种刁难。作为一名在互联网技术行业打击过成百上千名的资深技术面试官,看过了无数落寞的身影失望的离开,略感愧疚,故献上此文,希望各位读者以后...

最近看了一下关于锁的内容。感觉很多文章写的不是空洞就是细节繁琐。空洞,说明写的人水平有限;写的繁琐也不见的是好事,也可能说明作者没有吃透,云深不知处。有的作者从java讲到jvm的底层c++实现,翻代码虽不是人人都会,但是会的人也不少,列出源码未必就说明作者能做到云深也知处。我感觉有的作者也许就是在哗众取宠,大段代码贴上去,显示文章的高大上而已,我们读...

Java泛型的通配符上界通配符<? extends T>我们先来看一个例子:class Fruit {} class Apple extends Fruit {}现在我们定义一个盘子类:class Plate<T>{ T item; public Plate(T t){ item=t; }...

Java泛型擦除及其相关内容我们下面看一个例子:Class<?> class1=new ArrayList<String>().getClass(); Class<?> class2=new ArrayList<Integer>().getClass(); System.out.println(class...

编者语:从网上看到这篇文章,格式很好,其文洋洋洒洒写了不少字,然后我就整理了过来。讲泛型最好的地方就在《Java编程思想》,其他人写的文章,可读可不读的。就拿下面这篇文章吧,看看热闹就行了,别当回事,当回事你就输了。研究字节码看起来很高大上,不要被陌生而吓到。泛型是什么一说到泛型,大伙肯定不会陌生,我们代码里面有很多类似这样的语句:List<St...

140 年过去,回顾中关村传奇,依然要从陈春先说起。1978 年,中国物理代表团访问美国,走下飞机悬梯的人当中,就包括中科院物理所核聚变专家陈春先。这一年,他刚在全国科学大会上斩获一等奖,并和陈景润等人一道被破格提拔为中国最年轻的正研究员。人生和国运如果有四季,这都称得上是“春天”。当年,美国在国人眼里还是“腐朽没落、行将崩溃”的帝国主义。但沿着波士顿...