自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 Spring IOC 容器源码分析 - 循环依赖的解决办法

1. 简介本文,我们来看一下 Spring 是如何解决循环依赖问题的。在本篇文章中,我会首先向大家介绍一下什么是循环依赖。然后,进入源码分析阶段。为了更好的说明 Spring 解决循环依赖的办法,我将会从获取 bean 的方法getBean(String)开始,把整个调用过程梳理一遍。梳理完后,再来详细分析源码。通过这几步的讲解,希望让大家能够弄懂什么是循环依赖,以及如何解循环依赖。...

2019-08-21 15:55:00 201

转载 Spring BeanFactory 与 FactoryBean 的区别

BeanFactory 和 FactoryBean 都是Spring Beans模块下的接口BeanFactory是spring简单工厂模式的接口类,spring IOC特性核心类,提供从工厂类中获取bean的各种方法,是所有bean的容器。见以下结构视图FactoryBean仍然是一个bean,但不同于普通bean,它的实现类最终也需要注册到BeanFactory中。...

2019-08-01 11:06:00 165

转载 Java中@SuppressWarnings("unchecked")的作用

J2SE 提供的最后一个批注是 @SuppressWarnings。该批注的作用是给编译器一条指令,告诉它对被批注的代码元素内部的某些警告保持静默。 一点背景:J2SE 5.0 为 Java 语言增加了几个新的特性,并且和它们一起增加了许多新的警告并承诺在将来增加更多的警告。您可以为 "javac" 增加 -Xlint 参数来控制是否报告这些警告(如@Deprecated)。...

2019-06-28 18:04:00 218

转载 Spring Bean的作用域以及lookup-method标签的使用

Spring Framework支持五种作用域,如下图所示:singleton:表示一个容器中只会存在一个bean实例,无论在多少个其他bean里面依赖singleton bean,整个容器都只会存在一个实例。相当于是容器的全局变量。prototype:一个容器中可能会存在多个bean实例,prototype bean的实例产生有两种情况,一种是其他bean请求依赖prot...

2019-06-24 11:40:00 133

转载 bean标签的常用属性

这篇文章总结spring中bean标签的常用属性。bean标签常用属性有:idnameclassfactory-methodfactory-beaninit-methoddestory-methodscopeautowire下面具体来所有这些属性怎么使用。id属性id标签是bean的唯一标识,IoC容器中bean的id标签不能重复,否则报错。name属性name是...

2019-06-24 11:12:00 164

转载 自定义注解使用

1.自定义注解@Documented@Retention(RetentionPolicy.RUNTIME)@Target(ElementType.FIELD)public @interface FieldConstraints { /** * 字段长度判断. * @return 返回限制长度. */ int ...

2019-06-19 17:27:00 91

转载 ApplicationContextAware接口的作用

在Web应用中,Spring容器通常采用声明式方式配置产生:开发者只要在web.xml中配置一个Listener,该Listener将会负责初始化Spring容器,MVC框架可以直接调用Spring容器中的Bean,无需访问Spring容器本身。在这种情况下,容器中的Bean处于容器管理下,无需主动访问容器,只需接受容器的依赖注入即可。但在某些特殊的情况下,Bean需要实现某个...

2019-06-14 17:19:00 141

转载 Guava之FluentIterable使用示例

FluentIterable 是guava集合类中常用的一个类,主要用于过滤、转换集合中的数据;FluentIterable是一个抽象类,实现了Iterable接口,大多数方法都返回FluentIterable对象,这也是guava的思想之一。transform:对于ListenableFuture的返回值进行转换。allAsList:对多个ListenableFuture的合并,返...

2019-06-11 20:56:00 1148

转载 理解Maven中的SNAPSHOT版本和正式版本

Maven中建立的依赖管理方式基本已成为Java语言依赖管理的事实标准,Maven的替代者Gradle也基本沿用了Maven的依赖管理机制。在Maven依赖管理中,唯一标识一个依赖项是由该依赖项的三个属性构成的,分别是groupId、artifactId以及version。这三个属性可以唯一确定一个组件(Jar包或者War包)。其实在Nexus仓库中,一个仓库一般分为public(R...

2019-05-30 15:15:00 83

转载 公钥私钥

一、公钥算法与私钥算法1、私钥算法私钥加密算法,又称对称加密算法,因为这种算法解密密钥和加密密钥是相同的。也正因为同一密钥既用于加密又用于解密,所以这个密钥是不能公开的。常见的有《DES加密算法》、《AES加密算法》。2、公钥算法公钥加密算法,也就是非对称加密算法,这种算法加密和解密的密码不一样,一个是公钥,另一个是私钥:公钥和私钥成对出现1.公开...

2019-05-17 11:39:00 129

转载 Java 内部类综述

转载自:https://blog.csdn.net/justloveyou_/article/details/53245561转载于:https://www.cnblogs.com/PengChengLi/p/10797594.html

2019-04-30 18:26:00 68

转载 Java 访问权限控制:你真的了解 protected 关键字吗?

摘要:  对于类的成员而言,其能否被其他类所访问,取决于该成员的修饰词;而对于一个类而言,其能否被其他类所访问,也取决于该类的修饰词。在Java中,类成员访问权限修饰词有四类:private,无(包访问权限),protected 和 public,而其中只有包访问权限和public才能修饰一个类(内部类除外)。特别地,很多Java书籍对protected可见性的介绍都比较笼统,本文重...

2019-04-30 17:53:00 69

转载 反射---Java高级开发必须懂的

理解反射对学习Java框架有很大的帮助,如Spring框架的核心就是使用Java反射实现的,而且对做一些Java底层的操作会很有帮助。一、Class类的使用 1、万事万物皆对象,(当然,基本数据类型,静态成员不是面向对象(属于类的)),所以我们创建的每一个类也都是对象,即类本身是java.lang.Class类的实例对象,但是这些对象都不需要new出来,因为jav...

2019-04-30 11:35:00 114

转载 js获取select标签选中的值

js获取select标签选中的值var obj = document.getElementByIdx_x(”testSelect”); //定位idvar index = obj.selectedIndex; // 选中索引var text = obj.options[index].text; // 选中文本var value = obj.options[i...

2019-04-29 10:54:00 109

转载 JAVA中循环删除list中元素的方法总结

印象中循环删除list中的元素使用for循环的方式是有问题的,但是可以使用增强的for循环,然后今天在使用时发现报错了,然后去科普了一下,再然后发现这是一个误区。下面就来讲一讲。。伸手党可直接跳至文末。看总结。。  JAVA中循环遍历list有三种方式for循环、增强for循环(也就是常说的foreach循环)、iterator遍历。1、for循环遍历listfor...

2019-04-29 10:48:00 91

转载 java 异常java.lang.UnsupportedOperationException

在项目中采用一个枚举的集合,本人采用Collections中的空集合Collections.emptyList()在添加时发生异常:常见集合如下:private List<VacationCategory> vacationcategorys = Collections.emptyList();报错误如下:-- Encapsulated excepti...

2019-04-29 10:42:00 180

转载 linux下tomcat日志文件现问号乱码

在使用liunux系统下,使用tomcat记录的日志出现乱码的情况,不能显示中文,中文出现?问号乱码情况,不能正常查看linux下乱码可能有三个情况1、linux不含中文支持语言包打开远程连接客户端使用echo $LANG,查看当前语言包是否是zh_CN.UTF-8 ,如果不是先下载安装中文语言包yum -y groupinstall chinese-suppor...

2019-04-19 14:43:00 550

转载 idea 如何优雅的添加.ignore 忽略不必要提交的文件

最近有点时间然后就跑去搜了下idea热门的插件,一不小心发现了一个.ignore插件。有过在idea使用git都知道.gitignore文件,而这个插件就是能优雅的帮我们做这件事.首先先讲下安装这个插件:跟着这张图操作大家就明白啦,老孙就不仔细讲解了。怎么使用这个插件呢选择当前项目,new file然后选择要忽略的文件然后就会...

2019-04-08 15:45:00 915

转载 Elasticsearch之如何合理分配索引分片

大多数ElasticSearch用户在创建索引时通用会问的一个重要问题是:我需要创建多少个分片?在本文中, 我将介绍在分片分配时的一些权衡以及不同设置带来的性能影响. 如果想搞清晰你的分片策略以及如何优化,请继续往下阅读.为什么要考虑分片数分片分配是个很重要的概念, 很多用户对如何分片都有所疑惑, 当然是为了让分配更合理. 在生产环境中, 随着数据集的增长, 不合理的分配策略...

2019-04-03 17:16:00 119

转载 ceshi

测试机地址:192.168.144.78Root1qaz@WSX_h5war包地址:/export/data/tomcatRoot/admin.plus.jd.com端口:5017测试机部署步骤:1.把war把复制到测试机,解压——jar -xvf jd-vip-plus-admin.war2.ps-ef...

2019-03-18 11:05:00 101

转载 Java日志框架中真的需要判断log.isDebugEnabled()吗?

在项目中我们经常可以看到这样的代码:if(logger.isDebugEnabled()){logger.debug(message);}简单来说,就是用isDebugEnabled方法判断下是能提升性能的!!有些人不明白为什么要这样写。有些人认为这样是为了能够控制日志的输出,对于下面这行代码:logger...

2019-03-12 15:42:00 147

转载 Spring4自动装配(default-autowire)

§1 什么是自动装配?SpringIoC容器可以自动装配(autowire)相互协作bean之间的关联关系。因此,如果可能的话,可以自动让Spring通过检查BeanFactory中的内容,来替我们指定bean的协作者(其他被依赖的bean)。简而言之,就是对于bean当中引用的其他bean不需要我们自己去配置它改使用哪个类,Spring 的自动装配可以帮助我们完成这些工作。...

2019-03-12 15:22:00 707

转载 java的@PostConstruct注解

javax.annotation注释类型 PostConstruct@Documented@Retention(value=RUNTIME)@Target(value=METHOD)public @interface PostConstructPostConstruct 注释用于在依赖关系注入完成之后需要执行的方法上,以执行任何初始化...

2019-03-11 17:31:00 144

转载 Google Guava之--cache

一、简介  Google Guava包含了Google的Java项目许多依赖的库,如:集合 [collections] 、缓存 [caching] 、原生类型支持 [primitives support] 、并发库 [concurrency libraries] 、通用注解 [common annotations] 、字符串处理 [string processing] 、I/O 等等。本...

2019-03-11 17:18:00 63

转载 Java类加载机制与Tomcat类加载器架构

Java类加载机制类加载器 虚拟机设计团队把类加载阶段中的“通过一个类的全限定名来获取描述此类的二进制字节流”这个动作放到Java虚拟机外部去实现,以便让应用程序自己决定如何去获取所需要的类。实现这个动作的代码模块称为“类加载器”。 类加载器可以说是Java语言的一项创新,也是Java语言流行的重要原因之一,它最初是为了满足Java Applet的需求...

2019-03-07 16:29:00 56

转载 搞懂JVM类加载机制

有这样一道面试题:class Singleton{ private static Singleton singleton = new Singleton(); public static int value1; public static int value2 = 0; private Singleton(){ value1++; ...

2019-03-07 16:28:00 63

转载 Java 类加载机制

阅读目录 什么是类加载器 类加载器与类的”相同“判断 类加载器种类 双亲委派模型 类加载过程 自定义类加载器 JAVA热部署实现什么是类加载器负责读取 Java 字节代码,并转换成java.lang.Class类的一个实例;类加载器与类的”相同“判断类加载器除了用于加载类外,还可用于确定类在Java虚拟机中的唯一性。即便...

2019-03-07 16:26:00 41

转载 堆,栈

一:概念1.栈:当程序进入一个方法时,会为这个方法单独分配一块私属存储空间,用于存储这个方法内部的局部变量,当这个方法结束时,分配给这个方法的栈会被释放,这个栈中的变量也将随之释放。2.推:存放不在当前方法栈中的那些数据二、内存区域类型1.寄存器:最快的存储区, 由编译器根据需求进行分配,我们在程序中无法控制;1. 栈:存放基本类型 的变量数据和对象的引用,但对象本身...

2019-03-07 10:33:00 74

转载 BigDecimal.setScale用法总结

1.BigDecimal num1 = new BigDecimal(2.225667);//这种写法不允许,会造成精度损失2.BigDecimal num2 = new BigDecimal(2);//这种写法是可以的3.BigDecimal num = new BigDecimal("2.225667");//一般都会这样写最好4.int count = num....

2019-03-06 14:36:00 81

转载 Git创建本地分支并关联远程分支

创建本地分支git branch 分支名例如:git branch dev,这条命令是基于当前分支创建的本地分支,假设当前分支是master(远程分支),则是基于master分支创建的本地分支dev。切换到本地分支git checkout 分支名例如:git checkout dev,这条命令表示从当前master分支切换到dev分支。创建本地分支并切换git ch...

2019-03-06 11:25:00 98

转载 spring StopWatch用法

背景有时我们在做开发的时候需要记录每个任务执行时间,或者记录一段代码执行时间,最简单的方法就是打印当前时间与执行完时间的差值,然后这样如果执行大量测试的话就很麻烦,并且不直观,如果想对执行的时间做进一步控制,则需要在程序中很多地方修改,目前spring-framework提供了一个StopWatch类可以做类似任务执行时间控制,也就是封装了一个对开始时间,结束时间记录操作的Java类...

2019-03-05 18:06:00 63

转载 Collections.synchronizedList线程安全性陷阱

摘要: 详细的解析:Collections.synchronizedList 1 :关注要点,为什么在有synchroniezed方法的同时会出现 Collections.synchronizedList 2 :知识背景: 您可能需要了解java Synchronized方法的加锁的各种机制,包括如何上锁,锁对象 3 : plus: 您需要不断的深化 Jav...

2019-03-05 15:45:00 197

转载 如何线程安全的使用HashMap

在周二面试时,一面的面试官有问到HashMap是否是线程安全的,如何在线程安全的前提下使用HashMap,其实也就是HashMap,Hashtable,ConcurrentHashMap和synchronized Map的原理和区别。当时有些紧张只是简单说了下HashMap不是线程安全的;Hashtable线程安全,但效率低,因为是Hashtable是使用synchronized的,所有...

2019-03-01 19:51:00 97

转载 Java transient关键字使用小记

哎,虽然自己最熟的是Java,但很多Java基础知识都不知道,比如transient关键字以前都没用到过,所以不知道它的作用是什么,今天做笔试题时发现有一题是关于这个的,于是花个时间整理下transient关键字的使用,涨下姿势~~~好了,废话不多说,下面开始:1. transient的作用及使用方法 我们都知道一个对象只要实现了Serilizable接口,这个对象就...

2019-03-01 15:31:00 126

转载 回滚的常用手法

传统VCS的回滚操作对于版本控制系统VCS来说,回滚这个操作应该是个很普通也是很重要的需求。如果你是传统VCS,比如SVN或者P4来说,revert是个最直观,也是最直接的手段,当然前提是你的修改还没有被提交到远程的中央仓库。如果你已经ci了你的code到了远程中央仓库,那revert恐怕也无能为力,只能借助其他命令workaroud这个问题,比如:你用SVN的话,就得来个逆...

2019-02-27 18:22:00 707

转载 JAVA中循环删除list中元素的方法总结

印象中循环删除list中的元素使用for循环的方式是有问题的,但是可以使用增强的for循环,然后今天在使用时发现报错了,然后去科普了一下,再然后发现这是一个误区。下面就来讲一讲。。伸手党可直接跳至文末。看总结。。  JAVA中循环遍历list有三种方式for循环、增强for循环(也就是常说的foreach循环)、iterator遍历。1、for循环遍历listfor...

2019-02-25 14:44:00 49

转载 checkout 提示失败

事故现场有些时候,当我们使用 git checkout <branchname>命令切换分支的时候,有时会切换失败,然后出现以下的提示信息:提示信息说的很清楚,当前分支有未跟踪的文件,checkout 命令会覆盖它们,请缓存( stash )或者提交( commit )。先说解决方法吧这个时候,你有两种选择:###1.未跟踪文件的内容改动很重要,保存修改//第...

2019-02-25 14:41:00 1048

转载 mybatics之trim

1.<trim prefix="" suffix="" suffixOverrides="" prefixOverrides=""></trim>prefix:在trim标签内sql语句加上前缀。suffix:在trim标签内sql语句加上后缀。suffixOverrides:指定去除多余的后缀内容,如:suffixOverrides=",",去除tr...

2019-02-20 16:58:00 74

转载 mybatis 中 foreach collection的三种用法

foreach的主要用在构建in条件中,它可以在SQL语句中进行迭代一个集合。foreach元素的属性主要有 item,index,collection,open,separator,close。item表示集合中每一个元素进行迭代时的别名,index指 定一个名字,用于表示在迭代过程中,每次迭代到的位置,open表示该语句以什么开始,separator表示在每次进行...

2019-02-20 16:57:00 64

转载 MyBatis传入多个参数的问题

一、单个参数:public List<XXBean> getXXBeanList(String xxCode); <select id="getXXXBeanList" parameterType="java.lang.String" resultType="XXBean">  select t.* from tableName t ...

2019-02-20 16:55:00 52

空空如也

空空如也

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

TA关注的人

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