洞察企业如何通过FinClip提升跨平台小程序加载效率,适应多样化市场需求
734
2022-11-18
spring 经典的高频面试题
文章目录
1.使用spring框架能给我们带来的好处
2.BeanFactory和ApplicationContext区别
2.1.ApplicationContext是BeanFactory子接口2.2.ApplicationContext提供IOC容器中的Bean监控2.2.ApplicationContext支持国际化i18n2.3.ApplicationContext拓展了统一资源文件读取方式URL
3.Spring Bean的生命周期4.Spring Bean各作用域的区别
4.1.singleton4.2.prototype4.3.request4.4.session4.5.global-session
5.Spring的Bean是线程安全的吗?6.Spring中用到了哪些设计模式?7.Spring是如何处理循环依赖的?8.Service层如何获得ApplicationContext9.如何理解上下文
1.使用spring框架能给我们带来的好处
1.1.简化开发
1.简化程序员的开发,简化业务开发
1.2.DI 依赖关系,一目了然
能够从配置文件,可以看出对象与对象的依赖关系,一目了然
1.3.IOC
1.在有限的内存,有限的资源情况下,能够管理好Bean;2.分阶段,分层次帮忙管理
1.4.万能胶
1.能够兼容成熟的框架: Hibernate、MyBatis、Quartz[定时器]、Timer[JDK的]、Shiro、Spring Data,redis,MongoDB等等
1.5.模块化设计
1.即插即用,按需分配,需要啥用啥
1.6.自带测试组件:JUnit,Spring Test
1.7.Spring Web MVC
1.之前的Struts等有过度设计的嫌疑;2.Spring MVC 完整分离了Servlet和普通Bean
如:
@GetMapping("/preview.json") @ResponseBody public Flux
没有必要一定是HttpServletRequest 和 HttpServletResponse
如下面:
@GetMapping(value="/getByName.json") @ResponseBody public Mono
2.BeanFactory和ApplicationContext区别
2.1.ApplicationContext是BeanFactory子接口
2.2.ApplicationContext提供IOC容器中的Bean监控
1.这里的监控主要是指Bean的生命周期:Bean创建 销毁等等;
下面的了解即可 PostProcessor机制 Aware 举例
|所有bean被销毁的时候触发 RequestHandleredEvent web容器请求结束的时候触发
2.2.ApplicationContext支持国际化i18n
2.3.ApplicationContext拓展了统一资源文件读取方式URL
1.这里的Url 可以是一个本地URL,也可以是一个网络URL2.三种形式: ClassPathXmlApplicationContext:处理本地classpath下面的所有的配置文件的IOS容器 FileSystemXmlApplicationContext:处理文件系统在其他磁盘下的Url XmlWebApplicationContext:加载网络文件的配置信息3.另外AnnotationConfigApplicationContext:加载注解
3.Spring Bean的生命周期
1、初始化的时候回调调用:InitializingBean和DisposableBean用来回调2、Aware接口3、init() destory()4、@PostContruct 和 @PreDestory注解方式
4.Spring Bean各作用域的区别
1.总共5个范围:对象什么时候创建,什么时候销毁
4.1.singleton
1.我从容器启动就从石头缝里蹦出来,直到Spring的世界末日才灭亡
4.2.prototype
1.什么时候用,什么出生,用完就死了
4.3.request
1.request出生的时候就出生,request销毁的时候就销毁(request)2.这个属于web层3.用户发起请求的时候就有了,用户拿到结果的时候就销毁了4.对于单一的请求,你可以认为是单例,但是对于spring请求中,每个又不一样,可以认为是多例;
4.4.session
1.session出生的时候就出生,session销毁的时候就销毁(session)
4.5.global-session
1.可以理解为上下文Context;一个全局的web容器
总结:5中作用域的长短[用时间长短去比较]
100岁:singleton80岁:global-session Context20岁:session10岁:request1岁: prototype
5.Spring的Bean是线程安全的吗?
1.Spring Bean 由IOC容器来创建;2.创建的对象时用我们开发人员自己写的3.定义 BeanDefinition BeanWarpper instance Class.newInstance(); new Object();4.Map
6.Spring中用到了哪些设计模式?
7.Spring是如何处理循环依赖的?
class A 依赖,class B,Class B 依赖Class A;
用缓存机制来解决循环依赖的问题 BeanWrapper
A在加载的时候,发现B还没有实例化,会缓存在BeanWrapper中,等有了之后
8.Service层如何获得ApplicationContext
推荐接口ApplicationContextAware
实现即可
9.如何理解上下文
作用域问题 所处的运行环境; Tomcat
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~