2-SSM框架篇-1

简介: 本文详解Spring核心概念:IOC(控制反转)与DI(依赖注入),介绍三种DI方式(构造器、Setter、接口注入),五种Bean作用域(singleton、prototype等),单例Bean线程安全性分析,以及byName、byType等自动装配方式。(239字)

01-什么是Spring IOC 和DI ?

IOC : 控制翻转 , 它把传统上由程序代码直接操控的对象的调用权交给容 器,通过容器来实现对象组件的装配和管理。所谓的“控制反转”概念就是对组件对象控制权的转 移,从程序代码本身转移到了外部容器。

DI : 依赖注入,在我们创建对象的过程中,把对象依赖的属性注入到我们的类中。

02-有哪些不同类型的依赖注入实现方式?

依赖注入分为接口注入,Setter方 法注入和构造器注入

构造器依赖注入:构造器依赖注入通过容器触发一个类的构造器来实现的,该类有一系列参数,每 个参数代表一个对其他类的依赖。

Setter方法注入:Setter方法注入是容器通过调用无参构造器或无参static工厂 方法实例化bean之 后,调用该bean的setter方法,即实现了基于setter的依赖注入。

03- Spring支持的几种bean的作用域 Scope

Spring框架支持以下五种bean的作用域:

singleton : bean在每个Spring ioc 容器中只有一个实例。

prototype:一个bean的定义可以有多个实例。

request:每次http请求都会创建一个bean,该作用域仅在基于web的Spring ApplicationContext情形下有效。

session:在一个HTTP Session中,一个bean定义对应一个实例。该作用域仅在基于web的 Spring ApplicationContext情形下有效。

global-session:在一个全局的HTTP Session中,一个bean定义对应一个实例。该作用域仅在基 于web的Spring ApplicationContext情形下有效。

04- Spring框架中的单例bean是线程安全的吗?

不是,Spring框架中的单例bean不是线程安全的 , spring 中的 bean 默认是单例模式,spring 框架并没有对单例 bean 进行多线程的封装处理。

但是我们一般在使用单例Bean的时候, 不会设置共享数据, 所以也就不会存在线程安全问题 ! 从这个角度讲单例bean也是线程安全的

05- spring 自动装配 bean 有哪些方式?

在Spring框架xml配置中共有5种自动装配:

  • byName:通过bean的名称进行自动装配,如果一个bean的 property 与另一bean 的name 相 同,就进行自动装配。
  • byType:通过参数的数据类型进行自动装配。
  • constructor:利用构造函数进行装配,并且构造函数的参数通过byType进行装配。
目录
相关文章
|
3月前
|
SQL JSON Java
2-SSM框架篇-3
本文详解SpringMVC核心机制:含11步标准执行流程、常用注解(@RequestMapping、@RequestBody等)及MyBatis关键知识点——#{}与${}区别、主键获取方式、字段名不一致的3种解决方案,助力Java Web开发深入理解与高效实践。(239字)
169 2
|
NoSQL Java Linux
Linux C++ 后台开发:进BAT的学习路线
C++相较于其他编程语言而言,学习门槛略高,主因在于其学习路径不够明确,缺乏像Java那样丰富的学习资源。然而,在众多大型企业中,如腾讯、百度、阿里云、网易和华为等,C++岗位的需求量与Java相仿。以下是我个人的C++与Linux后端学习路线和阅读方法的分享,希望能为大家提供一些参考。
547 3
Linux C++ 后台开发:进BAT的学习路线
|
SQL 算法 前端开发
技术分享-动态脱敏
数据脱敏(Data Masking),又称数据混淆、数据漂白、数据去隐私化。用虚假的数据掩饰真实数据,以达到防止数据泄漏的目的。
1192 21
|
3月前
|
存储 缓存 NoSQL
4-Redis篇-1
本文详解Redis在项目中的三大应用:热点缓存、业务数据存储(如验证码、排行榜)及分布式锁;涵盖5种基础数据类型、RDB/AOF双持久化机制、惰性+定期混合过期策略,以及8种内存淘汰策略。
196 19
|
2月前
|
传感器 数据采集 物联网
别再瞎选了!LoRa、Wi-Fi、蓝牙3种无线技术选型指南,看完再也不踩坑
LoRa、Wi-Fi、蓝牙看起来都能无线传输,实际用起来天差地别,选错了轻则项目延期,重则直接推倒重来。今天就用最通俗易懂的方式讲清三者的核心差异,帮你一次性搞懂不同场景该怎么选。
|
3月前
|
SQL XML Java
2-SSM框架篇-4
本文详解MyBatis多表查询(关联/集合映射)、动态SQL(9种标签及OGNL执行原理)、延迟加载(association/collection支持)、批量插入(foreach用法)及主键返回机制,涵盖核心开发实践要点。(239字)
192 2
|
3月前
|
SQL Java 数据库连接
2-SSM框架篇-2
Spring事务基于AOP与数据库事务实现:通过代理拦截@Transactional方法,控制连接自动提交、异常回滚及传播行为;事务失效常见于非代理调用、private方法或异常被捕获;支持7种传播机制;AOP则用于解耦横切关注点(如日志、权限)。
146 2
|
3月前
|
存储 前端开发 Java
1-Java基础篇-6
本文详解JVM核心机制:运行时数据区(程序计数器、虚拟机栈、本地方法栈、堆、方法区)、堆栈区别、类加载器体系(启动/扩展/系统/自定义)及双亲委派模型,并介绍Java 8新特性(Stream流常用操作filter/map/sorted等、Lambda、Optional等)。
138 1
|
3月前
|
缓存 Java 数据库连接
2-SSM框架篇-5
MyBatis缓存分两级:一级缓存基于SqlSession,默认开启;二级缓存基于Mapper Namespace,需手动启用——配置`cacheEnabled=true`并添加`<cache>`标签。可设置淘汰策略、刷新间隔等参数,提升查询性能。(239字)
121 0
|
11月前
|
JSON 供应链 API
1688 电商 API 接口,供应商信息查询便捷通道
1688电商API接口为企业提供高效查询供应商信息的解决方案,支持自动化获取公司名称、联系方式、信用评级等核心数据,并具备批量处理与精准筛选功能,提升供应链管理效率。