- 博客(29)
- 收藏
- 关注
原创 Kafka生产者原理
分区器,顾名思义对生产的消息进行分区运算,这里我们可以在配置中添加自己的分区器,也可以使用kafka默认分区器。上述demo中,如配置了拦截器,则先走拦截器过滤,如下源码。kafka生产消息Demo。
2023-05-07 12:14:59 635
原创 Kafka基础概念介绍
Kafka是我们项目用的最多的消息中间件,但里面也有很多存在的问题,如重复消费、带宽瓶颈、部分分区消费不下来的异常场景。重复消费问题有些让人头疼(reblance导致offset提交失败),这里会持续更新(基于官网+视频),研究kafka部分底层知识点,希望对我们代码设计和代码编写能力上有一定的提升。
2023-05-04 22:28:11 1846 1
原创 HashMap机制
HashMap之前只是面试时会看下面试题,但实际从没有撸过源码,对于工作多年的菜鸟来说,对技术不尊重,整理了篇文档,记忆加深一下。
2023-04-29 22:02:21 1151
原创 supervisor详解及常见问题解答
supervisor篇supervisor 简介supervisor 安装supervisor 配置详解supervisor 命令supervisor 问题解答supervisor 简介Supervisor是用Python开发的一套通用的进程管理程序,将一个命令行进程变为后台daemon(守护进 程),并监控进程状态,异常退出时能自动重启。通过fork/exec的方式把这些被管理的进程当作supervisor的子进程来启动,这样只要在supervisor的配置文件中,把要管理的进程的可执行文件的路径
2022-04-28 21:33:23 735
原创 idea引入阿里云Maven依赖
aliyun central aliyun-public https://maven.aliyun.com/repository/public/ <mirror> <id>aliyun-spring</id> <mirrorOf>spring</mirrorOf> <name>aliyun-spring</name> <url>...
2022-03-30 23:01:31 1023
原创 Idea的Marketplace打不开终极解决
第一种解决方案(配置代理)加载成功界面家里闲着无事,想搞下SpringBoot Initializr快速初始化,idea不给力,只能下载SpringBoot 插件了,顺带说下插件名 - SpringBoot Initializr and Assistant 。第一种问题可能是在下载安装IDEA之后HTTP Proxy没有进行相关配置的问题,解决方式如下1.首先打开file->setting->Appearance & Behavior->System Settings-
2022-03-27 22:42:49 8057 1
原创 虚拟机ping不通www.baidu.com(百度)或ping不通虚拟机地址解决
问题困扰许久,终于解决了,在此记录下一. 查看本地的网关和ip地址window+r 输入cmd 命令如图一所示VMnet8的IP地址,需和本地的IP属于同一网段,网关必须相同。如不同,Win10 选择 查看电脑连接, 双击,点击修改IPv4地址如截图,网关改为一致,IP必须同网段,子网掩码一致。以上是大物理环境,修改后,进入虚拟机配置。虚拟机配置:1. 编辑->虚拟网络编辑器...
2021-11-07 18:23:06 39757 18
原创 FileBeat的配置及启动
filebeat配置详解z转载至filebeat配置详解 - decq! - 博客园配置主要是通过yml文件进行的,主要参数如下:(1)字段解释paths:指定要监控的日志,目前按照Go语言的glob函数处理。没有对配置目录做递归处理,比如配置的如果是:/var/log/* /*.log则只会去/var/log目录的所有子目录中寻找以".log"结尾的文件,而不会寻找/var/log目录下以".log"结尾的文件。encoding:指定被监控的文件的编码类型,使用plain和u.
2021-10-19 12:40:57 9528
原创 轻松掌握SpringMVC基础和源码
SpringMVC框架简化Web开发的框架本文章涵盖以下内容Spring MVC 应用(常规应用)Spring MVC 高级技术(拦截器、异常处理器等)手写 MVC 框架Spring MVC 源码剖析SSM 整合一、SpringMVC常规应用第一节 MVC体系架构1.1 MVC体系架构三层架构 我们的开发架构一般都是基于两种形式,一种是 C/S 架构,也就是客户端/服务器;另一种是 B/S 架构,也就是浏览器服务器。 
2020-11-03 23:30:36 268
原创 轻松掌握Lambda表达式
一、产生Java1.8的新特性,也是最主要的特性,允许把函数作为一个方法的参数(函数作为参数传递进方法中)。二、Lambda出世原因先看一个例子: @Test void testLambdaThread(){ // 匿名内部类 Runnable runnable= new Runnable(){ @Override public void run() { System.out.pr
2020-10-17 18:05:23 384
原创 反射基本原理与实现
一,反射是什么1 JAVA反射机制是在运行状态中对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。2 反射提供的功能:在运行时判断任意一个对象所属的类在运行时构造任意一个类的对象在运行时判断任意一个类所具有的成员变量和方法在运行时调用任意一个对象的方法(要想解剖一个类,必须先要获取到该类的字节码文件对象(class)。而解剖使用的就是Class类中的方法.所以先
2020-10-04 18:27:08 11107
原创 Spring基础和源码剖析
第一部分 Spring 概述第1节 Spring 简介Spring 是分层的 full-stack(全栈) 轻量级开源框架,以 IoC 和 AOP 为内核,提供了展现层 SpringMVC 和业务层事务管理等众多的企业级应⽤技术,还能整合开源世界众多著名的第三方框架和类库,已经成为使⽤最多的 Java EE 企业应⽤开源框架我们经常说的 Spring 其实指的是Spring Framework(spring 框架)。第2节 Spring 的优势整个 Spring 优势,传达出⼀个信号,Spr
2020-06-25 09:38:31 787
原创 IDEA使用Maven集成Tomcat插件运行项目
Maven Tomcat插件现在主要有两个版本,tomcat-maven-plugin和tomcat7-maven-plugin,使用方式基本相同。其使用也只能针对当前应用有效。tomcat-maven-plugin 插件:官网。tomcat7-maven-plugin 插件:官网。一、Maven引入依赖:<build> <plugins> <plugin> <groupId>org.apache.tomcat.ma
2020-05-31 16:55:26 2160 1
原创 Maven项目层级目录关系
项目约定俗称的目录层级结构main目录的java目录:① Source as root 代码根目录resources目录:Resources as root 配置文件根目录主程序代码写在src/main/java中配置文件放在src/main/resources中单元测试程序写在src/test/java中...
2020-05-31 16:40:24 1591
原创 Maven添加Servlet和JSP依赖
新建maven项目,没有Servlet和JSP支持,如何引入依赖包呢? <!--添加Servlet和JSP依赖--> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.0.1</ve
2020-05-31 11:21:30 9007
原创 JDK动态代理+责任链设计模式
JDK动态代理+责任链设计模式Mybatis 的插件机制,运用的就是该设计模式 ;文章转自大牛: 雨点的名字JDK动态代理案例public class MyProxy { /** * 一个接口 */ public interface HelloService{ void sayHello(); } /** * 目标类实现接口 */ static class HelloServiceImpl imple
2020-05-13 10:44:12 461
原创 动态代理
动态代理模式原理:通过虚拟机在内存中创建类似MyCar.class文件要创建MyCar.class文件告诉虚拟机:被创建的字节码文件上应该有多少方法接口:public interface Person { public void dosomething();}接口实现类:public class Bob implements Person{ @Override public void dosomething() { System.out.prin
2020-05-12 23:49:46 140
原创 工厂模式
根据不同的参数,创建不同的实例,被创建的实例有共同的父类简单工厂电脑接口package com.lg.design.factory;public abstract class Computer { // 电脑启动... public abstract void start();}惠普电脑:public class HuipuComputer extends Computer{ public void start() { System.out.prin
2020-05-12 23:27:56 129
原创 装饰者模式
应用场景目的:我们想将一个接口的方法具体实现覆盖,换成自己的操作,但是我们不知道该接口的具体实现类是哪个,这个时候可以采用装饰者模式,或代理模式直接改源码 无法实现。继承, 必须得知道这个接口的具体实现是谁,但我们不知道具体实现类是哪个。使用装饰者模式。逻辑结构如图:实际应用场景自搭数据库连接池,对连接Connection的对象con回收,如何调用 con.close()方法,不是去关闭con而是去回收con;新建接口实现 Connection ,传入Connec.
2020-05-12 23:07:32 129
原创 策略模式及Spring整合策略模式
策略模式抽象策略类 interface Sort{ int[] sort(int arr[]); }具体策略类 class InsertionSort implements Sort{ @Override public int[] sort(int[] arr) { for (int i = 1; i < arr.length; i++) { int j = i-1;
2020-05-12 23:01:22 233
原创 适配器模式
适配器模式意图:将一个类的接口转换成客户希望的另外一个接口。 Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。别名:包装器 Wrapper动机:有时,为复用而设计的工具箱类不能够被复用的原因仅仅是因为它的接口与专业应用领域所需要的接口不匹配。应用场景: 需要使用到老的类,但是不符合新接口规则的时候,就是适配器出场的时候了老类 package note.com.adapter; public class OldActionA { pu
2020-05-12 22:33:25 121
原创 单例模式
懒汉模式构造函数设置私有化,不允许 new 创建将类对象设置成私有提供获取该类对象的方法给外头调用,只有在外头调用的时候,如果无实例,才去new一个实例 public class LazySingleton { private static LazySingleton lazySingleton; private LazySingleton() {}; public static LazySingleto
2020-05-12 22:25:20 121 1
原创 构建者模式
构建者模式: 将一个复杂对象的构建和它的表示分离,使得同样的构建过程可以创建不同的表示。例: 向外界提供一个 接口调用,消费者只需关心功能电脑接口:/** * 电脑接口 */public interface Computer { void doInternet(); // 上网冲浪 void showMovie(); // 上网看电视}接口实现:问题: 电脑实现类,有些配置信息,需要再次去设定,设定较为复杂,如果放在构造方法内,代码耦合性高,灵活性也很低;/*
2020-05-12 20:52:13 177
原创 Mybatis深入(注解开发)
一、Mybatis 注解常用注解@Insert 插入@Update 更新@Delete 删除@Select 查询@One 一对一结果集封装@Many 一对多结果集封装@Result 结果集封装@Results 与Result 一起使用,封装多个结果集1. CRUD1.1 配置注解扫描sqlMapConfig.xml 文件 mapper 扫描 <mappers> <package name="com.lg.dao"/> </ma
2020-05-12 14:58:59 258
原创 Mybatis深入(插件原理)
Mybatis 插件1.1 插件介绍介绍:Mybatis作为一个应用广泛的ORM开源框架,其拥有很大的灵活性,在四大组件(Excutor、 StatementHandler、ParameterHandler、ResultHandler)处理了简单易用的插件扩展机制,Mybatis对持 久层的操作就是借助于四大核心对象。Mybatis支持用插件对四大核心对象进行拦截,对Mybatis来说插 件就是拦截器,用来增强核心对象的功能,增强功能本质上是借助于底层的动态代理实现的,换句话 说,Mybat
2020-05-12 14:56:21 335
原创 Mybatis深入(缓存)
一、 Mybatis 缓存缓存就是内存中的数据,常常来自对数据库查询结果保存,使用缓存,我们可以避免频繁的鱼数据库进行交互,进而提高响应速度mabatis 也提供了对缓存的支持,分为一级缓存和二级缓存,下图来理解①、 一级缓存是 SqlSession 级别的缓存,在操作数据库时,需要构造SqlSession对象,在对象中有一个数据结构(HashMap)用于存储缓存数据,不同的SqlSession之间缓存数据区域(HashMap)是互相不影响的。②、 二级缓存是Mapper级别的缓存,多个
2020-05-12 14:47:34 460 2
原创 Mabatis加强
一、 动态sql通过mybatis提供的各种标签方法实现动态拼接sql。需求:根据性别和名字查询用户查询sql:SELECT id, username, birthday, sex, address FROM user WHERE sex = 1 AND username LIKE ‘%张%’1. If标签1.1 Mapper.xml 文件UserMapper.xml配置sql,如下:<!-- 根据条件查询用户 --><select id="queryUserByWh
2020-05-11 12:37:35 153
原创 Mybatis初识
一、Mybatis介绍MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apachesoftware foundation 迁移到了google code,并且改名为MyBatis 。2013年11月迁移到Github。MyBatis是一个优秀的持久层框架,它对jdbc的操作数据库的过程进行封装,使开发者只需要关注 SQL 本身,而不需要花费精力去处理例如注册驱动、创建connection、创建statement、手动设置参数、结果集检索等jdbc繁杂的过程代码。My
2020-05-09 22:45:35 304
原创 手写自定义简单持久层框架
一、 JDBC问题分析上代码package com.lg;import com.mysql.jdbc.PreparedStatement;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.util.ArrayList;import java...
2020-05-09 18:12:50 377
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人