自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Kubernetes删除已完成的pod

删除所有已完成的pod。

2023-05-04 16:43:01 196

原创 使用NFS

扩展-NFS文件同步

2022-07-04 10:59:28 106

原创 rook镜像修改

镜像

2022-07-02 08:16:24 465

原创 SpringAop执行流程

CglibCallback[] mainCallbacks = new Callback[] {aopInterceptor, //DynamicAdvisedInterceptortargetInterceptor, //DynamicUnadvisedExposedInterceptornew SerializableNoOp(),targetDispatcher, this.advisedDispatcher,new EqualsInterceptor(this.advised),n

2021-10-15 15:36:31 186

原创 SpringAop解析流程

@Target(ElementType.TYPE)@Retention(RetentionPolicy.RUNTIME)@Documented@Import(AspectJAutoProxyRegistrar.class)public @interface EnableAspectJAutoProxy { /** * 指示是否要创建基于子类(CGLIB)的代理,而不是基于标准Java接口的代理。 * 而不是基于标准Java接口的代理。默认是{@code false}。 */ boo

2021-10-13 14:24:43 90

原创 Namesrv启动流程

public static NamesrvController main0(String[] args) { try { NamesrvController controller = createNamesrvController(args); start(controller); String tip = "The Name Server boot success. serializeType=" + Remotin

2021-09-28 15:27:20 120

原创 jdk1.8源码解析java.util.concurrent.locks.ReentrantLock

ReentrantLock一个可重入的互斥锁使用方法class X { - private final ReentrantLock lock = new ReentrantLock(); - // ... - - public void m() { - lock.lock(); // block until condition holds - try { - // ... method body - } finally { - .

2021-07-15 13:40:30 176

原创 docker安装elasticsearch和kibana

docker network create elasticdocker run -d --name elasticsearch --net elastic -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:7.12.1docker run -d --name kibana --net elastic -p 5601:5601 -e "ELAST

2021-05-10 15:40:51 98

原创 docker安装elasticsearch中文分词器ik插件

docker exec --user root -it elasticsearch shcd bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.12.1/elasticsearch-analysis-ik-7.12.1.zip

2021-05-10 14:50:21 80

原创 springboot目录详情

2021-05-08 10:21:50 62

原创 springboot启动流程

public static ConfigurableApplicationContext run(Class<?> primarySource, String... args) { return run(new Class<?>[] { primarySource }, args); }public static ConfigurableApplicationContext run(Class<?>[] primarySources, String[] args

2021-04-30 14:52:36 154

原创 Tomcat请求流程

Acceptorpublic void run() { int errorDelay = 0; // 循环播放,直到收到关闭命令 while (running) { // 如果端点已暂停则循环 while (paused && running) { state = AcceptorState.PAUSED;

2021-04-27 16:57:31 255

原创 char **++思考

#include <iostream>void print(char **str) { str++; std::cout << *str << std::endl; std::cout << (int*)*str << std::endl;}int main() { char a[10] = {"aaa"}; char b[10] = {"bbb"}; char c[10] = {"ccc

2021-04-22 10:38:40 192

原创 Intellij IDEA插件

Alibaba Java Coding Guidelines 代码规范插件Atom Material Icons 图标美化CodeGlance 代码编辑区迷你缩放Gradle Dependencies Helper gradle依赖CamelCase 命名风格转换Material Theme UI 主题Maven Helper Maven 依赖冲突MybatisLog sql日志打印Nyan Progress Bar 彩虹进度条Package Search 依赖包搜索Rainbow .

2021-04-21 11:52:20 91

原创 CentOS安装GUI图形界面

yum groupinstall -y 'GNOME Desktop'如果要通过GUI配置网络需要安装Server with GUIyum groups install -y "Server with GUI"切换到GUIsystemctl isolate graphical.target切换到命令行systemctl isolate multi-user.target设置开机启动方式:图形/命令行界面1、检查当前默认设置systemctl get-default2、设置开机进

2021-04-16 13:27:20 299

原创 Tomcat启动流程

tomcat入口catalina.bat里面静态代码块主要检查catalina.home和catalina.base的路径static { // 获取当前工作目录 String userDir = System.getProperty("user.dir"); // 获取home目录 String home = System.getProperty(Constants.CATALINA_HOME_PROP); File

2021-04-14 11:41:33 221

原创 SpringMVC配置类启动流程

@HandlesTypes(WebApplicationInitializer.class)public class SpringServletContainerInitializer implements ServletContainerInitializer { /** * Delegate the {@code ServletContext} to any {@link WebApplicationInitializer} * implementations present on the

2021-03-30 16:27:02 1114

原创 jdk1.8源码解析java.lang.Object

Object是类层次结构的根。每个类都有Object作为超类。所有对象(包括数组)都实现此类的方法native方法 /** * 注册到本地 */ private static native void registerNatives(); static { registerNatives(); } /** * * @return 返回运行时类。返回的{@code Class}对象是被表示的类的{@code sta.

2021-03-17 11:44:45 149

原创 mybatis-spring流程解析

准备工作创建实体对象,映射mapper配置类测试类测试结果解析流程从sqlSessionFactoryBean.getObject()开始@Override public SqlSessionFactory getObject() throws Exception { if (this.sqlSessionFactory == null) { afterPropertiesSet(); } return this.sqlSessionFacto

2020-11-12 16:55:59 122 1

原创 Spring源码注解启动流程解析(3)

refresh()@Override public void refresh() throws BeansException, IllegalStateException { synchronized (this.startupShutdownMonitor) { // 准备要刷新的上下文。 // Prepare this context for refreshing. /** * 容器刷新前的准备,设置上下文状态,获取属性,验证必要的属性等 */ prepa

2020-11-12 15:37:43 138

原创 mybatis自定义简单分页插件

在编写插件以前有必要介绍下mybatis里面plugin相关的类从上往下/** * 拦截器 */public interface Interceptor { /** * 拦截方法 * @param invocation 封装代理类参数 */ Object intercept(Invocation invocation) throws Throwable; /** * 执行 * @param target * @return */ de

2020-11-12 09:53:30 293 2

原创 mybatis流程解析(4)

前面已经把sqlsession构造出来了@Override public <T> T getMapper(Class<T> type) { /** * 这里调用配置类的getMapper方法 */ return configuration.getMapper(type, this); }public <T> T getMapper(Class<T> type, SqlSession sqlSession) {

2020-11-09 09:54:20 102

原创 mybatis流程解析(3)

提示 如果你正在使用 Spring + MyBatis,则没有必要配置事务管理器,因为 Spring 模块会使用自带的管理器来覆盖前面的配置。这两种事务管理器类型都不需要设置任何属性。它们其实是类型别名,换句话说,你可以用 TransactionFactory 接口实现类的全限定名或类型别名代替它们。

2020-11-05 11:27:33 141

原创 mybatis流程解析(2)

上一篇思考解答: 因为可以读取ClassPath类路径下的资源,方便使用者看下面SqlSessionFactory是怎么构建的 SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);通过XMLConfigBuilder去解析,看看XMLConfigBuilder怎么初始化的 public XMLConfigBuilder(Reader reader, String envi

2020-11-03 16:20:13 108

原创 Spring源码注解启动流程解析(2)

下面解析 register(componentClasses);@Override public void register(Class<?>... componentClasses) { Assert.notEmpty(componentClasses, "At least one component class must be specified"); /** * 这里通过之前无参构造器this()初始化好了AnnotatedBeanDefinitionReader

2020-11-02 16:38:55 294

原创 Spring源码注解启动流程解析(1)

准备工作1.创建配置类/** * @author chinh * @date 2020/9/17 */@Configuration@ComponentScan("com.chinh")public class AppConfig {}创建测试Bean/** 1. @author chinh 2. @date 2020/9/21 */@Servicepublic class TestServiceImpl implements TestService {}编写测

2020-11-02 13:17:44 334

原创 Spring源码解析关于FactoryBean

下面翻译自spring官网您可以实现org.springframework.beans.factory。为本身是工厂的对象提供FactoryBean接口。FactoryBean接口是Spring IoC容器实例化逻辑的可插入点。如果您有复杂的初始化代码(用Java来表达比(可能)冗长的XML更好),那么您可以创建自己的FactoryBean,在类中编写复杂的初始化,然后将定制的FactoryBean插入到容器中。FactoryBean接口提供了三种方法:对象getObject():返回此工厂创

2020-10-12 11:08:56 69

原创 Spring源码解析关于BeanFactoryPostProcessor

下面翻译自spring官网使用BeanFactoryPostProcessor自定义配置元数据我们要查看的下一个扩展点是org.springframework.beans.factory.config.BeanFactoryPostProcessor。此接口的语义与BeanPostProcessor类似,但有一个主要区别:BeanFactoryPostProcessor操作bean配置元数据。也就是说,Spring IoC容器允许BeanFactoryPostProcessor在容器实例化Bean

2020-10-10 11:49:48 75

原创 Spring源码解析关于BeanPostProcessor

aa

2020-10-10 09:54:47 217

原创 dubbo源码解析(1)SPI

Dubbo 并未使用 Java SPI,而是重新实现了一套功能更强的 SPI 机制。Dubbo SPI 的相关逻辑被封装在了 ExtensionLoader 类中,通过 ExtensionLoader,我们可以加载指定的实现类。Dubbo SPI 所需的配置文件需放置在 META-INF/dubbo 路径下本文章的试例为,dubbo版本为2.7.9下面通过一个Main方法测试,解析每一行代码/** * @author chinh * @date 2020/9/30 */public class

2020-10-09 11:08:34 88

原创 mybatis流程解析(1)

读取配置文件字符输入流Reader resourceAsReader = Resources.getResourceAsReader("mybatis-config.xml");默认charset为null,调用getResourceAsStream public static Reader getResourceAsReader(String resource) throws IOException { Reader reader; if (charset == null) {

2020-09-01 15:26:38 141

空空如也

空空如也

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

TA关注的人

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