- 博客(34)
- 资源 (2)
- 收藏
- 关注
原创 Mybatis的日志机制
文章目录Mybatis的日志是怎么实现随着引入的日志框架改变而改变SQL执行的日志打印实现方式Mybatis的日志是怎么实现随着引入的日志框架改变而改变Mybatis有自己的日志接口Log和对应的日志创建工厂LogFactory,使用了装饰者模式,底层还是调用原生的日志框架API。那么他是怎么实现随着引入的日志框架改变而改变的呢?先来了解下maven项目的dependency元素标签optional的作用。<dependency> <groupId>
2021-08-23 18:38:55 297 1
原创 借助Zookeeper实现SpringBoot动态配置刷新
SpringBoot应用的配置文件默认是application.properties,而且必须在启动前就已经配置好,在运行过程中不允许修改。如果确实想让应用在运行过程中修改配置呢,我们可以将配置记录在Zookeeper上,借助Zookeeper的watcher机制来实现配置变更通知。一般的属性获取示例:application.properties的配置如下:name=ljhConfigController如下:/** * @author lipeng * @date 2021/8/14 *
2021-08-17 00:03:51 1481 2
原创 synchronized锁及JVM的锁优化
文章目录synchronized自旋锁与自适应自旋锁消除锁粗化轻量级锁偏向锁synchronized同步块的原子性:虚拟机未把lock和unlock操作直接开放给用户使用,但是却提供了更高层次的字节码指monitorenter和monitorexit来隐式地使用这两个操作,这两个字节码指令反映到Java代码中就是同步块synchronized关键字,因此在synchronized块之间的操作也具备原子性。同步块的有序性:由“一个变量在同一个时刻只允许一条线程对其进行lock操作”这条规则获得的
2021-08-11 19:10:48 222
原创 Java内存模型
文章目录Java内存模型主内存和工作内存内存间交互操作8种操作必须满足的规则volatile型变量的特殊规则volatile的两种特性volatile的性能Java内存模型中对volatile变量定义的特殊规则原子性、可见性、有序性原子性(Atomicity)可见性(Visibility)有序性(Ordering)先行发生原则Java内存模型Java虚拟机规范中试图定义一种Java内存模型(Java Memory Model,JMM)来屏蔽掉各种硬件和操作系统的内存访问差异,以实现让Java程序在各种平
2021-08-11 14:47:08 92
原创 JVM内存溢出
文章目录内存泄漏和内存溢出辨析内存溢出示例堆内存栈内存方法区直接内存JDK为我们提供的工具jpsjstatjinfojmapjhatjstackvisualvm浅堆和深堆问题处理堆溢出栈溢出java.lang.OutOfMemoryError: unable to create new native threadCPU100%,内存占用过高内存泄漏和内存溢出辨析内存溢出:实实在在的内存空间不足导致;内存泄漏:该释放的对象没有释放,多见于自己使用容器保存元素的情况下。内存溢出示例堆内存/**
2021-08-02 17:03:01 117
原创 Runnable、Callable、Future、LockSupport、happens-before
Thread、Runnable、Callable
2021-07-15 23:57:07 94
原创 JVM总结
运行时数据区域定义:Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域类型:程序计数器、虚拟机栈、本地方法栈、Java堆、方法区(运行时常量池)、直接内存各个区域的作用程序计数器:较小的内存空间,当前线程执行的字节码的行号指示器;各线程之间独立存储,互不影响,占用空间小,也无法干涉;虚拟机栈:线程私有,线程在运行时,每个方法在执行的同时都会创建一个栈帧用于存储局部变量表,操作数栈,动态链接,方法出口等信息。每个时刻正在执行的当前方法就是虚拟机栈顶的栈桢。方法的执
2021-07-15 19:09:03 173
原创 @Qualifier加载指定条件的Bean
public interface Animal {}public class Dog implements Animal {}public class Cat implements Animal {}animals的结果集只包含Cat对象。我们可以在需要归类统一操作的bean上加上@Qualifier注解,SpringCloud的@LoadBalanced注解就是通过这种方式拦截需要负载均衡的RestTemplate。...
2021-04-22 11:40:34 274
原创 mysql主从同步
文件配置主节点在/etc/my.cnf文件中配置:log-bin=learn-mysqlserver-id=1从节点在/etc/my.cnf文件中配置:server-id=2两个节点的server-id不能相同。主节点创建数据同步用户create user 'repl'@'%' identified by 'root'授权从节点由该用户同步数据grant replication slave on *.* to 'repl'@'%';给数据库上读锁flush tables
2021-03-23 14:17:32 349 1
原创 HA+联邦机制下的MR任务报错 java.io.FileNotFoundException: /tmp
HA+联邦机制下的MR任务报错 java.io.FileNotFoundException: /tmphive (default)> select * from emp order by sal;Query ID = root_20201013104424_aa624cbf-44fb-4793-b297-5ff2a0f70b45Total jobs = 1Launching Job 1 out of 1Number of reduce tasks determined at compile
2020-10-13 14:28:33 298
原创 hadoop配置 HA+联邦
hadoop配置 HA+联邦集群规划集群配置hostshadoop-env.shcore-site.xmlhdfs-site.xmlmapred-site.xmlyarn-site.xmlslaves启动各组件之间的关系数据访问HA:解决了NameNode存在的单点故障问题联邦机制:拓展了NameNode的容量,提升集群所能存储数据的上限,各个HA之间不会通信,各自负责各自的数据管理集群规划t1 zookeeper JournalNode NameNode zkfc DataNode Resour
2020-09-22 17:34:04 648
原创 @Conditional注解分析
@Conditional注解分析@Conditional注解例子@Conditional注解我们需要Bean在满足一定条件下才允许注入IOC容器的时候,可以加注@Conditional注解。加注了此注解的Bean在定义被Spring注册前会被条件判断。自定义注解标注@Conditional也不允许声明为@Inherited。@Target({ElementType.TYPE, ElementType.METHOD})@Retention(RetentionPolicy.RUNTIME)@Docum
2020-06-14 14:05:32 158
原创 @ComponentScan注解分析
Spring注解分析@ComponentScan@ComponentScan@Retention(RetentionPolicy.RUNTIME)@Target(ElementType.TYPE)@Documented@Repeatable(ComponentScans.class)public @interface ComponentScan { /** * 指定需要扫描的包 */ @AliasFor("basePackages") String[] value() defau
2020-06-14 14:04:37 308
原创 Tomcat处理请求
CoyoteAdapter 343 connector.getService().getContainer().getPipeline().getFirst().invoke(request, response);StandardEngineValve 74 host.getPipeline().getFirst().invoke(request, response);ErrorReportValve 92 getNext().invoke(request, response);StandardHo
2020-06-06 23:27:14 398
原创 Tomcat初始化
启动Tomcatmaven:<!--Java语言操作tomcat --> <dependency> <groupId>org.apache.tomcat.embed</groupId> <artifactId>tomcat-embed-core</artifactI...
2020-06-02 00:44:59 614 4
原创 JAVA SPI
SPI发现机制Springmvc的无web.xml启动方式也是用的SPI自动发现机制处理的,都是通过在配置文件中加入实现类名。标准接口:package spi;public interface Fruit { void name();}插拔式实现类1:package spi;public class Apple implements Fruit { @Ove...
2019-12-21 21:11:32 118
原创 ModelAndView使用
ModelAndView标题标题<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="viewClass" value="org.springfram...
2019-08-15 15:32:39 2967
转载 MySQL学习
Mysql外键设置的四个属性RESTRICT:在删除父表的记录时,发现子表中有关联该父表的记录,则不允许删除父表中的记录;NO ACTION:同 RESTRICT,也是首先先检查外键;CASCADE:父表delete、update的时候,子表会delete、update掉关联记录;SET NULL:父表delete、update的时候,子表会将关联记录的外键字段所在列设为null,所以注...
2019-07-01 22:59:28 90
转载 JavaWeb监听器Listener
Servlet监听器Listenerhttps://www.cnblogs.com/xdp-gacl/p/3961929.html
2019-06-20 00:21:20 135
原创 Java类加载过程、ClassLoader和Class.forName详解
链接阶段会赋予静态变量的初始值forName都是已经执行完了链接阶段。Class.forName(String name):默认的initialize为true,就是执行初始化阶段。Class.forName(String name, boolean initialize, ClassLoader loader):可以设置是否执行初始化阶段ClassLoad:defineClass()...
2019-06-12 01:10:23 1660
原创 SpringBean
Spring IOC概述BeanFactory接口作用域SpringBean的生命周期概述控制反转:一种通过描述(在Java中可以是xml或者注解),通过第三方产生或获取特定对象的方式。由程序中通过主动new的方式创建对象,到由Spring管理对象的创建和销毁;依赖注入:生成的对象需要的成员属性通过在xml中给Bean配置注入。BeanFactory接口Spring Ioc容器的设计主要...
2019-05-21 22:55:37 223
原创 Springmvc的拦截器
Springmvc的拦截器关系图配置拦截器路径匹配规则自定义拦截器源码分析关系图配置过滤器是servlet规范的,可以获得HTTP原始的请求和响应信息,是web请求的第一道防护程序,只有通过过滤器才可以到达拦截器,拦截器是spring框架的,基于反射实现。在springmvc的配置文件中配置(比如dispatcher-servlet.xml),springmvc根据请求的路径匹配到对应的...
2019-05-19 19:30:21 227
原创 Java中的clone
Java中的clone使用场景浅克隆深克隆使用场景假如一个对象有很多属性,我们想使用这个对象,但是设置实现Cloneable接口,重写浅克隆深克隆
2019-05-10 18:32:59 170
原创 java中的序列化与反序列化及其源码分析(特别详细)
Java中的序列化概念序列化与反序列化自定义序列化源码分析概念把对象转换为字节序列的过程称为对象的序列化,把字节序列恢复为对象的过程称为对象的反序列化。 对象的序列化主要有两种用途: 1) 把对象的字节序列永久地保存到硬盘上,通常存放在一个文件中; 2) 在网络上传送对象的字节序列。在很多应用中,需要对某些对象进行序列化,让它们离开内存空间,入住物理硬盘,以便长期保存。比如最常见...
2019-05-01 17:57:23 1302
原创 finally子句的用法
finally子句的用法标题标题finally子句是异常捕获的一部分try{}catch(Exception e){}finally{}三部分的执行顺序是try块检测并抛出异常,然后由catch子句捕获,最后执行finally子句。try块必须有,catch和finally子句不一定全都必须,可以二选一,也可都有。finally子句的作用是不论try和catch中的代码执行情况...
2019-04-20 19:38:32 1100
原创 简单谈谈this关键字
简单谈谈this关键字this关键字代表的含义this包含的对象的属性this调用构造方法继承情况下的thisthis调用构造方法this引用变量this引用方法this关键字代表的含义它表示当前的对象,也正是如此,它不能出现在静态部分(static修饰的),因为那是类所有的,不存在对象。举一个this关键字最常见的例子:public class Test { private in...
2019-04-18 01:02:50 233
原创 类加载时的初始化顺序
类的初始化顺序基础知识类的加载静态成员变量和成员变量的初始化静态部分只会初始化一次静态部分的初始化顺序非静态部分的初始化顺序new关键字试一试带有继承关系的初始化子类重写父类的方法并在初始化的时候执行基础知识一个Java文件从类层面上可以分为两部分,静态和非静态。静态部分属于类所有,非静态部分为对象所有,静态部分为所有对象共享。类的加载当我们使用一个类的时候,我们必须先初始化这个类,它由J...
2019-04-16 17:24:01 566
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人