spring基础

简介: 本文介绍了 Spring 与 SpringMVC 常用注解、RESTful 风格、IOC/DI 原理、Bean 作用域、自动装配流程及事务失效场景,帮助开发者深入理解 Spring 框架核心机制与常见问题。

spring常见注解和springmvc常见注解

springmvc: Spring 生态中专门处理 Web 层交互的框架

spring:@Component、@Autowired、@Configuration、@Aspect

springmvc:@RequestMapping、@GetMapping、@PathVariable

什么是restful风格

Restful 就像给接口定了一套 “通用语言”—— 用 URL 表示 “资源在哪里”,用 HTTP 方法表示 “要做什么操作”,用状态码表示 “操作结果”。

IOC DI

IOC DI
ioc控制反转,原来对象的创建由调用者自己实现,现在统一交给容器管理,加入到容器中,由容器进行创建通过使用常用注解 restcontroller(responese +controller)  service  mapper   comment等注解,进行加入容器
di依赖注入,由容器统一创建实例
通过使用Autowired  和resouce等注解进行注入
注入方式:三种(详解)
1.构造器注入
2.setter方法注入
3.接口注入

Spring 框架支持哪些 bean 的作用域(Scope)?

singleton 单例对象比如service层(单例包括懒汉 ,饿汉,双检索:加入了volatile关键字确保可见性和有序性,通过双重检查机制确保单例的唯一性);默认spring采用

prototype  原型,适合表单对象(有状态的),每次请求都会创建

request 请求 存活于当前请求中,一次请求创建一次  比如sprimgmvc

session 会话 存在于http会话期间

websocket  会话期间,作用与通信场景

application应用 作用与web应用

顺序:singleton ->prototype ->request->session->websockert->application

生命周期

bean是线程是安全的吗,为什么

自动装配的完整流程

  1. 通过compoentscan进行扫描
  2. 启动类加@SpringBootApplication,里面的@EnableAutoConfiguration开启自动配置;
  3. @EnableAutoConfiguration通过 SPI 机制,找到所有 Jar 包中META-INF/spring.factories里登记的 “自动配置类”;
  4. 每个自动配置类通过@ConditionalXXX注解判断是否需要生效(比如是否引入了对应依赖、是否已有手动配置等);
  5. 生效的自动配置类会帮你创建好对应的 Bean(比如 Tomcat、DataSource 等),放进 Spring 容器里;
  6. 你直接用@Autowired就能拿到这些 Bean,不用自己写配置。

总结:通过注解@SpringBootApplication中的@EnableAutoConfiguration扫描META-INF/spring.factories 通过@ConditionalXXX注解判断是否需要生效,最终将生效的配置类的bean加入到容器中

Spring 事务失效的常见场景有哪些?

事务,基于aop自动回滚机制基于动态代理实现的cglib(final修饰不行会创建没有接口实现类的子类进行代理)和jdk的代理(要求必须有接口实现类,实现的是接口的代理)

自己new的对象

异常未抛出,或未抛出回滚异常(runtimeexcption  error)

方法内调用方法(未通过代理对象调用),aop不会拦截内部,外部由代理对象调用,内部方法由目标对象,

非public方法(默认由cglib实现,cglib实现的是子类,非public不能被继承)

相关文章
Apache JMeter 中的 Latency 和 Load Time
Apache JMeter 中的 Latency 和 Load Time
Apache JMeter 中的 Latency 和 Load Time
|
4月前
|
存储 人工智能 运维
阿里云OPC计划全解析:一人公司Starter、Lite、Pro三档套餐详解
阿里云OPC(One Person Company,一人公司)计划是专为个人创业者打造的全周期云服务解决方案,聚焦“一人+AI”创业模式,整合AI能力与核心云产品,推出Starter、Lite、Pro三档专属套餐,覆盖想法验证、用户增长、业务规模化三大关键阶段,为一人公司提供从低成本试错到稳定运营的一站式技术支撑。该计划不仅打包了云服务器、数据库、存储等基础资源,还集成了百炼Token Plan等AI能力,搭配专属补贴与技术服务,大幅降低个人创业的技术门槛与成本压力,让一人创业者无需组建专业技术团队,即可快速搭建、部署并运营商业项目。
629 2
|
8月前
|
机器学习/深度学习 编解码 人工智能
从 Genie 2 到 Genie 3:一年间世界模型发生了什么
2024–2026年,Google DeepMind的Genie系列从2D概念验证(Genie 1)跃升至3D可交互世界(Genie 2),再进化为支持自然语言事件调控、多模态输入与分钟级记忆的Genie 3;2026年1月以Project Genie正式商用,标志世界模型迈入实用化新阶段。
751 2
|
10月前
|
人工智能
信风AI荣获苏州高新区青年创新创业大赛三等奖
11月28日,信风AI在苏州高新区青年创新创业大赛中凭借外贸拓客智能体项目荣获三等奖。该AI智能体融合人工智能与外贸实战经验,实现全球商机挖掘、多渠道精准触达、AI CRM管理及按效果付费模式,助力中小外贸企业降本增效。创始人Alex表示,信风AI致力于成为企业的智能外贸团队,推动外贸数字化变革,赋能中国智造高效出海。
|
存储 关系型数据库 MySQL
基于python+vue的商城购物系统
本文介绍了电子商务的发展背景及研究现状,分析了当前电商市场的挑战与机遇,提出了自建电商平台的优势,旨在通过创新设计与技术实现(如Python、Django、B/S架构等),构建一个高效、低成本、用户导向的电商系统,以提升企业竞争力。
|
人工智能 自然语言处理 搜索推荐
魔搭社区模型速递(4.27-5.10)
🙋魔搭ModelScope本期社区进展:📟2341个模型,206个数据集,🎨224个创新应用,📄 15篇内容
1210 20
|
缓存 算法 网络协议
IP代理技术原理深度解析:从基础架构到应用实践
IP代理是网络通信中的关键技术,通过构建中间层实现请求转发与信息过滤。其核心价值体现在身份伪装、访问控制和性能优化三个方面。文章详细解析了HTTP与SOCKS协议的工作机制,探讨了代理服务器从传统单线程到分布式集群的技术演进,并分析了在网络爬虫、跨境电商及企业安全等场景的应用。同时,面对协议识别、性能瓶颈和隐私合规等挑战,提出了多种解决方案。未来,IP代理将融合边缘计算、AI驱动优化及量子安全加密等趋势,持续发展为支撑现代互联网的重要基础设施。
1206 2
|
敏捷开发 存储 SQL
Quick BI × 宜搭:低代码敏捷开发与专业数据分析的完美融合,驱动企业数字化转型新范式
钉钉低代码平台宜搭与瓴羊QuickBI深度融合,提供前端敏捷构建+后端智能决策的解决方案。通过无缝对接的数据收集与分析、一站式数据分析及报表嵌入等功能,实现业务与数据双重赋能。
1255 3
|
监控 算法 物联网
院内导航怎么实现?解析信息化医院的智慧导航技术
智慧医院院内导航系统通过高精度电子地图、室内定位技术和路径规划算法,提升了医疗服务质量和患者就医体验。本文深入解析了院内导航技术的实现原理、应用案例及未来趋势,助力医院管理者和技术人员优化服务。文章最后可面查看详细医院院内导航解决方案
1114 2
院内导航怎么实现?解析信息化医院的智慧导航技术
|
存储 关系型数据库 MySQL
MySQL主键谁与争锋:MySQL为何钟爱自增主键ID+UUID?
本文深入探讨了在MySQL中使用自增类型主键的优势与局限性。自增主键通过保证数据的有序性和减少索引维护成本,提升了查询和插入性能,简化了数据库管理和维护,并提高了数据一致性。然而,在某些业务场景下,如跨表唯一性需求或分布式系统中,自增主键可能无法满足要求,且存在主键值易预测的安全风险。因此,选择主键类型时需综合考虑业务需求和应用场景。
698 2