On the way

spi

demo 目录结构 // Cat.java package spi; public class Cat implements IShout { @Override public void shout() { System.out.println("miao miao"); } } // Dog.java package spi; pub...

自定义spring-boot-starter


rabbitmq学习

Rabbitmq知识点 主要参考:http://wiki.jikexueyuan.com/project/rabbitmq/hello-world.html 启动后可以打开:http://127.0.0.1:15672/ 登录查看 交换机(Exchanges) RabbitMQ 消息模型的核心理念是:发布者(producer)不会直接发送任何消息给队列。事实上,发布者(produce...

slf4j 和 log4j

slf4j 提供了统一的接口规范,log4j是具体的实现。 slf4j相当于提供了一个中间层,它兼容多种日志框架,在应用中屏蔽掉底层日志框架的具体实现。这样,如果需要更换日志框架,应用层写的代码几乎不用修改。 【强制】应用中不可直接使用日志系统(Log4j、Logback)中的 API,而应依赖使用日志框架 SLF4J 中的 API,使用门面模式的日志框架,有利于维护和各个类...

JMH基准测试

使用 <dependency> <groupId>org.openjdk.jmh</groupId> <artifactId>jmh-core</artifactId> <version>1.21</version> </dependency> <dependenc...

redis学习

数据结构 常用的命令 KEYS KEYS pattern 查找所有符合给定模式 pattern 的 key 。 KEYS * 匹配数据库中所有 key 。 KEYS h?llo 匹配 hello , hallo 和 hxllo 等。 KEYS h*llo 匹配 hllo 和 heeeeello 等。 KEYS h[ae]llo 匹配 hello 和 hallo ,但不匹配 hill...

nginx配置

配置反向代理和负载均衡 在http节点下,添加upstream节点,自定义一个集群名字。 # tomcats为自定义的名字 upstream tomcats { server 127.0.0.1:8081; server 127.0.0.1:8082; } server { listen 8080; server_name 127.0.0.1; ...

Integer.class和int.class的区别

Integer.class 是Integer类型的类对象,类似的,int.class是是int类型的类对象。 作为一个特例,基本类型都有一个类对象,主要是用在反射中。 Integer.TYPE 和 int.class 是等价的。 public static void main(String[] args) { Class<Integer> a = int.class...

分布式锁

死锁和活锁 死锁 多个线程相互占用对方的资源的锁,而又相互等对方释放锁,导致阻塞等待。 例如如下代码就会导致死锁: public class Test { public static void main(String[] args) { final Object a = new Object(); final Object b = new Ob...

mybatis-demo

简介 什么是 MyBatis ? MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。...