自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(23)
  • 资源 (1)
  • 收藏
  • 关注

原创 深入SpringBoot源码(十四)postProcessApplicationContext与applyInitializers

postProcessApplicationContext应用任何相关的后置处理ApplicationContext。子类可以根据需要应用额外的处理。 protected void postProcessApplicationContext(ConfigurableApplicationContext context) { if (this.beanNameGenerator != null) { context.getBeanFactory().registerSingleton(Annot.

2022-04-24 16:36:57 1124

原创 深入SpringBoot源码(十三)context.setEnvironment

这章我们开始学习SpringApplication对ApplicationContext的相关操作,ApplicationContext的prepare与refresh可以算是SpringApplication的最重要部分。SpringApplication的prepareContext方法: private void prepareContext(DefaultBootstrapContext bootstrapContext, ConfigurableApplicationContext cont

2022-04-23 15:24:09 811

原创 深入SpringBoot源码(十二)ApplicationContext与BeanFactory的创建

SpringApplication的createApplicationContext是用于创建ApplicationContext的策略方法。默认情况下,此方法将尊重任何显式设置的应用程序上下文类或工厂,然后再回退到合适的默认值。此方法返回的应用程序上下文是尚未刷新的。 private ApplicationContextFactory applicationContextFactory = ApplicationContextFactory.DEFAULT; protected Configura.

2022-04-22 16:10:02 1195

原创 深入SpringBoot源码(十一)SpringApplication与Environment的绑定(下)

上一章讲到了SpringApplication的bindToSpringApplication的Binder.get(environment)方法, 这章接着讲Binder的bind方法。bindToSpringApplication方法通过Binder.get(environment)方法得到了Binder实例,再调用bind(String name, Bindable target)方法使用此 binder的property sources绑定指定的目标Bindable。 public <T

2022-04-21 22:34:43 1020

原创 Redis的两种基准性能测试方式

Redis基准性能测试的是为了测出在不同软硬件配置下Redis的基本性能,从而推断出Redis是否变慢了。用更直白的话说,如果有两台机器AB,机器A的性能只有机器B的一半,当机器B的Redis响应耗时高于100毫秒,我们就认为这是响应过慢,但是机器A就不能以机器B的响应耗时标准来评判,因为它们的基本性能并不相同,下面就介绍两种基准性能测试的方式。(我所使用的配置为:Ubuntu Server 20.04、R9-5900X (分配2个虚拟核心)、8G内存、120G NVME固态硬盘)redis-cli --

2022-04-21 17:15:54 2388 2

原创 深入SpringBoot源码(十)SpringApplication与Environment的绑定(上)

SpringApplication的prepareEnvironment方法:DefaultPropertiesPropertySource继承MapPropertySource,MapPropertySource包含直接贡献给SpringApplication的默认属性。按照惯例, DefaultPropertiesPropertySource始终是Environment中的最后一个属性源。DefaultPropertiesPropertySource的moveToEnd方法移动“defaultPro

2022-04-21 09:27:03 1624

原创 深入SpringBoot源码(九)SpringApplication与Environment绑定的前置工作(下)

接着上章所讲的EventPublishingRunListener的构造方法:SimpleApplicationEventMulticaster是ApplicationEventMulticaster接口的简单实现。它将所有事件多播到所有注册的监听器,让监听器忽略他们不感​​兴趣的事件。监听器通常会对传入的事件对象执行相应的instanceof检查。默认情况下,所有监听器监听器都在调用线程中调用,这会增加恶意监听器阻塞整个应用程序的危险性。所以最好指定一个替代任务执行器,让监听器在不同的线程中执行,例如

2022-04-20 22:12:31 1787

原创 深入SpringBoot源码(八)SpringApplication与Environment绑定的前置工作(中)

listeners.environmentPreparedSpringApplicationRunListeners有以下几个成员字段: //org.apache.commons.logging.Log private final Log log; private final List<SpringApplicationRunListener> listeners; private final ApplicationStartup applicationStartup;Sp

2022-04-19 15:04:38 2327 1

原创 深入SpringBoot源码(七)SpringApplication与Environment绑定的前置工作(上)

ConfigurationPropertySources的attach方法将ConfigurationPropertySource支持附加到指定的Environment。使环境管理的每个PropertySource适应ConfigurationPropertySource并允许经典的PropertySourcesPropertyResolver调用使用configuration property names进行解析。附加的解析器将动态跟踪来自基础Environment属性源的任何添加或删除。 publ.

2022-04-19 10:59:57 2372

原创 深入SpringBoot源码(六)configurePropertySources

configurePropertySourcesSpringApplication的configurePropertySources方法用于在此应用程序的环境中添加、删除或重新排序任何PropertySource。 protected void configurePropertySources(ConfigurableEnvironment environment, String[] args) { MutablePropertySources sources = environment.getP

2022-04-17 15:33:27 2726

原创 深入SpringBoot源码(五)设置ApplicationConversionService

configureEnvironment由于我引入了spring-boot-starter-webflux依赖,经过了getOrCreateEnvironment方法后得到了一个ApplicationReactiveWebEnvironment

2022-04-16 17:47:25 3978

原创 深入SpringBoot源码(四)初识Environment

new DefaultApplicationArguments

2022-04-15 16:36:39 3305

原创 深入SpringBoot源码(三)prepareEnvironment前的操作

SpringApplication的run方法运行 Spring 应用程序,创建并刷新一个新的ApplicationContext。

2022-04-14 17:45:18 4092

原创 深入SpringBoot源码(二)getSpringFactoriesInstances方法详解

SpringApplication的getSpringFactoriesInstances方法的第1行代码在传入的ResourceLoader是null时,调用ClassUtils.getDefaultClassLoader()方法 public static ClassLoader getDefaultClassLoader() { ClassLoader cl = null; try { cl = Thread.currentThread().getContextClassLoad

2022-04-13 16:59:03 5684 1

原创 深入SpringBoot源码(一)从SpringApplication的构造方法入门源码

1.学习SpringBoot源码的入口点2.SpringApplication的构造方法3.初识ResourceLoader、Resource4.WebApplicationType枚举5.初识BootstrapRegistryInitializer、BootstrapRegistry6.初识getSpringFactoriesInstances方法7.初识ApplicationListener、ApplicationEvent、PayloadApplicationEvent

2022-04-07 09:45:31 10781

原创 SpringBoot使用JPA自定义Query多表动态查询

PageCount.java (分页构建)public class PageCount<T> { private final int page; //当前页 private final int size; //页大小 private long total; //总记录数 private List<?> data; //数据 private final Class<T> tClass; //查询的类 public Page

2021-01-27 19:57:42 5748

原创 SpringBoot切面发送日志JSON给Kafka给Logstash给Elasticsearch

Kafka、Elasticsearch、Logstash、Kibana环境搭建见这里Logstash如何消费Kafka中的JSON输出给Elasticsearch见这里Maven依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId></dependency&gt

2021-01-23 20:21:05 6607 2

原创 Logstash消费Kafka中的JSON并写入Elasticsearch

本文使用的Kafka以及ELK搭建过程请见这里1、定义Elasticsearch模板{ "index_patterns" : ["test-*"], #匹配test-开头的索引 "mappings" : { "properties" : { "code" : { "type" : "integer" }, "url" : {

2021-01-21 21:05:21 7216

原创 Ubuntu Server安装Kafka+ELK

Ubuntu Server安装Kafka+ELK环境KafkaElasticsearchLogstashKibana测试扩展环境Kafka、Elasticsearch、Logstash、Kibana分别安装在四台如下版本的Ubuntu Server中注意:本文使用的Kafka版本为2.7 ELK版本为7.10,需要JAVA8以上版本,本文使用的JDK为Zulu JDKKafka下载:wget https://mirrors.tuna.tsinghua.edu.cn/apache/kafka/2

2021-01-17 20:15:51 6356

原创 logrotate定时每秒按指定大小切割日志

logrotate定时每秒按指定大小切割日志方案说明logrotate方案配置循环切割脚本crontab定时任务运行结果方案说明系统:Ubuntu Server 20.04方案:在crontab中添加一个每分钟都执行的脚本,此脚本每秒使用logrotate切割日志文件以JAVA项目为例,在JAR包同级目录下有如下文件↓↓↓↓logrotate方案配置test-logrotate文件/root/Desktop/test/nohup.d/nohup.out{ size=5M rota

2021-01-16 23:56:10 12071 5

原创 SpringBoot使用JPA多表关联动态查询指定字段

SpringBoot使用JPA多表关联动态查询指定字段目标需求Maven依赖项目结构代码运行结果目标需求在SpringBoot中用JPA实现多表关联动态查询,并且只查询指定字段和返回指定字段业务对应数据表(关联关系已在图中标出)某API需要返回的字段分析:需要进行三表关联一次性查出,JPA转换SQL语句时就限制查询指定字段Maven依赖<dependency> <groupId>org.springframework.boot</groupId>

2021-01-09 22:01:56 11196 1

原创 IDEA2020 根据数据表生成JPA适用的实体类

View → Tool Windows → Persistence点击左下角的Persistence → 对项目右键 → Generate Persistence Mapping → By Database Schema根据实际情况添加数据库填写数据库连接的相关信息,如果缺少驱动可点击Driver→Go To Drive让IDEA下载。准备完毕后点击Test Connection,若连接数据库成功则会在下方出现✔这里选yes生成完的实体类如下,@Table注解中的schema和cat

2021-01-09 22:00:24 6592

原创 VMWare虚拟机处理器数量与每个处理器内核数量概念,以及分配CPU资源详解

VMWare虚拟机处理器数量与每个处理器内核数量关系详解,以及分配CPU资源的建议概念CPU的物理核心和超线程CPU的睿频机制概念处理器数量:虚拟机上的CPU个数(上图中的插槽数,是机器主板上CPU的个数,并非CPU的物理核心数)每个处理器的内核数量:每个虚拟的CPU有几个内核(可以看到虚拟机内部并不区分物理核心数和线程数)处理器内核总数:处理器数量 * 每个处理器的内核数量(该参数最终决定虚拟机CPU性能)以上3个参数的上限由【当前要安装的目标操作系统所支持的CPU最大个数、物理机CPU线程总

2021-01-01 20:40:25 68359 15

Ubuntu 20.04.4 LTS 升级 22.04 LTS 教程

2022年4月,Ubuntu Server 22.04 LTS正式发布了,这篇教程将通过命令方式升级Ubuntu Server LTS,并且有注意事项的说明,有图解

2022-04-24

空空如也

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

TA关注的人

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