
源码解析
文章平均质量分 68
spring、spring cloud、java相关源码
岁月变迁呀
往事如风随风散
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Spring Cloud Gateway 源码
网关会在各种过滤器处理后(根据配置的过滤器修改请求信息,重写路径等),最后转发到对应服务,核心就是通过NettyRoutingFilter来实现的。到此Spring Cloud Gateway的核心处理逻辑就分析完了,主要是针对核心逻辑链路的处理,很多细节都没深入,有兴趣可以自行debug看看。3.WebHandler生成FilterChain过滤器链执行所有的过滤器。具体的处理逻辑 webHandler.handle(exchange)每个过滤器执行完,重新封装新的过滤器链,过滤器链索引+1继续执行。原创 2024-12-21 23:08:55 · 835 阅读 · 0 评论 -
OpenFeign源码
spring cloud openfeign源码解析原创 2024-12-21 23:32:50 · 1076 阅读 · 0 评论 -
Eureka服务注册源码
euraka服务注册的源码分析原创 2024-12-21 22:58:51 · 806 阅读 · 0 评论 -
ArrayList源码解析
ArrayList源码原创 2024-12-21 23:54:51 · 349 阅读 · 0 评论 -
Spring源码解析之AOP
1、开启AOP注解1)@EnableAspectJAutoProxy 通过Import引入AspectJAutoProxyRegistrar @Import(AspectJAutoProxyRegistrar.class)2)实现ImportBeanDefinitionRegistrar接口,给容器注册bean定义AspectJAutoProxyRegistrar implements ImportBeanDefinitionRegistrar3)注册一个BeanPostProces原创 2021-02-05 01:02:36 · 385 阅读 · 1 评论 -
Spring源码解析之事务管理
一、环境准备基本步骤1)引入mysql驱动,Druid连接池,jdbc依赖2)配置类TxConfig, 注册JdbcTemplate, DruidDataSource3)编写业务类,使用原生jdbc操作数据库4)加入事务管理 @EnableTransactionManagement @Transactional 注册事务管理器TransactionManager5)调试实现回滚,int tem = 10 / 0; 当数据回滚时候,数据库自增主键会继续增长,即回滚原创 2021-02-05 01:12:17 · 447 阅读 · 0 评论 -
SpringMVC源码解析
1、servlet3 规范servlet3规范servlet容器会自动在每个jar包扫描下面路径找到对应的java类进行web容器初始化。/META-INF/services/javax.servlet.ServletContainerInitializer注:(tomcat7以上版本才是使用servlet3)以spring mvc为例1)在spring web中/META-INF/services/javax.servlet.ServletContainerInitializer下找原创 2021-02-05 00:25:35 · 199 阅读 · 0 评论 -
Spring源码解析之IOC(一)
测试类入口public static void main(String[] args) { AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(AppConfig.class); UserService userService = context.getBean(UserService.class); userService.call();}构造器初始化操作原创 2021-02-05 00:31:56 · 132 阅读 · 0 评论 -
Spring源码解析之IOC(二)refresh方法
1、prepareRefresh();上下文refresh之前准备操作1)设置当前系统时间2)设置上下文关闭 / 活跃 标志3)获取Envirenment(没有就创建StandartEnvirenment),验证所有按要求标记的属性是否可解析4)创建用于存储refresh之前ApplicationListener和ApplicationEvent的容器2、obtainFreshBeanFactory()获取beanFactoryAbstractApplicationConte原创 2021-02-05 00:53:36 · 368 阅读 · 0 评论 -
mybatis源码解析(一)环境准备和测试
1、准备环境项目结构maven依赖<dependencies> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.5.3</version> </dependency> <de.原创 2021-02-04 23:41:16 · 176 阅读 · 0 评论 -
mybatis源码解析(二)初始化SqlSessionFactory对象
上篇我们准备好了debug环境,这篇我们具体深入分析下SqlSessionFactory 的创建SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);1、SqlSessionFactoryBuilder创建SqlSessionFactory对象调用重载方法public SqlSessionFactory build(InputStream inputStream) {原创 2021-02-04 23:53:20 · 261 阅读 · 0 评论 -
mybatis源码解析(三)SqlSession获取Mapper代理对象
1、SqlSession session = sqlSessionFactory.openSession(); // 获取SqlSession 对象1)configuration.getDefaultExecutorType()获取默认的执行器类型,一共有三种,默认是SIMPLEpublic enum ExecutorType { SIMPLE, // 简单类型 REUSE, // 重用类型 BATCH // 批量处理类型}2)openSessionFromDataSo原创 2021-02-05 00:04:21 · 1096 阅读 · 0 评论 -
mybatis源码解析(四)调用mapper代理方法执行sql
之前分析了SqlSessionFactory初始化,通过SqlSession获取UserMapper代理对象debug打上断点在List<User> users = mapper.selectAll();看下执行如何执行代理对象的方法public class MybatisDemo { public static void main(String[] args) throws IOException { String resource = "mybatis原创 2021-02-05 00:13:58 · 1041 阅读 · 0 评论 -
Spring容器注册bean方式
组件Bean注册方式1、使用@ComponentScan+注解(@Controller, @Repository, @Component, @Service)使用includeFilters时,需设置 useDefaultFilters = false2、使用@Bean注解, @Lazy标记单例bean懒加载, @Scope("prototype")定义bean的作用域, @Conditional({MyCondition.class}) 符合条件才可以生成bean3.原创 2021-01-21 00:59:42 · 372 阅读 · 2 评论 -
Spring Cloud与Spring Boot之间版本对应关系
"Finchley.M2": "Spring Boot >=2.0.0.M3 and <2.0.0.M5","Finchley.M3": "Spring Boot >=2.0.0.M5 and <=2.0.0.M5","Finchley.M4": "Spring Boot >=2.0.0.M6 and <=2.0.0.M6","Finchley.M5":...原创 2019-12-19 14:28:56 · 173 阅读 · 0 评论 -
Spring AOP的使用场景及其原理
1. AOP是什么? AOP(Aspect Oriented Programming),面向切面编程。顾明思议就是通过某个切入点(比如方法开始、结束)向某个切面(被切的对象)切入环绕通知(需要切入的逻辑代码)。比如一个类中的所有方法执行前都需要打印日志,那么可以通过AOP的方式来统一实现,而不需要在每个方法中都加入打印日志的代码逻辑。 Spring中可以通过配置或者注解方式来实现统一切入...原创 2019-12-10 17:59:35 · 4226 阅读 · 0 评论