- 博客(32)
- 资源 (3)
- 收藏
- 关注
原创 spring源码(二)
1、spring 循环依赖与 spring AOP 底层原理分析什么是循环依赖?什么是单例池,什么是一级缓存?单例池其实是一个个 Map<bean名字,bean 对象> 对象什么是二级缓存,它的作用是什么?什么是三级缓存,它的作用是什么?为什么Spring一定要用三级缓存来解决循环依赖?三级缓存解决循环依赖的底层源码分析Spring AOP的底层原理分析有哪些情况下的循环依赖是Spring解决不了的?为什么@Lazy注解可以用来解决循环依赖
2021-01-17 15:18:03
698
原创 Spring 源码学习 (-)
1、单例bean 、 单例模式、单例池之间的联系和底层原理2、BeanFactory 于 Application之间的联系和底层架构设计3、FactoryBean的作用和底层工作原理4、spring 整合mybaits 的核心底层原理5、@mapperScan注解的底层工作原理6、MapperScannerConfigurer底层工作原理7、ImportBeanDefintionRegistarar 和FactoryBean的经典应用实战8、MapperFactory和sqlsessionFa
2020-12-20 11:17:47
284
1
原创 mysql优化法则
目录法则一:只返回需要的结果法则二:确保查询使用了正确的索引法则三:尽量避免使用子查询法则四:不要使用 OFFSET 实现分页法则五:了解 SQL 子句的逻辑执行顺序法则一 只返回需要的结果一定要为查询语句指定where条件,过滤掉不需要的数据行.通常来说, 在线事务处理类型的系统每次查询只需要从大量数据中返回很少的几条记录.指定查询条件可以帮助我们使用索引返回结果,而不是全表扫描.绝大数情况下使用索引的sql 查询性能会更好,因为索引(B-树、B+树、B*树)执行的是二进制搜索,具有对
2020-12-15 13:48:33
163
原创 经常注意的几点代码规范
背景:如何更规范化编写Java 代码的重要性想必毋需多言,其中最重要的几点当属提高代码性能、使代码远离Bug、令代码更优雅。一、MyBatis 不要为了多个查询条件而写 1 = 1当遇到多个查询条件,使用where 1=1 可以很方便的解决我们的问题,但是这样很可能会造成非常大的性能损失,因为添加了 “where1=1 ”的过滤条件之后,数据库系统就无法使用索引等查询优化策略,数据库系统将会被迫对每行数据进行扫描(即全表扫描)以比较此行是否满足过滤条件,当表中的数据量较大时查询速度会非常慢;此外,
2020-09-17 18:19:41
265
原创 ActiveMQ的安装与使用
ActiveMQ的安装与使用一、安装1、下载安装包官网下载地址: http://activemq.apache.org/components/classic/download/根据自己的电脑的系统下载对应的版本.2、解压cd 到下载压缩包的目录,解压压缩包,输入 tar -zxvf +文件名即可解压tar zxvf apache-activemq-5.16.0-bin.tar.gz3、启动进入相对目录: /apache-activemq-5.16.0/bin/macosx命令行
2020-09-09 14:02:27
22189
原创 8 种经常踩坑的sql语句
1、limit 分页查询是最常见的场景之一,也是最容易出问题的场景之一.比如对于下面简单的语句,一般 DBA 想到的办法是在 type, name, create_time 字段上加组合索引。这样条件排序都能有效的利用到索引,性能迅速提升。SELECT * FROM operation WHERE type = 'SQLStats' AND name = 'SlowLog' ORDER BY create_time LIMIT 1000, 10;但是,当 ‘limit 1000000,1..
2020-07-12 12:29:39
621
原创 explanin mysql 性能调优
mysql中的 explain命令可以用来查看sql语句是否使用了索引,用了什么索引,有没有做全表扫描。可以帮助我们优化查询语句。explain 命令的信息有10列 ,本文主要介绍 key 、type 、Extra 这三个字段.1、key : mysql 使用的索引列,有时候mysql会使用效果不好的索引列,这时我们可以使用 select 语句中的force index(indexname) 来强制使用mysql 的索引列.或者使用 ignore index(indexname) 来忽略指定索引列.
2020-07-11 11:59:20
433
原创 mysql 5.7.23 搭建主从备份说明
一、安装1、上传安装文件2 xshell 命令查看3、将安装包移动到user/local目录下4、解压mysql安装包tar -zxvf mysql-5.7.23-linux-glibc2.12-x86_64.tar.gz1重命名文件mv mysql-5.7.23-linux-glibc2.12-x86_64 mysql mv命令是move的缩写,可以用...
2019-03-07 11:25:35
823
转载 springcloud 学习资料
http://www.ityouknow.com/springcloud/2017/05/01/simple-springcloud.htmlhttp://www.ityouknow.com/springcloud/2016/12/30/springcloud-collect.html
2018-08-15 15:00:28
179
转载 搭建 mysql 数据库集群
阅读目录前言mysql cluster中的几个概念解释架构图及说明下载mysql cluster安装mysql cluster之前安装配置管理节点安装配置数据和mysql节点测试启动和关闭总结前言当你的业务到达一定的当量,肯定需要一定数量的数据库来负载均衡你的数据库请求,我在之前的博客中已经说明了,如何实现负载均衡,但是还有一个问题就是数据同步,因为负载均衡的前
2018-05-08 19:39:10
808
原创 Java 编程规约 插件
JAVA代码规范沿用阿里的编程规约。eclipse和idea有插件能进行自动检验。插件可以再这个网站根据帮助手册进行安装https://github.com/alibaba/p3c
2018-01-29 15:10:01
226
转载 java list按照 对象 指定多个字段属性进行排序
ListUtils.Java---功能类 package PjectUtils;import java.lang.reflect.Field;import java.text.NumberFormat;import java.util.Collections;import java.util.Comparator;import java.util.Date;import
2018-01-26 11:38:15
3767
转载 解决Eclipse下面工程和文件乱码问题
针对eclipse下面的编码我们从四个层面上去说明:Workspace/Project/Content Type/File(1)、Workspace 【工作空间】 Windows->Preferences 打开”首选项”窗口,点击左侧General->Workspace,在右侧找到“Text file encoding”选项设置,一种是默认(一般默认是操作系统的编码格式,这个跟
2018-01-17 10:35:22
1395
转载 MyBatis使用记录
一、#与$的区别 最近项目中使用MyBatis动态关联表,这就需要给表名动态赋值,刚开始使用#{tablename},却发现始终都无法成功,后来在网上找了一下,改为${tablename}才解决问题。究其原因,主要是因为#将传入的数据当成一个字符串,会对传入的数据自动加一个引号,而表名加引号是识别不到的。 但是,一般情况下,能使用#就不要使用$,主要因为
2018-01-15 16:31:40
297
转载 Js中的window.parent ,window.top,window.self 详解
在应用有frameset或者iframe的页面时,parent是父窗口,top是最顶级父窗口(有的窗口中套了好几层frameset或者iframe),self是当前窗口, opener是用open方法打开当前窗口的那个窗口。 window.self功能:是对当前窗口自身的引用。它和window属性是等价的。语法:window.self注:window
2018-01-15 13:58:13
678
转载 Spring-data-redis:特性与实例
Spring-data-redis为spring-data模块中对redis的支持部分,简称为“SDR”,提供了基于jedis客户端API的高度封装以及与spring容器的整合,事实上jedis客户端已经足够简单和轻量级,而spring-data-redis反而具有“过度设计”的嫌疑。jedis客户端在编程实施方面存在如下不足: 1) connection管理缺乏自动化,conn
2018-01-12 11:17:12
310
转载 mysql mysql-5.7.16-winx64解压版安装超详细图文教程 安装
很多朋友在安装mysq解压版l时出现:“mysql 服务无法启动 服务没报告任何错误”以前我安装时也是遇到这样的问题;其实mysql在5.6后就没有了data目录,很多朋友按照以前的版本安装会去创建一个data目录,这样就会无法启动mysql了。下面我来把我的正确安装步骤分享给大家,给大家接触困扰,不在浪费时间搜这里搜那里,我们来一个一步到位,只要按着下面教程走肯定是没
2017-12-18 14:51:44
11625
转载 Maven+SSM+Shiro整合配置
效果图:简介1.shiro是用于权限控制还有对密码加密的框架,同时可以控制尝试登入次数,超出将对用户锁定2.shiro的运行轨迹是用户登入以后,shiro会自动查询用户的角色以及权限,并将用户信息保存到session里,当用户在进行访问资源时候,会根据之前对资源权限的定义,检查用户是否具有这个权限,比如访问/allUser,访问需要admin的角色,
2017-12-17 17:12:01
836
转载 Spring 依赖注入方式详解
阅读目录1.Set注入2.构造器注入3.静态工厂的方法注入4.实例工厂的方法注入 平常的Java开发中,程序员在某个类中需要依赖其它类的方法。 通常是new一个依赖类再调用类实例的方法,这种开发存在的问题是new的类实例不好统一管理。 Spring提出了依赖注入的思想,即依赖类不由程序员实例化,而是通过Spring容器帮我们new指定实例并且将
2017-11-24 09:29:20
192
转载 Object类的哪些方法?
protected Object clone()创建并返回此对象的一个副本。 boolean equals(Object obj)指示其他某个对象是否与此对象“相等”。 protected void finalize()当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法。 Class getClass()返回此 Object 的运行时类。 in
2017-11-24 09:28:05
231
原创 Spring-mvc.xml
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:
2017-11-21 21:07:39
4098
原创 Spring.xml
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:
2017-11-21 21:06:30
190
转载 Java中Synchronized的用法
《编程思想之多线程与多进程(1)——以操作系统的角度述说线程与进程》一文详细讲述了线程、进程的关系及在操作系统中的表现,这是多线程学习必须了解的基础。本文将接着讲一下Java线程同步中的一个重要的概念synchronized.synchronized是Java中的关键字,是一种同步锁。它修饰的对象有以下几种: 1. 修饰一个代码块,被修饰的代码块称为同步语句块,其作用的范围是大括号{}
2017-11-21 20:51:10
252
转载 JAVA多线程实现的三种方式
JAVA多线程实现方式主要有三种:继承Thread类、实现Runnable接口、使用ExecutorService、Callable、Future实现有返回结果的多线程。其中前两种方式线程执行完后都没有返回值,只有最后一种是带返回值的。1、继承Thread类实现多线程继承Thread类的方法尽管被我列为一种多线程实现方式,但Thread本质上也是实现了Runnable接口的
2017-11-20 09:33:16
177
转载 什么是事务(transaction)?它有什么好处
为了完成对数据的操作,企业应用经常要求并发访问在多个构件之间共享的数据。这些应用在下列条件下应该维护数据的完整性(由应用的商务规则来定义): 分布式访问一个单独的数据资源,以及从一个单独的应用构件访问分布式资源。 在这种情况,可能要求在(分布式)资源上的一组操作被当作一个工作单元(unit)。在一个工作单元中, 操作的所有部分一起成功或失败并恢复。在下面的情况下这个问题更加复杂:
2017-11-13 09:29:54
9440
转载 Jsp 9个内置对象详解
JSP内置对象(9个常用的内置对象) 1.request对象客户端的请求信息被封装在request对象中,通过它才能了解到客户的需求,然后做出响应。它是HttpServletRequest类的实例。序号方法说明objectgetAttribute(Stringname) 返回指定属性的属性值EnumerationgetAttributeNames() 返
2017-11-13 09:05:32
585
转载 spring、 springMVC、 mybatis 分别介绍
1.1.1.Spring是什么Spring是一个开源的轻量级Java SE(Java 标准版本)/Java EE(Java 企业版本)开发应用框架,其目的是用于简化企业级应用程序开发。应用程序是由一组相互协作的对象组成。而在传统应用程序开发中,一个完整的应用是由一组相互协作的对象组成。所以开发一个应用除了要开发业务逻辑之外,最多的是关注如何使这些对象协作来完成所需功能,而且要低耦合、高内聚
2017-10-26 21:25:01
3353
原创 ideal SVN的安装
ideal 集成svn http://www.cnblogs.com/zhanghaoliang/p/6206948.html
2017-10-17 09:03:27
690
原创 mavan archetype插件的创建与使用
mavan目录src -main -java -package -test -java -package -resourcres mavan的常用构建命名 mvn -v 查看版本 compile 编译 test 测试
2017-09-12 13:36:40
259
原创 远程桌面连接指导教程
以下三个网址说明了,如何设置远程桌面连接的方法。适用于win7 系统按照网页做法,就可以连接远程桌面 http://jingyan.baidu.com/article/9113f81b0d83e32b3214c718.htmlhttp://blog.csdn.net/u010433704/article/details/50678203http://jingyan.baidu.
2017-07-14 09:44:19
634
原创 新手学习 mavan 和 springboot 视频地址
学习mavan 的地址 http://www.imooc.com/learn/443 学习springboot的基础地址一 http://www.imooc.com/learn/767 学习 springboot进阶web http://www.imooc.com/learn/810
2017-07-12 17:25:21
238
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人