Java框架

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

      评论
      成就一亿技术人!
      拼手气红包6.0元
      还能输入1000个字符
       
      红包 添加红包
      表情包 插入表情
       条评论被折叠 查看
      添加红包

      请填写红包祝福语或标题

      红包个数最小为10个

      红包金额最低5元

      当前余额3.43前往充值 >
      需支付:10.00
      成就一亿技术人!
      领取后你会自动成为博主和红包主的粉丝 规则
      hope_wisdom
      发出的红包
      实付
      使用余额支付
      点击重新获取
      扫码支付
      钱包余额 0

      抵扣说明:

      1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
      2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

      余额充值