自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 SpringBoot @Conditional注解

@AutoConfigureBefore 在指定配置类初始化前加载@AutoConfigureAfter 在指定配置类初始化后加载@AutoConfigureOrder 指定配置类初始化顺序,越小初始化越早选择器@Conditional,当指定的条件都满足时,组件才被注册@ConditionalOnBean,指定bean在上下文中时,才注册当前bean。用在方法上,则默认依赖类为方法的返回类型@ConditionalOnClass,指定类在classpath上时,才初始化当前bean。用在方法上

2023-09-15 14:50:53 126

原创 kafka指令

指令

2022-08-18 20:44:29 427 1

原创 原生java调优工具

jvm调优

2022-08-14 17:25:14 240

原创 LeetCode算法总结

算法总结

2022-07-01 22:59:55 275

原创 OpenSSL安装

安装OpenSSL

2022-06-30 18:54:54 4536 2

原创 Redis实现分布式锁

分布式锁

2022-06-07 15:12:58 92

原创 shardingsphere-jdbc的分片策略

分片策略

2022-06-05 19:22:53 391

原创 mysql集群搭建

mysql集群

2022-06-04 15:54:50 817

原创 数据库主从复制

主从复制

2022-06-02 18:17:49 1166

原创 多种单例模式

单例模式

2022-06-01 16:03:10 56

原创 SpringBoot项目打包jar

打包成jar

2022-06-01 15:41:47 71

原创 Nginx静动分离

nginx动静分离

2022-06-01 15:36:22 78

原创 Nginx反向代理与负载均衡

两者只需要修改nginx/conf/nginx.conf即可反向代理server { listen 81; server_name localhost; location / { proxy_pass https://www.csdn.net; #root html; #index index.html index.htm; } error_p

2022-05-27 17:31:44 61

原创 Linux安装Nginx

wget http://nginx.org/download/nginx-1.21.6.tar.gz解压 tar -zxvf nginx-1.21.6.tar.gzcd nginx-1.21.6.tar.gz输入./configure 看看缺少什么yum -y install gcc 以及yum -y install gcc-c++yum install -y pcre pcre-develyum install -y zlib zlib-devel./configure --prefix=/

2022-05-26 16:41:13 76

原创 redis集群

Redis有三种集群模式,分别是:主从模式Sentinel模式Cluster模式主从模式主从模式是三种模式中最简单的,在主从复制中,数据库分为两类:主数据库(master)和从数据库(slave)。其中主从复制有如下特点:* 主数据库可以进行读写操作,当读写操作导致数据变化时会自动将数据同步给从数据库* 从数据库一般都是只读的,并且接收主数据库同步过来的数据* 一个master可以拥有多个slave,但是一个slave只能对应一个master* slave挂了不影响

2022-05-25 20:04:05 181

原创 shardingsphere-jdbc

shardingsphere-jdbc有四个分片规则inlinestandard通过自定义分片策略实现精确分片和范围分片complex通过多分片键实现精确分片hint强制分片,通过非SQL方式强制干预

2022-05-24 20:15:49 602

原创 数据库分片

哈希分片范围分片融合分片地理位置

2022-05-20 22:55:41 310

原创 数据库一致性

CAPC:Consistency一致性:访问所有的节点,得到的数据结果都是一样的。注意:这里的一致性指的是强一致性,也就是数据更新完,访问任意节点,看到的数据完全一致,要和弱一致性、最终一致性区分开来A:Availability可用性:所有节点都保持高可用性。注意:这里的高可用还包括,不能出现延迟,如节点B由于等待数据同步而阻塞了请求,那么节点B就不满足高可用性。也就是说,任何没有发生故障的服务必须在有限的时间内返回合理的结果集。P:Partiton tolerance分区容错性:一个分布式系统

2022-05-20 20:54:39 1881

原创 Sentinel非控制台使用

添加依赖 <dependency> <groupId>com.alibaba.csp</groupId> <artifactId>sentinel-core</artifactId> <version>1.8.0</version> </dependency> <!--如果要使用@Sentin

2022-05-05 17:23:55 529

原创 zookeeper集群

有了java环境之后建立三个结点的集群vi /etc/hostsvim /etc/profilevim /usr/local/java/apache-zookeeper-3.6.2-bin/conf/zoo.cfgdataDir=/tmp/zookeeper/datadataLogDir=/tmp/zookeeper/log//记得检查空格(重点)server.1=CentosA:2888:3888server.2=CentosB:2888:3888server.3=CentosC:

2022-04-26 20:21:24 1445

原创 ThreadLocal

简介多线程访问同一个共享变量的时候容易出现并发问题,特别是多个线程对一个变量进行写入的时候,为了保证线程安全,一般使用者在访问共享变量的时候需要进行额外的同步措施才能保证线程安全性。ThreadLocal是除了加锁这种同步方式之外的一种保证一种规避多线程访问出现线程不安全的方法,当我们在创建一个变量后,如果每个线程对其进行访问的时候访问的都是线程自己的变量这样就不会存在线程不安全问题。ThreadLocal中有一个内部类ThreadLocalMap;而在每个Thread内部,都维护了一个ThreadLo

2022-04-20 12:01:44 169

转载 ConcurrentHashMap

简介在并发使用到HashMap的时候,往往不建议直接用HashMap,因为HashMap在并发写数据的时候容易因为rehash的过程产生环形链表的情况。所以在并发使用Map结构时,一般建议使用ConcurrentHashMap。ConcurrentHashMap,采用了数组+链表+红黑树的实现方式来设计,内部大量采用CAS操作。并发控制使⽤synchronized 和 CAS 来操作。 Node节点中value和next都用volatile修饰,保证并发的可见性。而且synchronized 只锁定当前

2022-03-30 14:07:22 214

原创 BeanDefinition

那么什么是spring bean的建模对象呢?一言概之就是把一个bean实例化出来的模型对象?有人会问把一个bean实例化出来有Class就行了啊,Class也就是我们通常说的类对象,就是一个普通对象的建模对象,那么为什么spring不能用Class来建立bean呢?很简单,因为Class无法完成bean的抽象,比如bean的作用域,bean的注入模型,bean是否是懒加载等等信息,Class是无法抽象出来的,故而需要一个BeanDefinition类来抽象这些信息,以便于spring能够完美的实例化一个b

2021-11-05 23:01:05 96

原创 BeanNameGenerator

BeanNameGeneratorpublic interface BeanNameGenerator { String generateBeanName(BeanDefinition definition, BeanDefinitionRegistry registry);}参数为BeanDefinition 和 BeanDefinitionRegistry 类型,此处可以反映出spring需要的bean 是BeanDefinition。definition 是被生成名字的BeanDefi.

2021-11-05 13:45:56 442

原创 Spring Resource

Resource在spring中定义了新的Resource类public interface Resource extends InputStreamSource { boolean exists(); default boolean isReadable() { return exists(); } default boolean isOpen() { return false; } default boolean isFile() { return false; }

2021-11-03 23:00:12 695

原创 Environment

源码package org.springframework.core.env;/** * @author Chris Beams * @since 3.1 * @see PropertyResolver * @see EnvironmentCapable * @see ConfigurableEnvironment * @see AbstractEnvironment * @see StandardEnvironment * @see org.springframework.conte

2021-10-29 10:48:51 394

原创 AnnotationAttributes

作用按照我的理解AnnotationAttributes是为了存储注解属性或者信息的,可以通过org.springframework.core.annotation.AnnotationUtils.getAnnotationAttributes(annotation);得到比如:@ComponentScanpublic class Math { public static void main(String[] args) { Annotation annotation= M

2021-10-20 22:47:15 1527

原创 ComponentScanAnnotationParser

ComponentScan解析器继承上一节所讲ComponentScan的解析器分为:针对注解的ComponentScanAnnotationParser以及针对Application.xml配置文件中的context:component-scan的ComponentScanBeanDefinitionParser。ComponentScanAnnotationParser代码如下:class ComponentScanAnnotationParser { private final Envi

2021-10-20 21:25:56 298

原创 Spring命名空间

context:component-scan<?xml version="1.0" encoding="UTF-8"?><beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context" xsi:sch

2021-10-19 09:46:14 1264

原创 类加载器ClassLoader

类加载器的作用有哪些类加载器ClassLoader loader=ClassLoader.getSystemClassLoader(); //获取系统类加载器ClassLoader parent=loader.getParent();//扩展类加载器ClassLoader root=parent.getParent();//引导类加载器,不可以直接获取,为nullClass c=Class.forName("reflectClass.House");System.out.println(c.g

2021-10-16 14:21:10 419

原创 profile配置文件

首先创建配置文件然后在application.yml中配置如图,激活了dev开发环境,如果激活pro就是生产环境

2021-10-07 22:18:09 194

原创 springboot配置文件加载顺序

可以从pom.xml文件中点击parent往下滑动可以看到如果同时存在,按照顺序,以最优先的配置为准

2021-10-07 21:19:29 182

原创 springboot自动装配

官方文档中介绍了激活自动装配的方法,那就是在类上添加注解@EnableAutoConfiguration或者@SpringBootApplicationSpringBootApplication// <version>2.3.4.RELEASE</version>@Target(ElementType.TYPE)@Retention(RetentionPolicy.RUNTIME)@Documented@Inherited@SpringBootConfiguration

2021-09-22 19:37:39 77

原创 linux安装redis

下载redis进入官网https://redis.io/download下载稳定版,右键复制链接地址进入到Xshell控制台(默认当前是root根目录),输入wget 将上面复制的下载链接粘贴上,如下命令:wget https://download.redis.io/releases/redis-6.2.5.tar.gz注意先cd到目的地址,这样就可以直接下载到目的地址,不用通过mv命令移动下载包,然后ls后就会发现当前地址下多出一个tar.gz文件夹:然后在以上的基础上解压下载包:ta

2021-08-01 19:51:36 71

原创 统一异常处理

ErrorMvcAutoConfiguration private final ServerProperties serverProperties; public ErrorMvcAutoConfiguration(ServerProperties serverProperties) { this.serverProperties = serverProperties; } @Bean @ConditionalOnMissingBean(value = ErrorAttributes.c

2021-07-27 21:10:41 242

原创 Spring boot 自带注解缓存

常用缓存注解CacheConfig Cacheable CachePut CacheEvict CachingCacheConfig一个类中可能会有多个缓存操作,而这些缓存操作可能是重复的。这个时候可以使用@CacheConfig。@CacheConfig是一个类级别的注解,允许共享缓存的名称、KeyGenerator、CacheManager 和CacheResolver。 该操作会被覆盖。此三者都可以自定义。@Target(ElementType.TYPE)@Retention(Ret

2021-07-10 11:00:01 499

原创 SecurityAutoConfiguration

源代码解析@Configuration(proxyBeanMethods = false)//不使用代理@ConditionalOnClass(DefaultAuthenticationEventPublisher.class)//当引入了spring-security-core包时即自动启用该类@EnableConfigurationProperties(SecurityProperties.class)@Import({ SpringBootWebSecurityConfiguration.cl

2021-07-08 18:31:07 664

原创 HttpSecurity

HttpSecurityhttps://www.jianshu.com/p/6f1b129442a1;WebSecurityConfigurerAdapter的初始化方法init()中,通过getHttp()方法获取到了HttpSecurity的对象; public void init(final WebSecurity web) throws Exception { final HttpSecurity http = getHttp(); web.addSecurityFilterCh

2021-07-08 16:20:56 570

原创 UserDetailsService

1 UserDetailsService在AuthenticationManagerBuilder类中通过这个方法添加自定义内存认证 public <T extends UserDetailsService> DaoAuthenticationConfigurer<AuthenticationManagerBuilder, T> userDetailsService( T userDetailsService) throws Exception { this.defau

2021-07-08 13:31:38 701

原创 AuthenticationManagerBuilder

AuthenticationManagerBuilderuserDetailsService public <T extends UserDetailsService> DaoAuthenticationConfigurer<AuthenticationManagerBuilder, T> userDetailsService( T userDetailsService) throws Exception { this.defaultUserDetailsService

2021-07-07 19:47:52 3456 1

空空如也

空空如也

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

TA关注的人

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