网站制作及实现,wordpress 图片存储,惠州网站建设公司曾,养老院网站建设的好处文章目录 Spring篇springbean是安全的的?什么是AOP你们工作中有用过AOP吗spring中的事务是如何实现的spring中事务失效场景Spring的生命周期spring中的循坏依赖springMVC的执行流程springboot的启动原理常用注解MyBatis执行流程Mybatis是否支持延迟加载#xff1f;Mybatis的一… 文章目录 Spring篇springbean是安全的的?什么是AOP你们工作中有用过AOP吗spring中的事务是如何实现的spring中事务失效场景Spring的生命周期spring中的循坏依赖springMVC的执行流程springboot的启动原理常用注解MyBatis执行流程Mybatis是否支持延迟加载Mybatis的一级、二级缓存用过吗 Spring篇
springbean是安全的的?
不是线程安全的,他默认是单例的,如果有多个线程会并发执行该请求对应的逻辑,在处理过程中如果有对该单例状态修改,则需要考虑线程同步问题,
什么是AOP
他是面向编程的,用于与业务无关,可以抽取为公共模块,降低耦合,一般用于日志,事务
你们工作中有用过AOP吗
主要是使用AOP来记录操作日志,主要思路的使用AOP的环绕通知和切点表达式
spring中的事务是如何实现的
一种是编程式事务,另一只是声明式事务俩种方法 第一种是TransactionTemplate来实现的,对代码有侵入性第二种是通过AOP在方法前进行拦截,执行完之后是提交还是回滚
spring中事务失效场景
异常的捕获 -在catch块中添加throw new 异常(手动抛出运行时异常)抛出检查性异常 - 在Transaction属性中添加(Exception.class)不使用 public 方法
Spring的生命周期 通过BeanDefinition获取bean的定义信息调用构造函数实例化beanbean的依赖注入处理Aware接口(BeanNameAware、BeanFactoryAware、ApplicationContextAware)Bean的后置处理器BeanPostProcessor-前置初始化方法(InitializingBean、init-method)Bean的后置处理器BeanPostProcessor-后置销毁bean
spring中的循坏依赖
循环依赖其实就是A引用了B,B又引用了A一级缓存放入的完整的Bean对,二级缓存Bean的生命周期还没有走完,三级缓存:缓存的是ObjectFactory,用来创建某个对象(工厂)解决方法 先实例化A对象,同时会创建工程放入到三级缓存中,当A需要用到B的时候,B完成实例化完成时,放入到三级缓存中,B需要A的时候,通过三级缓存生产对象放入到二级缓存中,此时B创建成功后放入到一级缓存如果是构造方法出循环依赖时库使用懒在构造方法上添加Lazy
springMVC的执行流程 springboot的启动原理 SpringBootConfiguration该注解与 Configuration 注解作用相同用来声明当前也是一个配置类。 ComponentScan组件扫描默认扫描当前引导类所在包及其子包。 EnableAutoConfigurationSpringBoot实现自动化配置的核心注解。 1, 在Spring Boot项目中的引导类上有一个注解SpringBootApplication这个注解是对三个注解进行了封装分别是 SpringBootConfiguration EnableAutoConfiguration ComponentScan 2, 其中EnableAutoConfiguration是实现自动化配置的核心注解。 该注解通过Import注解导入对应的配置选择器。 内部就是读取了该项目和该项目引用的Jar包的的classpath路径下META-INF/spring.factories文件中的所配置的类的全类名。 在这些配置类中所定义的Bean会根据条件注解所指定的条件来决定是否需要将其导入到Spring容器中。 3, 条件判断会有像ConditionalOnClass这样的注解判断是否有对应的class文件如果有则加载该类把这个配置类的所有的Bean放入spring容器中使用。
常用注解 MyBatis执行流程 Mybatis是否支持延迟加载
支持,默认是关闭状态原理 使用cglib代理来实现的,他会进来拦截器invoke,如果是null时,执行sql,调用set方法.
Mybatis的一级、二级缓存用过吗
一级和二级缓存都是保存到本地,本质是一个hashmap,一级缓存的作用域是session级别的,二级缓存是namespace和mapper的作用域,不依赖于session(默认是打开一级缓存)开启二级缓存