7 石臻

尚未进行身份认证

我要认证

公众号:进击的老码农(jjdlmn). 关注我不吃亏

等级
TA的排名 1w+

【Log日志】打印mybatis中sql日志并存放到指定文件中

打印mybatis中sql日志并存放到指定文件中logback-spring.xml (如果是logbackx.xml 动态路径会失效)<?xml version="1.0" encoding="UTF-8"?><configuration> <!-- 子节点<property> :用来定义变量值,它有两个属性name和value,通过<property>定义的值会被插入到logger上下文中,可以使“${}”来使用变量--> <

2020-10-21 16:10:57

【Log日志】在日志系统初始化之前如何打印日志

之前在文章 使用Nacos简化SpringBoot配置(所有配置放入到Nacos中) 中有实现一个 EnvironmentPostProcessor的扩展接口;但是发现日志并没有打印出来, 然后就跟着源码找了一下问题;问题原因:在SpringBoot加载的过程中 EnvironmentPostProcessor 的执行比较早; 这个时候日志系统根本就还没有初始化;所以在此之前的日志操作都不会有效果;看看日志系统加载的时机日志系统初始化的地方 LoggingApplicationListen

2020-10-21 15:34:19

【Log日志】logback.xml动态配置属性值(包括接入的第三方配置)

我们在开发过程中,会使用到logback.xml 配置来管理日志文件;比如 <appender name="common" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>${log.path}/common.log</file> <append>true</append> <encoder> <pattern>%d{yyyy

2020-10-20 17:51:32

使用Nacos简化SpringBoot配置(所有配置放入到Nacos中)

本篇文章主要讲述以下几个知识点 Nacos属性的简单使用 将SpringBoot中的所有配置全部放入到Nacos中 开发人创建单独的命名空间,修改互不影响 Nacos经常变动的配置抽离到外部文件中将项目中的所有配置全部放到到1. 首先引入包 <!-- nacos 接入--> <!-- https://mvnrepository.com/artifact/com.alibaba.boot/nacos-config-spring-boot

2020-10-20 11:43:43

【SpringBoot】配置文件的加载与属性值的绑定

Question在使用SpringBoot过程中你是否会有以下疑问?具体有多少种配置属性源的方式呢?为何使用@Value 注解就能够获取到属性源中的值呢?属性源这么多,如果属性相同的话 那么用哪个值呢?属性源是如何绑定到我们的程序中的呢?Nacos是如果接入到SpringBoot中的呢?为什么@NacosValue可以获取到Nacos中的值并且还是实时刷新的?有没有什么方式可以将SpringBoot中的静态配置全部移动到Nacos中去吗?本篇文章会针对以上问题逐个分析Answer

2020-09-01 16:05:47

【SpringBoot】SpringBoot启动流程图和扩展点说明

下图是SpringBoot的启动流程图图中 表示扩展点的标识;图中的Spring启动的过程 省略未画; 后续会补充上;如果图看不清,可以打开以下链接查看SpringBoot启动流程以扩展点说明图密码: src666

2020-08-31 17:16:10

【Spring Boot 四】启动之准备系统环境environmentPrepared

environmentPrepared系统环境已经准备就绪 private ConfigurableEnvironment prepareEnvironment( SpringApplicationRunListeners listeners, ApplicationArguments applicationArguments) { // Create and configure the environment ConfigurableEnvironment environme

2020-08-31 10:02:57

【Spring Boot 三】SpringBoot中事件与通知

前言在SpringBoot启动过程中,有下面两行代码 SpringApplicationRunListeners listeners = getRunListeners(args); listeners.starting();简单概括来说,他的作用是:通过spring.factories文件中找到所有需要被实例化的SpringApplicationRunListener的实现类;并将其实例化,然后执行starting方法; 在SpringBoot中这个实现类只有EventPublishin

2020-08-19 14:55:56

【SpringBoot 二】spring.factories加载时机分析

spring.factories作用这个类似于Java中的SPI功能,SpringBoot启动的时候会读取所有jar包下面的META-INF/spring.factories文件; 并且将文件中的 接口/抽象类 对应的实现类都对应起来,并在需要的时候可以实例化对应的实现类下面我们来分析一下源码看看spring.factories的使用场景源码解析启动SpringApplication,看看构造方法 public SpringApplication(ResourceLoader resour

2020-08-18 20:04:56

【SpringBoot 一】SpringApplication启动类的Args详解

Args 作用传递参数的一种方式; 例如启动的时候 java -jar --spring.profiles.active=prod或者更改自己的自定义配置信息 ;使用方式是 --key=value它的信息优先于项目里面的配置;我们现在大部分项目都是用SpringBoot进行开发的,一般启动类的格式是SpringApplication.run(SpringBootDemoPropertiesApplication.class, args);但是好像平常一直也没有用到args; 也没有穿过参数

2020-08-18 20:03:05

【Seata】分布式事务框架Seata踩坑集锦

no available service ‘default’ foundcom.alibaba.nacos.api.exception.NacosExceptionNotSupportYetException: not support register type: null can not register RM,err:can not connect to services-server.Could not initialize class io.seata.rm.datasource.undo.

2020-06-21 17:29:26

多版本并行开发测试解决方案

背景与挑战为了支撑业务的飞速发展,分布式系统架构不断演进,业务链路日趋复杂,服务间相互调用,增加了服务联调的复杂性;在如此研发背景下,作为研发过程中不可或缺的一环业务链路联调,面临越来越多的挑战:联调涉及应用服务多,导致环境构建和维护的成本都非常高,手工搭建一套可用联调环境,少则1-2天,部分情况下甚至可能花费1到2周。因此,如何降低联调环境构建成本,让研发同学专注于业务联调本身?联调链...

2020-05-09 10:20:42

我写的扩展jar包如何无侵入的给别人使用

有这么一个场景, 我写了一个dubbo spi扩展jar包 dubbo-ext.jar; 这个Jar包是不可执行包(没有main函数), 它的作用是对现有运行的dubbo服务做一些增强;那么这样的一个扩展包,要符合即插即用的原则;要无侵入的增强;正常情况下我们可能直接在pom文件依赖一下这个包;因为无侵入原则,那么这条路就不能走了; 那可怎么办呢?1.Tomcat启动方式如果目标服务是用T...

2019-12-09 20:12:37

【Dubbo源码】SPI机制源码解析

文章目录一、什么是SPI机制二、SPI机制源码分析ExtensionLoader静态类和静态方法new ExtensionLoader(type) 实例化扩展加载器如何创建自适应扩展实例如何获取自适应扩展的`Class`?如何自动创建`自适应扩展类`实例化之后,如何依赖注入?依赖注入的属性从哪里来加载当前`Type`中所有的扩展类加载文件中的具体实现类@Activate 注解的作用总结先去看Du...

2019-12-01 18:17:32

Zookeeper安装与基础命令操作

安装ZK下载安装包点击下载zookeeper 3.4.14PS: Mac之前下载了3.5.6启动之后,报错找不到或无法加载主类 org.apache.zookeeper.server.quorum.QuorumPeerMain应该是lib下的jar包缺失,省的麻烦,我就直接下载了3.4.14版本启动ZkServer执行zk的bin下面的启动脚本;例如sh ~/Documents...

2019-11-11 19:10:05

Aop实现记录请求日志

/** * @ClassName: LogAspect * @Description: 日志记录AOP实现 */@Component@Aspectpublic class LogAspect { private final static Logger logger = LoggerFactory.getLogger(LogAspect.class); @Pointcut...

2019-11-10 11:13:20

【Nacos配置管理】一文带你搞懂Nacos配置管理模块

总结Nacos配置管理操作流程可以 做 ip hash定位使用哪台机器;每次都访问同一台机器 ,或者做共享session;集群列表的配置文件,第3步通知的时候就是读取这里获取集群所有服务器列表给配置文件中的集群列表发送给一个http请求,通知有配置修改了本地磁盘中的文件,在服务端启动的时候就会将配置全部dunmp到本地磁盘, 这里修改了,也会修改对应的磁盘中的配置,服务端内存中存的只...

2019-10-10 09:18:40

初始Java诊断工具-Arthas

Arthas(读:阿尔萨斯) 是什么Arthas 是Alibaba开源的Java诊断工具Arthas能干什么当你遇到以下类似问题而束手无策时,Arthas可以帮助你解决:...

2019-09-20 11:39:46

【Arthas】通过Cloud Toolkit插件使用Arthas一键诊断远程服务器

Cloud Toolkit是一个IDE 插件,帮助开发者更高效地开发、测试、诊断并部署应用。

2019-09-20 08:56:32

【Arthas】初识Arthas,安装使用

Arthas(读:阿尔萨斯) Java诊断好帮手

2019-09-19 21:33:41

查看更多

CSDN身份
  • 博客专家
勋章 我的勋章
  • 签到王者
    签到王者
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 新人勋章
    新人勋章
    用户发布第一条blink获赞超过3个即可获得
  • 阅读者勋章Lv2
    阅读者勋章Lv2
    授予在CSDN APP累计阅读博文达到7天的你,是你的坚持与努力,使你超越了昨天的自己。
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv2
    勤写标兵Lv2
    授予每个自然周发布4篇到6篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。
  • 学习力
    学习力
    《原力计划【第二季】》第一期主题勋章 ,第一期活动已经结束啦,小伙伴们可以去参加第二期打卡挑战活动获取更多勋章哦。
  • 原力新人
    原力新人
    在《原力计划【第二季】》打卡挑战活动中,成功参与本活动并发布一篇原创文章的博主,即可获得此勋章。