Maven
Maven 一些配置
向maven中央仓库发布jar
将Github上的开源代码发布到maven中央仓库。
万金油之缓存
在互联网产品中,缓存无处不在。当一个网站前期请求量少,服务响应很快,当随着请求增加响应越来越慢。这时需要对请求的入口合并、业务调整、底层代码重构、数据库SQL与表等等优化后提高响应最终提升整体的性能,也可以引入缓存以提高吞吐量。但是引入缓存也带了维护的问题,比如脏数据的问题、缓存数据更新的策越等等。
Synchronizd Lock 锁升级 AQS
Synchronized 在1.5以前是重量级锁,当遇到synchronzed时,其他线程需要等待并进入blocked状态。 在1.6以后,经过大量的测试发现加锁的地
Spring Spring Boot 杂项
Spring SpringBoot小的细节总结记录 spring mvc 采用SPI技术,注入Spring的Servlet类,具体是实现了javax.servlet.Ser
限流器 RateLimiter
限流器 我们项目是新闻类的站点,每天需要限制各种爬虫,保证服务在可承受范围内,需要保护后台服务正常。需要使用限流器。 固定 滑动 令牌桶 一 固定窗口:
Spring Bean创建过程
bean初始化过程: 大体分为三个过程bean的对象创建、属性填充、初始化事件 bean的创建前事件,其中bean的创建前事件主要场景是在aop
Java_docker_jvm
当前jvm配置 -XX:+PrintFlagsInitial 查看初始 docker JAVA_OPTS 1-XX:+AlwaysPreTouch 2 JAVA进程启动的时候,虽然我们可以为JVM指定合适的内存大小,但是这些内存操作系统并没有真正的分配给JVM
Controller方法上自定义注解
定义自定义注解 1@Retention(RetentionPolicy.RUNTIME) 2@Target(ElementType.PARAMETER) 3public @interface Logined { 4} 注解处理器 1@Component 2@Slf4j 3public class LoginedArgumentResolver implements HandlerMethodArgumentResolver { 4 @Override 5 public boolean supportsParameter(MethodParameter parameter) { 6 return …
HandlerMapping
Spring HandlerMapping 1package org.springframework.web.servlet; 2 3import javax.servlet.http.HttpServletRequest; 4 5import org.springframework.lang.Nullable; 6 7public interface HandlerMapping { 8 // 省略一下常量配置..... 9 /** 10 * 返回此请求的处理程序和任何拦截器。可以根据请求URL、会话状态或实现类选
Java 基础技
Java 基础技能 包括以下大致内容 Object类的常用方法 常用反射方法 常用字段处理 枚举处理 泛型的获取 基本类型的判断 1. isAssignableFrom
用一条SQL查询产品的库存
使用一条SQL语句,对产品的库存查询。 产品的表结构 1CREATE TABLE `temp` ( 2 `id` int(11) NOT NULL AUTO_INCREMENT, 3 `product_id` int(11) NOT NULL, 4 `flag` int(1) DEFAULT NULL, 5 `size` int(11) DEFAULT NULL, 6 PRIMARY KEY (`id`) 7) ENGINE=InnoDB DEFAULT CHARSET=utf8; 字段 描述 id 主键 product_id 产品唯一
DispatcherServlet
DispatcherServlet 关系说明 DispatcherServlet 继承了FrameworkServlet; FrameworkServlet 继承了HttpServletBean并实现了ApplicationContextAwa
Spring_aop 事务 Mapper
Spring AOP AOP 原理 mapper 1 此处可以查看 mapper 2 org.springframework.aop.framework.autoproxy.AbstractAutoProxyCreator#postProcessAfterInitialization 3 org.springframework.aop.framework.autoproxy.AbstractAutoProxyCreator#wrapIfNecessary 4 org.springframework.aop.support.AopUtils#findAdvisorsThatCanApply 事务 1Supplier …
Java基本类型
一、Java基础类型 名字 默认值 占用空间 最大值 最小值 byte 0 8位 127(2^7-1) -128(-2^7) chat ‘u0000’ 16 位 Unicode 字符 \uffff (65535) \u0000 (0) boolean false 1位 - - short 0 16位 32767(2^15 - 1) -327
Java中init和clinit方法的区别
调用时机 clinit在jvm第一次加载class时调用,init在实例创建出来的时候调用 clinit在jvm第一次加载class文件时调用,
Java内存优化之Reference分析
Java的内存优化之Reference,SoftReference、WeakReference、StrongReference 引用对象类型定
HttpClient 工具类
HttpClient 工具类 1package cn.linuxcrypt.utils; 2 3import org.apache.http.*; 4import org.apache.http.client.ClientProtocolException; 5import org.apache.http.client.ResponseHandler; 6import org.apache.http.client.config.CookieSpecs; 7import org.apache.http.client.config.RequestConfig; 8import …
Deque双向队列之ArrayDeque
概述 Deque是Queue的子接口,我们知道Queue是一种队列形式,而Deque则是双向队列,它支持从两个端点方向检索和插入元素,因此De