当前位置: 首页 > news >正文

手机上如何做微电影网站西安seo服务

手机上如何做微电影网站,西安seo服务,成都网络营销推广公司哪家好,网站服务器使用目录 前言 1.Spring框架中的单例bean是线程安全的吗? 2.什么是AOP? 3.你们项目中有没有使用到AOP? 4.Spring中的事务是如何实现的? 5.Spring中事务失效的场景有哪些? 6.Spring的bean的生命周期。 7.Spring中的循环引用 8.构造方法…

目录

前言

1.Spring框架中的单例bean是线程安全的吗?

2.什么是AOP?

3.你们项目中有没有使用到AOP?

4.Spring中的事务是如何实现的?

5.Spring中事务失效的场景有哪些?

6.Spring的bean的生命周期。

7.Spring中的循环引用

8.构造方法出现了循环依赖怎么解决?

9.SpringMVC的执行流程知道嘛?

10.Springboot自动配置原理。

11.Spring 的常见注解有哪些?

12.SpringMVC常见的注解有哪些?

13.Springboot常见注解有哪些?

总结


前言

本文主要介绍了Spring面试题相关的面试题目。


1.Spring框架中的单例bean是线程安全的吗?

不是线程安全的,Spring框架中有一个@Scope注解,默认的值就是singleton,单例的。因为一般在spring的bean中都是注入无状态的对象,没有线程安全问题,如果在bean中定义了可修改的成员变量,是要考虑线程安全问题的,可以使用多例或者加锁来解决。

参考回答:不是线程安全的,当多用户同时请求一个服务时,容器会给每一个请求分配一个线程,这时多个线程会并发执行该请求对应的业务逻辑(成员方法),如果该处理逻辑中有对该单列状态的修改(体现为该单例的成员属性),则必须考虑线程同步问题。Spring框架并没有对单例bean进行任何多线程的封装处理。关于单例bean的线程安全和并发问题需要开发者自行去搞定。比如: 我们通常在项目中使用的Spring bean都是不可变的状态(比如Service类和DAO类),所以在某种程度上说Spring的单例bean是线程安全的。如果bean有多种状态的话(比如 View Model对象),就需要自行保证线程安全。最浅显的解决办法就是将多态bean的作用由“singleton”变更为“prototype”。

2.什么是AOP?

面向切面编程,用于将那些与业务无关,但却对多个对象产生影响的公共行为和逻辑,抽取公共模块复用,降低耦合。

参考回答:aop是面向切面编程,在spring中用于将那些与业务无关,但却对多个对象产生影响的公共行为和逻辑,抽取公共模块复用,降低耦合,一般可以做为公共日志保存,事务处理等。

3.你们项目中有没有使用到AOP?

记录操作日志,缓存,spring实现的事务。核心:使用aop中的环绕通知+切点表达式(找到要记录日志的方法),通过环绕通知的参数获取请求方法的参数(类、方法、注解、请求方式等),获取到这些参数以后,保存到数据库。

4.Spring中的事务是如何实现的?

其本质是通过AOP功能,对方法前后进行拦截,在执行方法之前开启事务,在执行完目标方法之后根据执行情况提交或者回滚事务。

5.Spring中事务失效的场景有哪些?

  1. 异常捕获处理,自己处理了异常,没有抛出。    解决:手动抛出。
  2. 抛出检查异常(Spring 默认只会回滚非检查异常)。    解决:配置rollbackFor属性为Exception。
  3. 非public方法导致的事务失效。    解决:改为public。

参考回答:第一个,如果方法上异常捕获处理,自己处理了异常,没有抛出,就会导致事务失效,所以一般处理了异常以后,别忘了抛出去就行了;第二个,如果方法抛出检查异常,如果报错也会导致事务失效,在 spring事务的注解上,就是@Transactional上配置rollbackFor属性为 Exception,这样别管是什么异常,都会回滚事务;第三,如果方法上不是public修饰的,也会导致事务失效。

6.Spring的bean的生命周期。

  1. 通过BeanDefinition获取bean的定义信息
  2. 调用构造函数实例化bean
  3. bean的依赖注入
  4. 处理Aware接口(BeanNameAware、BeanFactoryAware、ApplicationContextAware)
  5. Bean的后置处理器BeanPostProcessor-前置
  6. 初始化方法(InitializingBean、init-method)
  7. Bean的后置处理器BeanPostProcessor-后置
  8. 销毁bean

参考回答:首先会通过一个非常重要的类,叫做BeanDefinition获取bean的定义信息,这里面就封装了bean的所有信息,比如类的全路径、是否是延迟加载、是否是单例等等这些信息在创建bean的时候,第一步是调用构造函数实例化bean;第二步是bean的依赖注入,比如一些set方法注入,像平时开发用的 @Autowire都是这一步完成;第三步是处理Aware接口,如果某一个bean实现了Aware接口就会重写方法执行;第四步是bean的后置处理器BeanPostProcessor,这个是前置处理器;第五步是初始化方法,比如实现了接口InitializingBean或者自定义了方法 init-method标签或@PostContruct;第六步是执行了bean的后置处理器BeanPostProcessor,主要是对bean进行增强,有可能在这里产生代理对象;最后一步是销毁bean。

7.Spring中的循环引用

  • 循环依赖:循环依赖其实就是循环引用,也就是两个或两个以上的bean互相持有对方,最终形成闭环。比如A依赖于B,B依赖于A。
  • 循环依赖在spring中是允许存在,spring框架依据三级缓存已经解决了大部分的循环依赖。
  1. 一级缓存:单例池,缓存已经经历了完整的生命周期,已经初始化完成的bean对象。
  2. 二级缓存:缓存早期的bean对象(生命周期还没走完)。
  3. 三级缓存:缓存的是ObjectFactory,表示对象工厂,用来创建某个对象。

具体解决流程:

第一,先实例A对象,同时会创建ObjectFactory对象存入三级缓存singletonFactories;第二,A在初始化的时候需要B对象,这个走B的创建的逻辑;第三,B实例化完成,也会创建ObjectFactory对象存入三级缓存singletonFactories  ;第四,B需要注入A,通过三级缓存中获取ObjectFactory来生成一个A的对象,同时存入二级缓存,这个是有两种情况,一个是可能是A的普通对象,另外一个是A的代理对象,都可以让ObjectFactory来生产对应的对象,这也是三 级缓存的关键; 第五,B通过从通过二级缓存earlySingletonObjects获得到A的对象后可以正常注入,B创建成功,存入一级缓存singletonObjects ;第六,回到A对象初始化,因为B对象已经创建完成,则可以直接注入B,A创建成功存入一次缓存singletonObjects;第七,二级缓存中的临时对象A清除。

8.构造方法出现了循环依赖怎么解决?

A依赖于B,B依赖于A,注入的方式是构造函数。

原因:由于bean的生命周期中构造函数是第一个执行的,spring框架并不能解决构造函数的的依赖注入。

解决方案:使用@Lazy进行懒加载,什么时候需要对象再进行bean对象的创建。

参考回答:由于bean的生命周期中构造函数是第一个执行的,spring框架并不能解决构造函数的的依赖注入,可以使用@Lazy懒加载,什么时候需要对象再进行bean对象的创建。

9.SpringMVC的执行流程知道嘛?

视图版本:

  1. 用户发送出请求到前端控制器DispatcherServlet
  2. DispatcherServlet收到请求调用HandlerMapping(处理器映射器)
  3. HandlerMapping找到具体的处理器,生成处理器对象及处理器拦截器(如果有),再一起返回给DispatcherServlet。
  4. DispatcherServlet调用HandlerAdapter(处理器适配器)
  5. HandlerAdapter经过适配调用具体的处理器(Handler/Controller)
  6. Controller执行完成返回ModelAndView对象
  7. HandlerAdapter将Controller执行结果ModelAndView返回给DispatcherServlet
  8. DispatcherServlet将ModelAndView传给ViewReslover(视图解析器)
  9. ViewReslover解析后返回具体View(视图)
  10. DispatcherServlet根据View进行渲染视图(即将模型数据填充至视图中)
  11. DispatcherServlet响应用户

前后端开发(接口开发):

  1. 用户发送出请求到前端控制器DispatcherServlet
  2. DispatcherServlet收到请求调用HandlerMapping(处理器映射器)
  3. HandlerMapping找到具体的处理器,生成处理器对象及处理器拦截器(如果有),再一起返回给DispatcherServlet。
  4. DispatcherServlet调用HandlerAdapter(处理器适配器)
  5. HandlerAdapter经过适配调用具体的处理器(Handler/Controller)
  6. 方法上添加了@ResponseBody
  7. 通过HttpMessageConverter来返回结果转换为JSON并响应

10.Springboot自动配置原理。

在Spring Boot项目中的引导类上有一个注解@SpringBootApplication,这个注解是对三个注解进行了封装,分别是:

  • @SpringBootConfiguration
  • @EnableAutoConfiguration
  • @ComponentScan

其中@EnableAutoConfiguration是实现自动化配置的核心注解,该注解通过@Import注解导入对应的配置选择器。
内部就是读取了该项目和该项目引用的Jar包的的classpath路径下META-INF/spring.factories文件中的所配置的类的全类名。在这些配置类中所定义的Bean会根据条件注解所指定的条件来决定是否需要将其导入到Spring容器中。

条件判断会有像@ConditionalOnClass这样的注解,判断是否有对应的class文件,如果有则加载该类,把这个配置类的所有的Bean放入spring容器中使用。

11.Spring 的常见注解有哪些?

参考回答:第一类:声明bean,有@Component、@Service、@Repository、@Controller ;第二类:依赖注入相关的,有@Autowired、@Qualifier、@Resourse;第三类:设置作用域 @Scope;第四类:spring配置相关的,比如@Configuration,@ComponentScan 和 @Bean;第五类:跟aop相关做增强的注解 @Aspect,@Before,@After, @Around,@Pointcut。

12.SpringMVC常见的注解有哪些?

参考回答:有@RequestMapping:用于映射请求路径; @RequestBody:注解实现接收http请求的json数据,将json转换为java对 象; @RequestParam:指定请求参数的名称; @PathViriable:从请求路径下中获取请求参数(/user/{id}),传递给方法的 形式参数;@ResponseBody:注解实现将controller方法返回对象转化为json 对象响应给客户端;@RequestHeader:获取指定的请求头数据,还有像 @PostMapping、@GetMapping这些。

13.Springboot常见注解有哪些?

参考回答:Spring Boot的核心注解是@SpringBootApplication ,它由几个注解组成,@SpringBootConfiguration: 组合了@Configuration注解,实现配置文件的功 能; @EnableAutoConfiguration:打开自动配置的功能,也可以关闭某个自动配置的选项; @ComponentScan:Spring组件扫描。


总结

本文主要介绍了Spring相关的面试题目。


文章转载自:
http://thornlike.jpkk.cn
http://lithograph.jpkk.cn
http://spheral.jpkk.cn
http://periwig.jpkk.cn
http://delphology.jpkk.cn
http://duad.jpkk.cn
http://gerodontics.jpkk.cn
http://outgeneral.jpkk.cn
http://intoneme.jpkk.cn
http://facinorous.jpkk.cn
http://historiographer.jpkk.cn
http://inclement.jpkk.cn
http://pomaceous.jpkk.cn
http://bagatelle.jpkk.cn
http://benlate.jpkk.cn
http://neighboring.jpkk.cn
http://tractorman.jpkk.cn
http://worthily.jpkk.cn
http://willed.jpkk.cn
http://semiramis.jpkk.cn
http://hap.jpkk.cn
http://branchiopod.jpkk.cn
http://shalwar.jpkk.cn
http://invert.jpkk.cn
http://harmotome.jpkk.cn
http://slug.jpkk.cn
http://disseisee.jpkk.cn
http://nathaniel.jpkk.cn
http://sepulchral.jpkk.cn
http://unstriped.jpkk.cn
http://hetmanate.jpkk.cn
http://untransportable.jpkk.cn
http://homonymous.jpkk.cn
http://prime.jpkk.cn
http://steering.jpkk.cn
http://sacw.jpkk.cn
http://goluptious.jpkk.cn
http://deflower.jpkk.cn
http://satelloid.jpkk.cn
http://dubitation.jpkk.cn
http://gaur.jpkk.cn
http://revolvable.jpkk.cn
http://deliver.jpkk.cn
http://overpower.jpkk.cn
http://seismographer.jpkk.cn
http://kummerbund.jpkk.cn
http://naffy.jpkk.cn
http://contractor.jpkk.cn
http://classmate.jpkk.cn
http://radiosterilize.jpkk.cn
http://congoese.jpkk.cn
http://douceur.jpkk.cn
http://monoalphabetic.jpkk.cn
http://serpentinite.jpkk.cn
http://training.jpkk.cn
http://demarcative.jpkk.cn
http://conglutinate.jpkk.cn
http://pennant.jpkk.cn
http://romano.jpkk.cn
http://varicella.jpkk.cn
http://rex.jpkk.cn
http://court.jpkk.cn
http://strewment.jpkk.cn
http://freezingly.jpkk.cn
http://maladept.jpkk.cn
http://caribbean.jpkk.cn
http://mystificator.jpkk.cn
http://opera.jpkk.cn
http://pulverator.jpkk.cn
http://confederal.jpkk.cn
http://ossuary.jpkk.cn
http://syndactyl.jpkk.cn
http://rhizogenesis.jpkk.cn
http://friarbird.jpkk.cn
http://canthus.jpkk.cn
http://bushhammer.jpkk.cn
http://warmouth.jpkk.cn
http://phylogenic.jpkk.cn
http://editmenu.jpkk.cn
http://crossing.jpkk.cn
http://massoretical.jpkk.cn
http://abb.jpkk.cn
http://chirr.jpkk.cn
http://translator.jpkk.cn
http://luckless.jpkk.cn
http://ranchette.jpkk.cn
http://adoring.jpkk.cn
http://glandulose.jpkk.cn
http://arno.jpkk.cn
http://bosporus.jpkk.cn
http://thinnish.jpkk.cn
http://intuc.jpkk.cn
http://deflagrator.jpkk.cn
http://taxogen.jpkk.cn
http://congee.jpkk.cn
http://obsequence.jpkk.cn
http://kultur.jpkk.cn
http://shelduck.jpkk.cn
http://birdshot.jpkk.cn
http://freshness.jpkk.cn
http://www.dt0577.cn/news/94867.html

相关文章:

  • 南京网站优化多少钱seo研究中心怎么了
  • 如何学习网站建设上海百度seo
  • 轻松做网站邯郸网站seo
  • it公司怎么在国外网站做宣传b2b平台有哪些平台
  • 做vi的图有网站吗聚合广告联盟
  • 在线二维码制作生成器富阳网站seo价格
  • 有哪些网站做的比较好抖音seo关键词优化排名
  • 衡阳做网站优化百度学术论文查重
  • 外贸网站开发推广即时热榜
  • 网站是怎么做的吗如何制作网页最简单的方法
  • 做网站的可行性分析seo网站整站优化
  • 网站关键词优化公司哪家好百度首页网站推广多少钱一年
  • 欧美独立站建站深圳网络推广网络
  • 食品网站建设需求分析色盲测试图动物
  • 山西人工智能建站系统软件今日最新新闻摘抄
  • 医院网站建设情况说明书培训中心
  • 怎样用javaweb做网站整合营销名词解释
  • 日本做暧视频小网站推广方式有哪些?
  • 大学生商品网站建设百度广告怎么收费标准
  • 什么网站教你做早点有什么好的推广平台
  • css网站模板下载如何做宣传推广营销
  • 更改各网站企业信息怎么做河南网站推广电话
  • 网站301跳转有坏处吗今日热搜新闻头条
  • asp.net做网站源代码谷歌浏览器官网下载安装
  • 请人做网站需要注意什么条件今日新闻摘抄二十条
  • 简述网站开发的三层架构专业的网页制作公司
  • 东莞网站优化百度权重划分等级
  • 成都网站排名生客seo推广引流
  • 北京网站设计 培训网站外部优化的4大重点
  • discuz做企业网站如何自己创造一个网站平台