自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

|-| [- |_ |_ ()

0xCAFEBABE 0x53 0x74 0x61 0x74 0x69 0x63

  • 博客(91)
  • 收藏
  • 关注

原创 深入源码分析SpringIOC(三)

IOC的扩展点之灵活运用Spring框架文章目录IOC的扩展点之灵活运用Spring框架1. 初始化ApplicationContext2. BeanFactory的后处理2.1 BeanFactoryPostProcessor典型应用2.2 BeanFactoryPostProcessor注册与调用过程2.3 BeanFactory后处理小结3. BeanPostProcessor3.1 注册...

2018-12-13 16:24:16 431

原创 深入源码分析SpringIOC(二)

IOC之Bean的初始化(实例化与依赖注入)文章目录IOC之Bean的初始化(实例化与依赖注入)前情概要初始化Bean解决循环依赖的问题什么是循环依赖?Spring中如何解决循环依赖循环依赖总结总结前情概要回顾之前的内容IOC初始化之准备工作(定位、加载、注册) ,说到在ApplicationContext初始化时,会先去根据资源路径去定位、加载并且注册Bean信息到BeanFactory中...

2018-12-11 13:52:22 855

原创 深入源码分析SpringIOC(一)

IOC初始化之准备工作(定位、加载、注册)文章目录IOC初始化之准备工作(定位、加载、注册)Spring基本认识介绍几个重要的类BeanFactoryBeanDefinitionApplicationContextSpring容器(定位、加载、注册)总结Spring基本认识初衷:Spring框架一开始是为了解决开发的复杂性而存在的,所以归根解底他的目标就是四个字简化开发,这四个字几乎贯穿S...

2018-12-10 17:06:58 824 1

原创 深入Spring事务源码剖析事务(四)

深入Spring事务之实际场景下各个传播特性对事务的影响文章目录深入Spring事务之实际场景下各个传播特性对事务的影响概述环境准备场景简介model层Mapper层Service层Controller层在多事务的场景下实验各个传播特性(外层事务传播特性为**REQUIRED**时)内层事务为**REQUIRES_NEW** 时当外层事务正常,内层事务抛出异常时当外层事务抛出异常,内层事务无异常...

2018-12-07 09:37:38 1118

原创 深入Spring事务源码剖析事务(三)

深入Spring事务之分析各个传播特性的场景文章目录深入Spring事务之分析各个传播特性的场景前情概要回顾什么时候holder中的Active为true?回滚几个关键点!提交的几个关键点!挂起与恢复挂起恢复绑定与解绑绑定解绑结合传播特性去理解挂起、恢复、绑定、解绑**解析几种需要挂起的传播特性的情况**(当前存在事务情况下):存在事务情况下的**REQUIRES_NEW**总结:存在事务情况下...

2018-12-06 20:47:01 935

原创 深入Spring事务源码剖析事务(二)

深入Spring事务源码剖析事务之事务增强器文章目录深入Spring事务源码剖析事务之事务增强器前情概要事务增强器 TransactionInterceptor类继承关系核心事务底层封装实现方法处理事务异常的情况回顾Status几个关键点!总结事务异常情况处理事务无异常准备提交的情况回顾Status几个关键点!总结事务无异常准备提交情况小结**doCleanupAfterCompletion**...

2018-12-06 16:40:37 1444 4

原创 深入Spring事务源码剖析事务(一)

深入Spring事务源码剖析事务文章目录深入Spring事务源码剖析事务事务简介Spring事务基本原理与传播属性Spring中的传播属性Spring事务的基本原理深入源码剖析Spring事务的实现原理事务配置的起始点(配置文件开启事务)自定义标签深入源码分析代理流程总结事务简介此篇文章需要有SpringAOP基础,知道AOP底层原理可以更好的理解Spring的事务处理。首先事务是什么呢?必...

2018-12-06 11:40:25 1651 2

原创 设计模式之原型模式(十三)

原型模式是设计模式中算是简单的一种设计模式了,因为它有语言实现的支撑,只需要调用定义好了的方法即可使用,在写这篇设计模式之前,我看过很多资料,有几点比较疑惑的点,在这篇文章中验证,也顺便描述一下什么是原型模式。 定义:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。这个定义也是很简单了,主要意思就是用一个实例当作是一个原型,通过拷贝这个实例去创建新的对象,就像西游记的美猴王...

2018-11-05 18:04:23 208

原创 Mybatis与Spring集成时做了哪些事情

 这篇博客主要是来分析MyBatis与Spring集成后Spring帮我们做了哪些事情,以及集成后使用MyBatis有什么变化。首先来看看集成包下有什么东西吧。第一个模块annotation:这里做了一个注解(MapperScan),用于扫描mapper。以及mapper扫描注册器(MapperScannerRegistrar),此扫描注册器实现了ImportBeanDefinitio...

2018-11-03 22:20:16 3519

原创 手写MyBatis2.0附带Plugin功能(增强版本)

基于上一篇博客,手写MyBatis1.0末尾提出的几个不足之处与需要新增的地方,这篇博客将完善之前的MyBatis1.0版本,升级为2.0版本~将会新增的功能:加入Plugin插件功能。 加入缓存功能。 分解Executor指责,分出各个类使其符合单一职责原则。 使用注解灵活配置mapper与实体。代码中注释打的很清楚了,文字只简单描述一下。 源码链接(包括v1.0与v2.0): ...

2018-11-02 17:45:43 644

原创 自己动手实现一个简单的Mybatis(初级版本1.0)

手写Mybatis-v1.0源码链接(包括v1.0与v2.0): https://github.com/staticLin/customMyBatis.git从上一个文章 ---Mybatis概述中了解到了Mybatis的主要架构与底层原理流程,结尾给出了一个宏观流程图,可以知道,大致我们可以从三个模块入手:SqlSession:含有属性Configuration、Excutor,含有...

2018-10-31 20:25:30 581

原创 MyBatis概览(各组件以及底层实现原理等)

一、MyBatis概览这是Mybatis的整体架构图,可以看出它是由几个主要组件组成,分别为Configuration、Sql映射、Mapper、MappedStatements组成,Configuration包含了所有启动时的配置信息,包括mapper中方法映射SQL,数据源信息、对象工厂ObjectFactory和一些参数配置例如是否懒加载、是否开启缓存等等一系列信息,在接下来的动作或...

2018-10-31 11:52:58 8040

原创 Mapper.xml配置文件解读

mapper.xml配置文件解读①. namespace:与对应mapper接口关联,使其方法与xml定义的标签id相对应。②. resultType:设置sql语句返回的类型,可以是基本类型,也可以是实体类类型,实体类一般全包名作为参数设置,也可以在mybatis配置文件中设置实体类的别名来设置其resultType。其优点在于简单方便,缺点在于需要创建实体类才能这么用,在于一些多表关联...

2018-10-30 18:14:11 1248

原创 介绍Mybatis与使用(什么是Mybatis?)

一、什么是Mybatis?在介绍Mybatis之前,抛出一个问题,什么是Mybatis呢?这里引用Mybatis官网http://www.mybatis.org/mybatis-3/的一段话来介绍什么是Mybatis。What is MyBatis?1、MyBatis is a first class persistence framework with support for cu...

2018-10-30 17:50:54 7332

原创 (springboot)shiro安全框架自定义过滤器出现的几个疑难杂症解决方案

问题一:多次重复重定向问题(匹配多个过滤器链重复调用其对应过滤器)问题二:shiro认证时Realm会执行两次在使用springboot框架整合shiro安全认证框架时踩了很多坑,每次出问题网上都找不到其中的解决方案,这里贴两个我遇到的坑,以及其解决方案给大家,希望大家可以少走弯路。问题一场景: // 自定义拦截器 Map<String, Filter> cus...

2018-10-19 21:50:41 12916 2

原创 (SpringBoot)Shiro安全框架深入解析

最近在学习Shiro安全框架的使用,深入研究其原理,让自己更得心应手的使用这个框架。内容目录Shiro的整体架构介绍 框架验证流程与原理分析 Url匹配模式 加密机制 缓存机制1.Shiro的整体架构介绍 1.1从使用者角度看Shiro架构ApplicationCode为客户端,在Web环境中为登录的Controller,使用者只需要创建一个Subject对象,调用其...

2018-10-06 03:39:38 5599 2

原创 (springboot)基于Redis实现Mybatis二级缓存(自定义缓存)

Springboot + Mybatis + RedisMybatis的二级缓存是多个SqlSession共享的,作用于是mapper配置文件中同一个namespace,不同的SqlSession两次执行相同namespace下的sql语句且参数如果也一样则最终执行的sql语句是相同的。每次查询都会先看看缓存中是否有对应查询结果,如果有就从缓存拿,如果没有就执行sql语句从数据库中读取,从而提...

2018-09-11 12:53:45 4702 1

原创 记一次org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException异常解决方法

今天在做一个SSM的shiro的demo,在SpringMVC的配置文件里频繁报错  :org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException: Line 13 in XML document from class path resource [applicationContext-shiro.xml] is ...

2018-08-13 09:57:18 40296 8

原创 设计模式之享元模式(十二)

 定义:享元模式(英语:Flyweight Pattern)是一种软件设计模式。它使用共享物件,用来尽可能减少内存使用量以及分享资讯给尽可能多的相似物件;它适合用于当大量物件只是重复因而导致无法令人接受的使用大量内存。通常物件中的部分状态是可以分享。常见做法是把它们放在外部数据结构,当需要使用时再将它们传递给享元。由定义我们可以知道几点:1. 享元模式是用来共享相似的物件,从而达到减少内存...

2018-07-03 20:58:42 171

原创 C# 关于int(或其他类型)的属性在初始化时候默认值为0的解决方法

问题描述:今天用C#写一个demo,model层映射数据库字段时有一个属性为id,是int类型,在初始化这个model类的时候默认属性为0,这造成了很多时候用model查询的时候的不便利,id只要没赋值就固定查询id为0的数据,这是相当不对的,导致我写的demo在初始化表格数据时只有一条id为0的数据。 解决方法:在int后面加上一个问号,表示此字段可以默认为null,完美解决了我的问题。...

2018-07-02 12:25:31 11164 1

原创 设计模式之门面模式(外观模式) (十一)

说到了门面模式,有些地方又叫做外观模式,这个模式在平时做Web项目中应该是经常用到,像我们的Service层与DAO层,就是用到了门面模式,Controller层本来是需要跟一个个DAO打交道,但是有了Service层,它直接与DAO打交道,Controller就可以直接使用Service,我们只需专注在Service上写业务逻辑与操作DAO的各种方法,分离了责任,这个模式我认为最重要的功能就是解...

2018-06-07 09:41:55 911 1

原创 设计模式之装饰器模式 (十)

定义:装饰模式是在不必改变原类文件和使用继承的情况下,动态的扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。定义与类图来自百度百科。这个定义说到了装饰器模式的几个重点,不改变源文件,不使用继承,然后可以扩展一个对象的功能,这几个重点很好的介绍了装饰器模式。那么装饰器模式是怎么实现的呢,类图上Componet是一个被装饰的接口,ConcreteComponent是具...

2018-06-06 15:13:28 215

原创 2018年下半年学习计划

写在前面(为什么要制定计划):一转眼2018已过半,时间飞逝,有时候我常常在想,我这段时间都学了什么,做了什么呢?我认为这就是计划的好处,心中有一个这一阶段的目标,并且有目的的去执行他,可以很清晰的知道自己这段时间大概是做了哪些事,并且可以有效的去总结它,总结是一件重要的事。执行计划还会给自己的心中增加成就感,回头看看发现原来自己做了这么多事,增加了学习的动力。再有一点就是制定计划可以增加你的学习...

2018-06-05 20:33:26 3956 1

原创 设计模式之模板方法模式 (九)

说到了模板方法模式,顺便提一下,这个模式让我更深入理解抽象类的使用。在我初学JAVA的时候,很不理解为什么会有抽象类的存在,接口不就能代替实现和抽象类一样的功能吗,也同样不是很能理解一个接口的作用,当我学习了设计模式,更深入理解了面向抽象编程,才知道原来接口是这么强大的东西,同时在学习了模板方法模式之后,我就了解到了抽象类与接口的不同之处,原来抽象类是这么用的,瞬间体会到了抽象类的强大。定义:...

2018-06-05 13:42:15 261

原创 设计模式之适配器模式 (八)

说到适配器模式,顾名思义,就像我们平时使用的手提电脑的电源适配器,经过适配,它可以为我们的手提电脑提供一个稳定适合的低压直流电。定义:将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。——Gang of Four一般适配器模式有三种实现:1. 类适配器 使用继承的方式实现比如之前讲过的观察者模式里,观察者都必须实...

2018-06-04 14:29:19 209

原创 [Err] 1055 - Expression #3 of SELECT list is not in GROUP BY clause and contains nonaggregated colum

今天将一个新项目发布到公司的测试环境上,被告知有一个模块报SQL语句的错误,立马在本地环境测试了一下,是正常的,想着奇怪了,然后再把出错的模块打断点截取测试环境出错的SQL语句。语句如下。SELECTDATE_FORMAT(e.data_date, '%Y-%m') date,p.`name` PAIR_NAME,u.`name` UNIT_NAME,u.fgd_singlec_co...

2018-06-04 14:14:00 15508 3

原创 设计模式之策略模式 (七)

前面讲动态代理的时候有提到策略模式,在Spring中用到了两种代理方式,一个是JDK动态代理一个是CGLib代理,那到底Spring使用哪种代理创建代理呢?这里就用到了策略模式,由ProxyFactoryBean这个类来决定使用哪种策略,下面看看策略模式是怎么样的一个东西吧。定义:策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法独立于使用它的客户而独...

2018-06-03 23:40:52 178

原创 设计模式之观察者模式 (六)

说到观察者模式,在学习这个模式的过程中,我联想了许多观察者模式的应用场景,这个模式应该算项目中最有可能会用到的一个模式吧,比如在早年的YY直播横行的年代,我一开电脑就是先打开YY,因为我的YY里订阅了很多喜欢的主播,在主播开播的时候,YY自动会推送我一个开播提醒,我想,这就应该是观察者模式了吧。(订阅-发布模式) 定义:观察者模式(有时又被称为发布-订阅模式、模型-视图模式、源-收听者模式或从...

2018-06-03 21:27:10 216

原创 设计模式之抽象工厂模式(五)

来到了最后的工厂模式,抽象工厂模式。这个工厂模式应该是工厂模式的终极形态了,顾名思义抽象,它真的挺抽象的,但是如果你可以理解工厂方法模式的话,这个模式应该也不会太难。它与工厂方法模式的区别在于抽象工厂接口不再只生产一个抽象产品,而是一堆抽象产品,抽象产品接口也不止一个,而是有很多个。定义:为创建一组相关或相互依赖的对象提供一个接口,而且无需指定他们的具体类。以上定义与类图来自百度百科...

2018-06-02 15:31:07 217

原创 设计模式之工厂方法模式 (四)

这个设计模式是由简单的简单工厂模式抽象化而来,怎么说呢,就是把工厂抽象成一个接口,具体的生产方法放到具体的工厂实现类里实现,这样就满足了开闭原则的对修改关闭,对拓展开发了。定义:工厂方法(Factory Method)模式的意义是定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类当中。核心工厂类不再负责产品的创建,这样核心类成为一个抽象工厂角色,仅负责具体工厂子类必须实现的接口,这样进一...

2018-06-02 15:06:20 187 2

原创 设计模式之简单工厂 (三)

工厂模式分为工厂方法模式和抽象工厂模式两种,而简单工厂模式可以算是工厂方法模式的一个特殊实现吧。定义:从设计模式的类型上来说,简单工厂模式是属于创建型模式,又叫做静态工厂方法(Static Factory Method)模式,但不属于23种GOF设计模式之一。简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。简单工厂模式是工厂模式家族中最简单实用的模式,可以理解为是不同工厂模式的一个特...

2018-06-01 08:48:23 229

原创 设计模式之代理模式 (二)

这个设计模式也是算比较经典常用的了,在Spring的AOP实现中就用到了JAVA自带的动态代理与CGlib的动态代理。在我初学的时候,这个设计模式十分晦涩难懂,我也是看了很多次才大概能理解到这个设计模式的精髓。画个图吧,我理解的代理模式是这样的,首先创建一个代理类Proxy,这个类拥有被代理类target的所有行为基础,然后改进被代理类中的某个方法(添加一些行为)。在调用target时实际...

2018-05-31 08:47:42 269

原创 设计模式之单例模式 (一)

单例模式是一个老生常谈的模式了,从我一开始学习JAVA的时候就听说过了,但为什么要有单例模式,又或是怎样的类可以或是需要做成单例模式的呢?在我的工作中接触到不少单例模式的例子,例如一个工厂类,或是对DAO层封装好了的工具类,它们都有一个共性就是这些类没有自己的状态,无论实例化多少次它们都是一样的,如果不做成单例模式的话应用里就有可能会有很多很多一摸一样的实例,这样会造成内存的浪费,GC工作量的...

2018-05-30 17:17:51 1328 1

原创 记一次操作List的异常、迭代器的使用和Array.toArray方法使用异常(强转报错)

今天项目需要操作一个字符串数组,分别分三种情况,A情况需要字符串数组为完整的 如 { "aa" , "bb" , "cc" },B情况需要删掉字符串数组里的 "aa" ,C情况需要删除"aa"和"bb"。public class testT { public static void main(String[] args) { String[] a = { "aa&qu

2018-05-25 17:30:10 466

原创 导入异常Cannot get a text value from a numeric cell

今天在写一个导入导出的功能,需要读取一个xls的excel表格里面的数据并把这些数据写入数据库,在我写好并测试功能的时候报错Cannot get a text value from a numeric cell。 原因:上网查了一下相关资料,发现是因为excel表里的数据如果是纯数字123456这类的话,在读取xls文件的cell的时候,cell的type会是CELL_TYPE_NUMER...

2018-05-22 10:15:19 15735

原创 父子页面之间如何传值?关闭子页面之后数据回显到上一层页面上

<script> //父页面A上注册Input这个function window.input = { data_role:{}, //用于存放子页面调用input时需要传递的data isSure:false //用于判断是否点击确定按钮,可以忽略 } </script>//父页面A上注册Input这个function window.input ...

2018-05-18 12:01:46 1549

原创 MySQL语句 关联两表 合并重复列值 (一对多合并查询)

没用一对多前的查询语句效果如图:期望效果如图:可以看到把重复的数据合并成一行,实现一对多的效果。原先效果:SELECT u*,r.name AS rnameFROM sys_user u left join sys_role r on u.pk_role=r.pk_role WHERE 1=1 and ifnull(u.jl_is_del,0)=0 and u.pk_corp='1' 加...

2018-05-18 11:47:26 14880 2

转载 高性能mysql 基础篇

《高性能MySQL》读书笔记--MySQL逻辑架构 转自:http://blog.csdn.net/xifeijian/article/category/1430276一、MySQL逻辑架构MySQL最重要的、最与众不同的特性是它的存储引擎架构,这种构架的设计将查询处理及其它系统任务和数据的存储/提取相分离。第一层,服务层,最上层的服务并不是MySQL独有的,大多数基于网络的客户端/服务端的工具或...

2018-05-15 19:59:18 488

原创 (eclipse) 解决xml文件没有提示的问题 (按ALT+/没反应)

    今天自己写一个SSM框架的权限控制demo,发现在写xml文件时没有提示的功能,之前还好好的,查了一下资料,发现是xml默认打开方式不对。解决方法:菜单:Window -> Preferences -> General -> Editors -> File Associations 选中*.xml后在Associated editors下面这个框里选中XML Edi...

2018-05-03 13:33:36 7228 3

原创 tomcat端口被占用问题

最近启动tomcat的时候经常遇到8080等端口被占用的问题,特此记录一下解决方案,日后方便记忆与操作。解决方法:1.window+R 呼出命令输入cmd进入黑框。2.输入命令:netstat -ano|findstr 8080,列出所有端口的情况。看具体被占用的端口的最后一位数字(pid)。3.输入命令: taskkill /f /t /im  +(上一步的pid) 关闭占用端口...

2018-04-27 21:51:25 272

空空如也

空空如也

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

TA关注的人

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