![](https://img-blog.csdnimg.cn/e5cd046ab6384c1db8d74d3557b2fa30.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
spring
文章平均质量分 77
spring
秋日的晚霞
Java领域优质创作者 新星计划·第三季【Java后端】第二名
展开
-
Spring源码分析 @Autowired 是怎样完成注入的?究竟是byType还是byName亦两者皆有
如果想达到我们想要的效果 , 那么在核心线程数上限,存放线程任务时,报一个假消息,让线程池误认为工作队列已经满了这时就会创建非核心线程,执行线程任务, 如果非核心线程数也上限了,那么就会执行拒绝策略我们设想的是,非核心线程数上限了,这时把线程任务才真正的丢到工作队列中去 那么相应的,就应该自定义一个拒绝策略所以我们需要重写工作队列和拒绝策略,当然最好自己创建线程工厂package com.sgg.javaerror100.弹性线程池;原创 2023-12-22 20:05:04 · 1085 阅读 · 0 评论 -
Spring PropertyEditor 使用案例
【代码】Spring 自定义类型转换器。原创 2023-08-29 16:43:27 · 221 阅读 · 0 评论 -
【Spring】Spring中AOP解析 完结 创建代理类,并执行代理逻辑源码
【Spring】Spring中AOP解析 中 AOP的具体实现流程【Spring】Spring中AOP解析 上 两种动态代理方式与ProxyFactory代理工厂回到 org.springframework.aop.framework.autoproxy.AbstractAutoProxyCreator.wrapIfNecessary 方法拿到所有的advice的流程已经走完,接下来就是创建代理类了,画张图,整理下流程接下来看 createProxy 方法可以看到spring底层使用了Pr原创 2022-04-07 21:25:51 · 1123 阅读 · 5 评论 -
【Spring】Spring中AOP解析 中 AOP的具体实现流程
3.ProxyFactoryBean 代理工厂Bean 生产代理类首先 在Spring中,如果一个类实现了FactoryBean 接口,最终放到容器中的bean是getObject返回的对象因此,可以通过ProxyFactoryBean 代理工厂bean,创建一个bean的代理类放到容器中1.案例演示一 new 对象与通知:配置类@Configurationpublic class MyProxyFactoryBeanConf { @Bean public Object pro原创 2022-04-07 20:26:56 · 2266 阅读 · 0 评论 -
【Spring】Spring中AOP解析 上 两种动态代理方式与ProxyFactory代理工厂
1.两种动态代理方式演示1.1 JDK动态代理JDK的动态代理,就是在程序运行的过程中,根据被代理的接口来动态生成代理类的class文件,并加载运行的过程。要求被代理类必须实现一个接口 . 如下案例接口public interface TargetInterface { public void say();}被代理类public class Target implements TargetInterface{ @Override public void say()原创 2022-04-06 20:31:40 · 2679 阅读 · 0 评论 -
【Spring】Spring中bean生命周期重要的四个扩展点
一.BeanDefinitionRegistryPostProcessor扩展点1. 重写 postProcessBeanDefinitionRegistryBeanDefinitionRegistryPostProcessor 继承自 BeanFactoryPostProcessor 需要重写 postProcessBeanDefinitionRegistry 方法2.获取BeanDefinitionRegistry,增删改BeanDefinition能过实现 BeanDefinitionR原创 2022-04-05 21:04:52 · 3475 阅读 · 7 评论 -
【Spring】Bean生命周期源码分析 总结
【Spring】Bean生命周期源码总结验证一下定义两个bean A,B 以及实现MyBeanFactoryProcess,MyBeanProcessor,MyInstantiationAwareBeanPostProcessors三个扩展点<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http原创 2022-04-03 14:57:42 · 2135 阅读 · 1 评论 -
【Spring】Bean生命周期源码分析 下篇 属性填充以及初始化流程
1.实例化前推断构造方法org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean创建了一个 BeanWrapper对象用来报装实例化的bean开始实例化instanceWrapper = createBeanInstance(beanName, mbd, args);跟进去org.springframework.beans.factory.support.Abstrac原创 2022-04-03 13:06:25 · 2279 阅读 · 0 评论 -
【Spring】Bean生命周期源码分析 上篇 实例化前的准备工作
测试Bean1.容器启动Spring创建一个容器有多种方式,可以基于配置类,也可以基于xml配置文件,这里使用XML配置的方式创建Spring容器Debug走起,打下第一个断点来到 org.springframework.context.support.AbstractApplicationContext.refresh() 方法 refresh是spring容器启动最核心的方法在这个方法内一共调用了其他12个方法 , 这篇是看Bean的生命周期,所有无关的方法浅浅过一下第一个方法原创 2022-04-02 22:11:42 · 1575 阅读 · 1 评论 -
【SpringBoot】全局异常日志记录到文件
一、日志1、配置日志级别日志记录器(Logger)的行为是分等级的。如下表所示:分为:OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL默认情况下,spring boot从控制台打印出来的日志级别只有INFO及以上级别,可以配置日志级别# 设置日志级别logging.level.root=WARN这种方式只能将日志打印在控制台上二、Logback日志spring boot内部使用Logback作为日志实现的框架。Logback和log4j非常相似,如果你对lo..原创 2022-03-25 10:03:54 · 1871 阅读 · 3 评论 -
【Spring】SpringIOC容器启动过程源码分析 以及 循环依赖问题
1.Spring是什么Spring是一款轻量级的开发框架 . 简而言之 Spring提高了开发效率 两个核心 IOC 和 AOP1.1 IOC ( Inversion of Control ) 是什么Inversion of Control 控制反转1.1.1 控制了什么想象一下如果没有使用spring ,我们要创建一个A对象 它 有属性 id name age 等等 我们是不是需要new A(id,name,age)而使用了spring框架后 你所需要的组件没有使用过new原创 2022-03-14 12:48:56 · 2240 阅读 · 1 评论 -
spring事务失效了? @Transactional不管用了 ?看看这些@Transation的坑
1.搭建测试环境模拟最经典的用户转账 这里用的mybatis-plus 主要是看声明式事务失效的情况 用什么框架不重要代码如下@Servicepublic class DealServiceImpl { @Autowired private Bank1Service bank1Service; @Autowired private Bank2Service bank2Service; public void deal() {原创 2022-03-12 20:31:01 · 4081 阅读 · 53 评论 -
[ Spring核心 ] IOC技术 上篇 吃透 Spring
Spring核心技术上篇 IOC 超级详细 参考Spring官方文档👈 点个关注吧 🙏💋 如果对你有帮助,给博主一个免费的点赞 💋👋 博客主页🎉 秋日的晚霞⭐️ 更多文章 请关注主页原创 2022-03-10 22:34:31 · 4548 阅读 · 62 评论 -
[ Spring学习 ] Spring 的 StringUtils 工具类你了解多少 看看Spring是怎么写工具类的
👈 点个关注吧 🙏💋如果对你有帮助,给博主一个免费的点赞💋👋博客主页🎉 秋日的晚霞⭐️更多文章 请关注主页📝👋一起走上java学习之路!🎄欢迎各位🔎点赞👍评论收藏⭐️🎄文章目录🍃获取文件扩展名 getFilenameExtension🍃获取文件扩展名 getFilenameExtension🍃去除文件扩展名 stripFilenameExtension🍃替换所有的旧指定字符串 replace🍃删除所有的匹配字符串 delete🍃判断对象是否为空 isEmpty🍃判断字原创 2022-03-10 00:06:55 · 2998 阅读 · 45 评论 -
JWT的简单使用案例
JWT的原理一个JWT由三个部分组成:公共部分、私有部分、签名部分。最后由这三者组合进行base64编码得到JWT。1、 公共部分主要是该JWT的相关配置参数,比如签名的加密算法、格式类型、过期时间等等。Key=ATGUIGU2、 私有部分用户自定义的内容,根据实际需要真正要封装的信息。userInfo{用户的Id,用户的昵称nickName}3、 签名部分SaltiP: 当前服务器的Ip地址!{linux 中配置代理服务器的ip}主要用户对JWT生成...原创 2022-01-23 20:57:28 · 851 阅读 · 0 评论