随笔分类 -  SpringBoot

摘要:Bean生命周期注解大致有这么多,创建并注册Bean,bean初始化与销毁,以及scope、conditional、primary、lazy等注解。 bean的初始化与销毁 BeanPostProcessor工作原理 我们给自定义的postProcessBeforeInitialization方法打 阅读全文
posted @ 2022-03-04 08:01 Awecoder 阅读(294) 评论(0) 推荐(0) 编辑
摘要:Spring: Spring是一个轻量级的控制反转(IOC/DI)和面向切面(AOP)的容器框架。 轻量级主要针对最小侵入编程而言,不会强迫实现或继承框架类。 实现解耦:使用DI实现应用对象之间的解耦,使用AOP实现横向关注点(系统服务)与业务逻辑的解耦。 容器:Spring容器负责对象的创建、装配 阅读全文
posted @ 2021-12-12 14:50 Awecoder 阅读(225) 评论(0) 推荐(0) 编辑
摘要:JDBC是Java数据库操作的底层规范,定义连接、查询,不同数据库都提供JDBC驱动。 Druid和HikariCP都是数据源,或者简单点说是数据库连接池。 ShardingShpere是用来做分库分表。 对象与关系数据库存在范式不匹配,因此有了ORM操作。例如粒度(类和表)、是否有继承、唯一性(相 阅读全文
posted @ 2021-12-02 00:04 Awecoder 阅读(338) 评论(0) 推荐(0) 编辑
摘要:问题引入 Spring中事务传播有哪几种,分别是怎样的? 理解注解事务的自动配置? SpringBoot启动类为什么不需要加@EnableTransactionManagement注解? 声明式事务的实现原理?(待补充) 1 声明式事务 系统开发中必然与数据打交道,事务管理必不可少。Spring支持 阅读全文
posted @ 2021-11-21 23:25 Awecoder 阅读(585) 评论(0) 推荐(0) 编辑
摘要:HikariCP为这么快? 字节码级别优化(很多⽅方法通过 JavaAssist ⽣生成) 大量细节优化 用 FastStatementList 代替 ArrayList 无锁集合 ConcurrentBag 代理类的优化(⽐如,用 invokestatic 代替了 invokevirtual,减少 阅读全文
posted @ 2021-11-21 23:22 Awecoder 阅读(2290) 评论(0) 推荐(0) 编辑
摘要:数据源配置 单数据源 配置步骤 引入依赖:H2数据库驱动、JDBC依赖、acturator(运维)、web模块(用于测试)、lambok(使用@Slf4j打印日志)。 直接配置所需的Bean,注入容器。 数据源:DataSource 事务:例PlatformTransactionManager(Da 阅读全文
posted @ 2021-11-19 07:39 Awecoder 阅读(1129) 评论(0) 推荐(0) 编辑
摘要:本节包括: spring5的新特性 springboot和springcloud的优势 基本打jar包以及运行 不使用parent引入spring依赖 spring 5.x支持Java8+、kotlin语言;支持webflux异步编程模式;去掉了一些支持,例如velocity模板引擎。 spring 阅读全文
posted @ 2021-11-16 00:13 Awecoder 阅读(55) 评论(0) 推荐(0) 编辑
摘要:SpringBoot自动配置原理 本节主要分析: 核心注解SpringBootApplication注解 EnableAutoConfiguration自动配置的源码分析 1 SpringBootApplication注解 @SpringBootApplication,标识某个类上说明这个类是 Sp 阅读全文
posted @ 2021-10-21 07:44 Awecoder 阅读(631) 评论(0) 推荐(2) 编辑
摘要:HikariCP连接池是高性能的JDBC连接池,官网标注的三大特点:快速、简单、可靠,性能优于其他连接池。 官网详细地说明了HikariCP所做的一些优化,总结如下: 字节码精简:优化代码,直到编译后的字节码最少(展平继承层次结构,掩饰成员变量,消除强制类型转换),这样,CPU缓存可以加载更多的程序 阅读全文
posted @ 2020-12-26 11:46 Awecoder 阅读(2229) 评论(0) 推荐(0) 编辑
摘要:数据库连接是有限的、昂贵的资源,一个数据库连接对象对应一个物理数据库的连接,如果每次数据库操作都创建新的连接,使用完后释放,会导致系统性能低下,这就引出了连接池的概念。 连接池的必要性 数据库连接池是负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,可以视作一个存放数据库连 阅读全文
posted @ 2020-12-26 11:42 Awecoder 阅读(6100) 评论(0) 推荐(0) 编辑
摘要:1 多环境部署 在实际软件开发和部署过程中,我们的软件往往需要在不同的运行环境中运行。例如,各个环境数据库地址不同,需要单独配置。spring高级装备中提供profile,来支持多环境部署。 1.1 使用spring profile机制实现 application.yaml作为主配置文件,配置主要属 阅读全文
posted @ 2020-11-08 19:07 Awecoder 阅读(220) 评论(0) 推荐(0) 编辑