2020-09-09知识点总结

6请解释 Spring Bean 的生命周期?

实例化
初始 init
接收请求 service
销毁 destroy

7、解释 Spring 支持的几种 bean 的作用域。

Spring 容器中的 bean 可以分为 5 个范围:

(1)singleton:默认,每个容器中只有一个 bean 的实例,单例的模式。
(2)prototype:为每一个 bean 请求提供一个实例。
(3)request:为每一个网络请求创建一个实例
(4)session:与 request 范围类似,确保每个 session 中有一个 bean 的实例。
(5)global-session:全局作用域

8、使用注解之前要开启自动扫描功能

@Scope 注解 作用域
@Lazy(true) 表示延迟初始化
@Service 用于标注业务层组件、
@Controller 用于标注控制层组件(如 struts 中的 action)
@Repository 用于标注数据访问组件,即 DAO 组件。
@Component 泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注。
@Scope 用于指定 scope 作用域的(用在类上)

9、Spring 框架中的单例 Beans 是线程安全的么?

Spring 框架并没有对单例 bean 进行任何多线程的封装处理。关于单例 bean 的线程安全和并发问题需要开发者自行去搞定。但实际上,大部分的 Spring bean 并没有可变的状态,所以在某种程度上说 Spring 的单例 bean 是线 程安全的。

10、Spring 如何处理线程并发问题?

在一般情况下,只有无状态的 Bean 才可以在多线程环境下共享,在 Spring 中,绝 大部分 Bean 都可以声明为 singleton 作用域,因为 Spring 对一些 Bean 中非线程安全状 态采用 ThreadLocal 进行处理,解决线程安全问题。

11、 Spring 基于 xml 注入 bean 的几种方式
Set 方法注入;
构造器注入:
静态工厂注入
实例工厂

12、Spring 的自动装配:

在 Spring 框架 xml 配置中共有 5 种自动装配:
(1)No
(2)byName
(3)byType
(4)Constructor
(5)Autodetect

13、@Autowired 和@Resource 之间的区别

(1)@Autowired 默认是按照类型装配注入的
(2)@Resource 默认是按照名称来装配注入的

14、 Spring 框架中都用到了哪些设计模式?

(1)工厂模式
(2)单例模式
(3)代理模式
(4)模板方法
(5)观察者模式

15、 Spring 事务的实现方式和实现原理

Spring 事务的本质其实就是数据库对事务的支持,没有数据库的事务支持,spring 是无法提供事务功能的。真正的数据库层的事务提交和回滚是通过 binlog 或者 redo log 实现的。

16、 Spring 框架中有哪些不同类型的事件?

(1)上下文更新事件(ContextRefreshedEvent):在调用 ConfigurableApplicationContext 接口中的 refresh()方法时被触发。
(2)上下文开始事件(ContextStartedEvent):当容器调用 ConfigurableApplicationContext 的 Start()方法开始/重新开始容器时触发该事件。
(3)上下文停止事件(ContextStoppedEvent):当容器调用 ConfigurableApplicationContext 的 Stop()方法停止容器时触发该事件。
(4)上下文关闭事件(ContextClosedEvent):当 ApplicationContext 被关闭 时触发该事件。容器被关闭时,其管理的所有单例 Bean 都被销毁
(5)请求处理事件(RequestHandledEvent):在 Web 应用中,当一个 http 请 求(request)结束触发该事件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值