1、Spring
Spring Framework 它是很多模块的集合。
spring-core:Spring 框架基本的核心工具类。主要提供 IoC 依赖注入功能的支持。
为什么叫控制反转?基于Java反射机制。
控制:指的是对象创建(实例化、管理)的权力
反转:控制权交给外部环境(Spring 框架、IoC 容器)
spring-beans:提供对 bean 的创建、配置和管理等功能的支持。
注入bean的三种方式: 构造函数、get set、@Autowired
bean的作用域有:
singleton : IoC 容器中只有唯一的 bean 实例。Spring 中的 bean 默认都是单例的,是对单例设计模式的应用。
prototype: 每次获取都会创建一个新的 bean 实例。request、session、websocket
bean线程安全 有状态不安全 无状态安全 取决于成员变量是否可变,如对象里有List<其他对象>
避免线程不安全的方法:尽量设计 Bean 为无状态。 将可变成员变量保存在 ThreadLocal 中,确保线程独立。
bean生命周期:
创建 Bean 的实例----Bean 属性赋值/填充-----Bean 初始化------销毁 Bean
spring-secuity:权限控制
spring-context:提供对国际化、事件传播、资源加载等功能的支持。
spring-aop:提供了面向切面的编程实现。基于动态代理。@Order 注解直接定义切面顺序
spring-jdbc:提供了对数据库访问的抽象 JDBC。不同的数据库都有自己独立的 API 用于操作数据库,而 Java 程序只需要和 JDBC API 交互,这样就屏蔽了数据库的影响。
spring-tx:提供对事务的支持。
spring-orm:提供对 Hibernate、JPA、iBatis 等 ORM 框架的支持。
spring-web:对 Web 功能的实现提供一些最基础的支持。
spring-webmvc:提供对 Spring MVC 的实现。
spring-websocket:提供了对 WebSocket 的支持,WebSocket 可以让客户端和服务端进行双向通信。
Spring MVC 是 Spring 中的一个很重要的模块
主要赋予 Spring 快速构建 MVC 架构的 Web 程序的能力。MVC 是模型(Model)、视图(View)、控制器(Controller)的简写,其核心思想是通过将业务逻辑、数据、显示分离来组织代码。
核心组件有:DispatcherServlet HandlerMapping HandlerAdapter Handler ViewResolver
统一异常处理:@ControllerAdvice + @ExceptionHandler
设计模式:
单例模式:springbean都是单例的
工厂模式:BeanFactory创建bean对象
代理模式:aop
模板模式:以 Template 结尾的对数据库操作的。
Spring 的三级缓存:
一级是singletonObjects单例池 二级是earlySingletonObjects 存放三级产生的半成品对象 未赋值的bean 三级是singletonFactories
Spring事务:
编程式事务 硬编码
声明式事务@Transactional注解到方法上
默认事务传播行为 是如果当前存在事务,则加入该事务;如果当前没有事务,则创建一个新的事务。 默认使用数据库的隔离级别。
失效的情况
非public 同一类内部调用 捕获了异常
2、Spring-Boot
核心注解:
@SpringBootApplication=@EnableAutoConfiguration(启用自动配置)+@ComponentScan(扫描注解的bean)+@Configuration(扫描其余的bean)
@EnableAutoConfiguration:实现自动装配的核心注解,自动装配核心功能的实现实际是通过 AutoConfigurationImportSelector类。
3、Mybatis
动态标签:<resultMap>、 <parameterMap>、 <sql>、 <include>、 <selectKey> ,加上动态 sql 的 9 个标签, trim|where|set|foreach|if|choose|when|otherwise|bind 等,其中 <sql> 为 sql 片段标签,通过 <include> 标签引入 sql 片段, <selectKey> 为不支持自增的主键生成策略标签。
批处理:使用 BatchExecutor 完成批处理。
一级缓存:sqlSession 级别 默认 二级缓存:mapper级别 可以在mybatis-config.xml开启
Hibernate 缓存:一级Session级别 默认 二级SessionFactory
MyBatis Plus 提供了通用的 Mapper 接口 BaseMapper,只需继承这个接口就可以获得常见的 CRUD 方法,无需额外编写 SQL。
MyBatis Plus 提供了更加简洁的 API 来构建查询条件,比如 QueryWrapper 或者 LambdaQueryWrapper,减少了硬编码字段名的风险。
MyBatis Plus 包含了诸如代码生成器、分页插件、条件构造器等特性,这些可以极大地减少重复代码的工作量。
4、Spring-Cloud
服务注册与发现: Eureka、Consul 和 Nacos、ZooKeeper
配置中心:Spring Cloud Config
网关:Spring Cloud Gateway 、Zuul
通信:Feign
熔断器:Hystrix
负载均衡:Ribbon
分布式事务解决方案,seata

被折叠的 条评论
为什么被折叠?



