JAVA八股——框架篇 目录一、spring1.Spring框架中的单例bean是线程安全的吗?2.什么是AOP3.spring中的事务是怎么实现的4.spring中事务失效的场景5.spring的bean的生命周期​编辑6.spring的循环依赖二、springMVC1.springMVC的执行流程三、springboot1.Springboot自动配置原理四、spring、spring MVC、springBoot的常用注解五、mybatis1.mybatis的执行流程2.Mybatis是否支持延迟加载3.Mybatis的一级、二级缓存一、spring1.Spring框架中的单例bean是线程安全的吗?这里面的count是可修改的是不安全。像userService是无状态不可修改是安全的2.什么是AOPAOP称为面向切面编程用于将那些与业务无关但却对多个对象产生影响的公共行为和逻辑抽取并封装为一个可重用的模块这个模块被命名为“切面”(Aspect)减少系统中的重复代码降低了模块间的耦合度同时提高了系统的可维护性。3.spring中的事务是怎么实现的编程式事务在代码中写事务和生成式事务Transactional4.spring中事务失效的场景trycatch失效可以在catch里抛出异常抛出检查异常可以在Transactional里加入配置(rollbackForException.class)只要是异常都回滚非public导致失效加事务的方法必须用public5.spring的bean的生命周期6.spring的循环依赖spring用三级缓存解决循环依赖但是三级缓存能够解决初始化过程中的循环依赖不能解决构造函数产生的循环依赖可以在形参里Lazy注解延迟加载一级缓存单例池缓存已经经历了完整的生命周期已经初始化完成的bean对象二级缓存缓存早期的bean对象(生命周期还没走完)三级缓存缓存的是ObjectFactory表示对象工厂用来创建某个对象的二、springMVC1.springMVC的执行流程请求到servlet里servlet调用handlermapping先去查看有没有拦截器然后调用handlerAdapter去返回视图JSP版本、返回json数据接口开发版本视图版本JSP接口开发版本三、springboot1.Springboot自动配置原理四、spring、spring MVC、springBoot的常用注解五、mybatis1.mybatis的执行流程2.Mybatis是否支持延迟加载3.Mybatis的一级、二级缓存