spring的ioc和aop是什么 Spring的IOC和AOP解释
spring的ioc和aop是什么
今天为网友们详解spring的ioc和aop是什么的相关话题,下面来一起了解一下吧。
Spirng 的 IOC 和 AOP 几乎是面试官必问的一个问题,但是很多只是会从 Spring 中拿取对象,关于 Spring 的核心两个部分却不能够完整地去介绍,本篇文章将用图文的结合方式,全方位去分析 IOC 和 AOP。

题目
Spring 的 IOC 和 AOP
推荐解析
IOC 是什么?
IoC(Inversion of Control) 控制反转,是一种常见的设计思想,主要就是将手动创建对象的控制权,交给 Spring 框架来管理。
为什么需要存在一个容器?
解耦,将对象之间的相互依赖的关系交给 IOC 容器管理,并让容器完成对象注入,开发者不需要知道一个 Service 依赖的其他类,只需要从容器中拿取即可。
Spring Bean
Bean:被 IOC 容器所管理的对象俗称 Bean。
Bean 可以通过 XML、注解、配置类进行定义。
一般采用注解,如下
- @Component:通用注解
- @Repository:持久层 DAO 层
- @Service:服务层 Service
- @Controller:Spring MVC 控制层
怎么注入 Bean?
通常采用注解
- @AutoWired 按类型装配,结合 @Qualifier 可以按名称装配。
- @Resource 按名称装配
- @Inject 按类型进行装配
Bean 的作用域
- Singleton:Spring 中的 Bean 默认都是单例的,是对单例设计模式的应用,有线程安全问题。
- Prototype:每次获取都会创建一个新的 Bean 实例。没有线程安全问题。
- Request:(仅 Web 应用可用): 每一次 HTTP 请求都会产生一个新的 Bean(请求 Bean),该 Bean 仅在当前 HTTP request 内有效。
- Session:(仅 Web 应用可用) : 每一次来自新 session 的 HTTP 请求都会产生一个新的 Bean(会话 Bean),该 Bean 仅在当前 HTTP session 内有效。
- Application:(仅 Web 应用可用):每个 Web 应用在启动时创建一个 Bean(应用 Bean),该 Bean 仅在当前应用启动时间内有效。
- Websocket:(仅 Web 应用可用):每一次 WebSocket 会话产生一个新的 Bean。
Bean 的生命周期
(1)通过构造器创建 Bean 实例(无参数构造)
(2)为 Bean 的属性设置值和对其他 Bean 引用(调用 set 方法)
(3)把 Bean 实例传递 Bean 后置处理器的方法postProcessBeforeInitialization
(4)调用 Bean 的初始化的方法(需要进行配置初始化的方法)
相关阅读
-
分布式架构下 Session共享有什么方案
一篇关于分布式架构下的话题,接下来一起来看看吧。 采用无状态服务,抛弃session 存入cookie(有安全风险) 服务器之间进行 Session 同步,这样可以保证每个服务器上都有全部的 Session 信息,
-
Redis的数据过期策略是什么
本文为您带来的是Redis的数据过期策略是什么IT技巧方面的经验,接下来IT袋网小编为大家介绍。 Redis使用数据过期策略来自动删除已经过期的数据,以释放内存空间并确保数据的新鲜性。 Red
-
什么是虚拟线程? 虚拟线程的概念与解析
关于这个什么是虚拟线程的相关话题,接下来小编为网友介绍。 与平台线程一样,虚拟线程也是 java.lang.Thread 的一个实例对象。但是,虚拟线程并不依赖于特定的操作系统线程。 虚拟线程底层
-
DNS协议在哪一层 dns服务器工作在哪一层
dns服务器工作在哪一层()。 A.传输层 B.网络层 C.数据链路层 D.应用层 正确答案 : D.应用层 此题解析: DNS协议均位于OSI或TCP/IP参考模型的应用层。 DNS域名系统主要负责记录互联网中主机名和该


