架构篇(spring、springMVC、springBoot、myBatis)

spring中的bean是线程安全的吗?

不是线程安全的。若bean中有可以修改的成员变量,是要考虑线程安全问题的。若bean中没有可修改的成员变量(无状态bean),是不需要考虑线程安全问题的。

说一下spring?

spring是一个轻量级框架,主要分为IOC、AOP。IOC是spring提供帮助我们管理对象的,包含对象的整个生命周期。我们把创建对象的权利交给spring的IOC,当我们需要使用某个对象的时候,注入即可(控制反转)。AOP是面向切面编程,主要用来给主业务添加增强方法。比如记录日志、开启事务等。AOP底层是基于接口动态代理技术和基于父类动态代理技术。

spring事务的失效场景?

自己捕获了异常(try),并且没有抛出新异常。

抛出检查异常。(io异常)    解决配置rollbackFor属性。

非public方法导致事务失效。

数据库不支持事务。

Bean的生命周期?

spring扫描包,创建BeanDefinition;通过BeanDefinition获取bean的定义信息;调用构造函数实例化Bean;Bean的依赖注入(属性注入);处理各种Aware接口;Bean的前置处理器;Bean的初始化方法;Bean的后置处理器;Bean的销毁。

spring解决循环依赖?

循环依赖:beanA中注入了b,beanB中注入了a。a中有b,b中有a。

一级缓存:经历过完整生命周期的Bean

二级缓存:未经历完整生命周期的Bean

三级缓存:Bean工厂,创建bean对象

当A创建,会先执行其构造方法创建Abean,然后依赖注入B;Bean还没有创建,这时把A放入一级缓存,开始创建Bbean。执行B的构造方法创建Bbena,需要依赖注入A,从一级缓存获取A,注入B的bean中。B就可以正常初始化了,B被放入一级缓存。再去执行A,A把B注入。这样就解决循环依赖了。

三级缓存主要解决有代理对象循环依赖的,会在执行构造方法前执行,并把Bean工厂放入三级缓存,需要注入当前对象,需要在三级缓存中获取。

构造函数出现循环依赖,可以使用@Lazy解决(懒加载)。

springMVC执行流程?

前端发送请求给前端控制器(DispatcherServlet),根据路径再处理器映射器查询handler,处理器适配器执行具体的handler(controller中具体方法),返回ModelAndView。视图解析器进行解析,图像渲染。

springBoot自动装配原理?

在springBoot的启动类上有@SpringBootApplication注解。

@SpringBootApplication可以分为:@ComponentScan(扫描包)@SpringBootConfiguration(配置)@EnableAutoConfiguration(自动装配的核心类)

@EnableAutoConfiguration是import进来的,在其下面封装好了很多bean。会根据是否有指定的类,才会进行加载。

mybatis执行流程?

根据mybatis-config.xml获取数据库环境信息;创建会话工厂(sqlSessonFactory);创建会话(sqlSession);根据会话中的Executor执行sql,包括java类型转数据库类型,数据库类型转java类型。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/34177.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

优先级队列模拟实现

目录 1.堆的概念 2.堆性质堆中的某个元素小于或大于他的左右孩子 3.小根堆实例 4.堆创建 4.1调整思路 4.2向下调整思路 4.3代码实现(大根堆) 5.堆的删除 6.堆的插入 7.常用接口 7.1PriorityQueue和PriorityBlockingQueue 1.堆的概念 如果有一…

湖南省物联网挑战赛教学平台使用说明文档

1物联网教学平台硬件连接 1.1硬件介绍 1)物联网教学平台实验箱 2)物联网硬件平台 3)无线传感器节点 4)智能烧录平台 1.2连线 注:智能烧录平台上的USB接口必须与物联网硬件平台“开关”那一面最右侧USB接口连接 1.3修…

[Angew]:调整单原子 Pt1/CeO2催化剂中铂的局部环境以实现稳定的低温 CO 氧化

通过热冲击合成调整孤立 Pt2+的局部环境,开发出一种用于 CO 氧化的高活性和坚固的单原子 Pt1/CeO2催化剂(见图)。惰性气氛中的超快冲击波在非对称 Pt1O4结构中产生 Pt 单原子,从而大大增强了低温活性,并且在氧化条件下仍能保持活性。 摘要:通过原子捕获(AT,800C空气中…

Electron 整理文档

Electron 简介 Electron 是一个使用 JavaScript、 HTML 和 CSS 构建桌面应用程序的框架。通过将 Chromium 和 Node.js 嵌入到它的二进制文件中,Electron 允许你维护一个 JavaScript 代码库,并创建可以在 Windows、 macOS 和 Linux 上运行的跨平台应用程序…

Fastly的新API有望提高ChatGPT的可访问性

该公司报告称,Fastly AI在其 Edge Cloud Platform 上运行并利用语义缓存,加快了 AI 聊天机器人的访问时间,促进了代码生成和调试等开发人员服务。 该公司暗示,它可能会通过扩展这一专门的 API 来拓宽其 AI 战略,以便未…

ONLYOFFICE 桌面编辑器 8.1 发布:全新 PDF 编辑器、幻灯片版式、增强 RTL 支持及更多本地化选项

目录 什么是ONLYOFFICE? ONLYOFFICE 主要特点包括: 官网信息: 1. 功能齐全的 PDF 编辑器 1.1 编辑 PDF 文本 1.2 插入和修改对象 1.3 创建和填写表单 2. 幻灯片版式功能 2.1 快速应用幻灯片版式 2.2 动画窗格的改进 3. 文档编辑、…

同元软控智能电动汽车数字化解决方案亮相CICV 2024

2024年6月18日-20日,由中国汽车工程学会、国家智能网联汽车创新中心、清华大学车辆与运载学院、清华大学智能绿色车辆与交通全国重点实验室举办的第十一届国际智能网联汽车技术年会(CICV 2024)在北京召开。苏州同元软控信息技术有限公司&…

冻干食品市场飙升至新高度,预计到 2030 年将达到 717 亿美元

冻干食品市场,近年来经历了显著增长,2021 年价值 372 亿美元,预计到 2030 年将达到 717 亿美元。 从2022年到2030年,这一强劲的扩张是由7.7%的复合年增长率推动的,这是由于多种因素造成的,包括食品加工行…

营销复盘秘籍,6步法让你的活动效果翻倍

在营销的世界中,每一次活动都是一次探险,而复盘就是探险后的宝藏图,指引我们发现问题、提炼经验、优化策略。 想要学习如何复盘,只要了解以下复盘六大步骤,即可不断总结,逐渐走向卓越。 第一步&#xff1…

超级内卷时代,这样做,刻不容缓

分享一个月入十万的赚钱项目 别再抱怨手上项目不好做,生意不好做了,这只是个开始,长远来看,2024应该是未来几年中经济环境最好的一年,我们所有人都已经进入到“超级内卷”时代! 随着竞争环境越来越激烈&…

clickhouse分页使用mybatis-plus

需求:使用clickhouse时需要用到分页。 解决办法:mybatis-plus3.X已经支持ClickHouse数据库,只需正确配置其他用法跟用mysql一样。 (注:使用3.2.0版本并不支持clickhouse,需要更高版本) 参考博客:https://blog.csdn.net…

斯坦福大学 AI 研究部门推出的“7 周人工智能学习计划”

①AI Python 基础,包括计算机原理、语法、判断语句等; ②AI Python 进阶,涉及 Linux 命令、多任务编程等; ③机器学习,涵盖算法、数据结构等; ④计算机视觉与图像处理,包含图像分类、目标检测…

软件工程体系概念

软件工程 软件工程是应用计算机科学、数学及 管理科学等原理开发软件的工程。它借鉴 传统工程的原则、方法,以提高质量,降 低成本为目的。 一、软件生命周期 二、软件开发模型 1.传统模型 瀑布模型、V模型、W模型、X 模型、H 模型 (1)瀑布模型 瀑布…

我原以为政务类网站不追求漂亮,打脸啦,漂亮得颠覆你认知。

我原本以为政务类网站一定时沉稳、工整、信息量大的,这些和漂流都关联不上,直到最近看了一些网站,发现我的认识狭隘了。 政务类网站的设计风格通常需要注重以下几个方面: 稳重和专业感: 政务类网站需要给人以稳重、正…

【JavaScript】typeof返回值

typeof 用于返回数据类型,共六种返回值: 1.number, 2.string, 3.boolean, 4.object(object, array, null的返回值都为object), 5.function, 6.undefined。 let a hello let b [1, 2, 3] console.log(typeof NaN)//number console.log(typeof (NaN))//…

如何备份和恢复 Docker Desktop 数据

如何备份和恢复 Docker Desktop 数据 在使用 Docker Desktop 进行开发和部署时,备份和恢复 Docker 数据是非常重要的。本文将详细介绍如何在 Docker Desktop 中备份和恢复数据,确保您的容器和相关数据在任何情况下都能得到保护。 为什么需要备份和恢复…

如何检查 Kubernetes 网络配置

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。 简介 Kubernetes 是一个容器编排系统,可以管理集群中的容器化应用程序。在集群中保持所有容器之间的网络连接需要一些高级网…

iptables(7)扩展模块state

简介 前面文章我们已经介绍了一些扩展模块,如iprange、string、time、connlimit、limit,还有扩展匹配条件如--tcp-flags、icmp。这篇文章我们介绍state扩展模块 state 在 iptables 的上下文中,--state 选项并不是直接关联于一个扩展模块,而是与 iptables 的 state 匹配机制…

长尾问题定义及如何解决长尾分布问题

目录 长尾问题定义主要挑战解决方法应用场景结论 长尾问题 定义 长尾问题(Long Tail Problem)是指在某些数据分布中,少数类别(或事件)出现的频率非常高,而多数类别(或事件)出现的频…