付威 付威的网络博客

Spring学习笔记-05. Spring事务的使用

配置HikariDataSource测试环境 @Configuration public class RzConfig { @Bean public DataSource dataSource() { //此处也可以写到配置文件中 final HikariConfig cpConfig = new HikariConfig(); cpConfig.setDr...

ServiceLoader的使用

获得接口的实现类有点困难 在Java中,由于反射的局限性,无法直接获取一个接口的所有实现子类,所以为了能够实现一个接口动态的注入实现的子类对象,需要借助ServiceLoader 简单的Demo使用 public interface IService { void doSomeThing(); } public class DefalutService implements IS...

Spring学习笔记-04.Spring AOP的使用

AOP的使用 所谓AOP的思想是现在程序设计中常用的一种设计思想,主要是为了能够更好的监控程序的运行的情况。 在Spring中AOP的思想展现的淋漓尽致。 实现一个简单的AOP。 @Component public class OrderBiz { public void doSomething(int x, int y) { System.out.println(x +...

Spring学习笔记-03.Bean的生命周期

Bean的生命周期 在Spring容器中,实例对象都会有三个过程,创建,初始化和消亡。 实现Bean生命周期的方式 @Bean注解指定方法 @Bean(initMethod = "init",destroyMethod = "destroy") public Dog getDog(){ return new Dog(); } InitializingBean和Di...

Spring学习笔记-02.Spring 实体的注入

IOC的使用 @Configuration是入口 在Spring中,在一个类的上面增加@Configuration注解,这个就表示当前为配置类,可以代替xml形式的配置形式。在类中可以定义各种bean的定义,这些定义会被AnnotationConfigApplicationContext容器扫描。 @Configuration public class RzConfig { } ...

Spring学习笔记-01.注入的方法的大纲


一个有效的收拾程序运行残局的方法--ShutdownHook

发现addShutdownHook 在阅读QMQ的源码的时候,在Server端启动的时候,注册了一个shutdown的代码,具体的代码如下: Runtime.getRuntime().addShutdownHook(new Thread(wrapper::destroy)); addShutdownHook作用 addShutdownHook方法可以添加一个指定的线程来在Java程...

最近的学习的技术路线

最近研究的东西有点杂,也有点乱,有点不太成体系,也不够深入,收获还是有的,但是并没有想象中的多。总感觉最近在憋着一股劲准备写点什么东西,但是心里总感觉不踏实,总有一种危机感在身边。 本着越是乱 越是要整理的原则,自己列了下学习和复习的技术路线: 基础知识 Spring的使用和源码(源码可以晚点) 并发编程的使用和原理,着重理解锁的细节,能够手写实现锁 类加载机制和垃圾回...

分布式队列的几个名词和解释--以kafka为例

Topic 或者Subject 每一个生产者都需要向队列中生产消息,不同的生产者生产消息需要有所区别,供对应的消费者消费消息,这个是队列名称之为 Topic或者Subject MessageLog,ConsumerLog 队列的消息需要一个存储的介质,Kafka的对应的存储为文件存储,生产者生产的消息存储在MessageLog, 然后根据不同的消费和路由规则路由,投递到对应的服务器上面...

设计模式--01.单例模式

在程序设计中,需要保证一个只有一个对象实例,就是所谓的单例模式。在java中,有很多单例模式的实现,这篇博客是对这几种单例模式的优缺点进行分析和优化: 饿汉模式 所谓饿汗模式,就是优先创建对象,对象在类加载的时候就已经创建好了,具体的代码如下: private static Singleton01 instance = new Singleton01(); public st...

Guava学习笔记--01. Joiner使用

对于Guava的认识来自于阅读QMQ源码的时候,有很多没有使用过的Java方法和集合,所以就查了查,发现是用的是Guava的类库,所以就有了下面的博客: 1. 字符串的拼接 private final List<String> stringList = Arrays.asList("Google", "Guava", "Java", "Scala", "Kafka...

TCP三次握手和四次挥手

三次握手–连接 在通信的过程中,Client与Server建立TCP连接需要三次握手,为什么需要三次握手呢?又是怎么握手的过程? TCP连接是可靠的通信方式,必须要保证两端都同时有效,且线路通畅。 如同两个人通话,但并不确定对方能不能听到,经历几次才能确保通信方式可靠呢? A: 请求连接,收到请回复密码1 B:可以连接,密码是1。你听到了吗?听到回复密码2 A:我听到了,密码2。 ...

一文彻底了解Mysql索引

在不借助DB引擎情况下,想完成数据的持久化存储,最简单的方法写一个文件存在本地,读取的时候加载文件到内存,然后进行筛选。 存储一个user在本地。 id|userName|userCode|sex|phoneNumber 1,xiaoming,001,m,126xxx 2,xiaohong,002,w,123xxx ... 上面满足了我们的需求,看到这种数据格式,查询的...

Mysql的索引实现机制

对于DB来说最重要的无非是增删改查性能,而构建一个好的索引是实现高效DB操作的前提。其实没一个DB的引擎,说到底都是文件系统的管理。 对于mysql,索引使用的是B+树的数据结构,B+树具有高度低,关键字存储多,更友好操作系统的IO的读写。 mysql有Mysam和InnerDB两个存储引擎,Mysam是数据和索引分开,InnerDb数据和索引是在一个文件。 Mysam mysam存...

B-Tree和B+树

B树和B+树是很多数据库索引采用的数据结构,为什么会使用B树,而不采用更常见的二叉树的呢? 举个例子,有这么几个数字:1,2,3,4,5,6,7,8,9,0,分别生成AVL树,B树 二叉树生出的树的度为4,而3阶B树高度只是3.如果B树的阶数再多的话,就可以获得更小的高度度。 (6阶的B树) 树的度带来更深入查询,会带来更多的IO读写。 除了二叉树的深度太深的原因,...

手写JDK动态代理

反射动态代理 为了能够更好实现AOP的思想,在Java中有了动态代理概念,与动态代理相对应的就是静态代理,首先看下面的代码。 public interface IWoker { String sayHello(String name,String code) ; } public class Worker implements IWoker{ @Override...

作者:付威

真正的热爱是不图回报

推广信息

付威星球 知识星球
付威公众号 公众号

信息

推荐博客

如需添加到列表,请邮件到laofu_online@163.com

Other

Hosted by Coding Pages