Spring⾯试题(超详细,2021收集,答案简短好背)
答:restcontroller=controller+@resposebody
答:默认是的。scope可设置成多例,作⽤域:singleton(单例)、prototype(多例)
3.过滤器有什么区别?
答:过滤器依赖servlet容器,基于函数回调实现,在容器初始化时调⽤⼀次,⼏乎可以过滤所有资源包括静态⽂件。基于web框架⽐如springmvc,基于反射实现运⽤aop,可以多次调⽤,但只能拦截controller,⽆法拦截静态⽂件。
4.spring bean的⽣命周期?
答:加载bean定义、bean⼯⼚处理器、实例化、属性赋值、aware接⼝扩展、beanpost前置处理器、初始化、beanpost后置处理器-bean的使⽤销毁
5.spring bean的初始化怎么做?
答:1.配置init-method @Bean(init-method="xx") 2.实现InitializingBean⽅法afterPropertiesSet,3。加@PostConstruct 顺序:postConstruct>afterPropertiesSet>init-method
6.简单说下IOC和AOP?
答:ioc就是权限控制反转,创建对象交给spring容器来做,便于管理。aop就是⾯向切⾯编程,它通过动态代理为spring对象增加功能。⽐如增加⽇志切⾯,spirng的事务以及都是运⽤了aop。
7.spring的动态代理⽤哪种实现?
答:spring默认是采⽤jdk的动态代理,如果想要⽤cglib可以通过配置⽂件的⽅式指定。
8.jdk代理和cglib代理有什么区别?
答:jdk代理利⽤反射对实现接⼝的类⽣成代理,⽽cglib则利⽤字节码技术⽣成⼀个⼦类。前者必须是有实现接⼝才可以,后者则是⽣成⼦类,因此⽬标类不能是final的。
9.spring依赖注⼊⽅式有⼏种,分别是什么?
答:常见的有3种。构造器注⼊、set⽅法注⼊、属性注⼊(autowire或者resorce)、接⼝注⼊(不常⽤)
10.springmvc流程?
答:前端控制器(DS)接收请求,然后DS调⽤处理器映射器HandleMapping,⽣成处理器对象和,DS再调⽤处理器适配器HandleAdapter到对应的handle,调⽤handler返回模型视图,DS调⽤视图解析器解析视图,最后浏览器渲染给⽤户。
11.说说spring mvc⽤了哪些技术怎么实现的?
答: aop技术
12.Spring MVC常⽤的注解有哪些?
答:@RequestMapping url映射、@RequestBody 将请求参数转为java对象、@ResponseBody将返回参数转为json格式。
13.springmvc是怎么向前台传递数据的?
答:通过modelMap对象把内容放到⾥⾯,前端就可以通过el表达式拿到。
14.springmvc是怎么写的?
答:实现HandlerInterceptor接⼝或者继承适配器类
15.WebApplicationContext是什么?
答:继承了ApplicationContext 并增加了⼀些WEB应⽤必备的特有功能.
16.springboot/spring常⽤的注解有哪些?
答:@import @Component @RequestMapping @Pathvariable @Bean @Scope @Configuration @Autowired @RequestBody
@ResposeBody
17.怎么保证spring定时任务⾼可⽤?两个定时任务同时写表怎么处理的?
答:数据库⽅⾯:表主键约束避免重复插⼊,如果写的频率⾼,可以⽤悲观锁的⽅式,更新的时候加锁for update nowait,数额类更新:如果是累加的,可以写成update a =a+b 的⽅式,如果本次操作不可抛弃,可以增加重试功能。如果写的频率不⾼,可以⽤乐观锁,增加版本号字段来控制,写的时候带上版本号去更新。
18.说说springboot⾃动配置原理?
答:springboot注解会引⼊后缀是xxImportSelector类,⾥⾯有selectImorts⽅法,它会寻META-INF/spring.factories配置⽂件,到⾥⾯的⾃动配置类,根据⾃动配置类进⾏装配。
19.Spring cloud知道多少?
答:五⼤组件eureka、zuul、Hystrix、ribbon、springcloud config,以及服务调⽤feign
20.@Autowired/@Resource的区别?
spring ioc注解答:@Autowired是Spring的注解,Autowired默认先按byType,如果发现到多个bean,则,⼜按照byName⽅式⽐对,如果还有多个,则报出异常。@Resource是jdk的注解,默认按名称装配,如果装配失败,按类型。
21.BeanFactory 和ApplicationContext的区别?
答:BeanFactory提供基本功能(实例化对象和获取对象),ApplicationContext提供更多的功能包括aop。装载bean⽅⾯,BeanFactory在拿bean的时候才实例化,ApplicationContext在启动的时候全部实例化。
22.Spring 定时任务执⾏原理是什么?
答:Spring 将会优先查 TaskScheduler/ScheduledExecutorService的实例,若存在将会使⽤。如果不存在则使⽤的是 JDK ⾃带的ScheduledExecutorService的默认配置。
23.spring执⾏多个定时任务怎么做?
答:配置⼀个TaskScheduler,设置好线程池⼤⼩,增加到spring容器中。如果不配置,则多个任务可能会互相影响(等待)。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。