90.为什么要使用 spring?

答:spring是一个开源框架,是个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架

  • 方便结构简化开发
  • AOP编码的支持
  • 声明式事物的支持
  • 方便程序的测试
  • 方便集成各种优势框架
  • 降低Java EE API 的使用难度

91.解释一下什么是 aop?

答:AOP即面向切面编程,是OOP编程的有效补充。使用AOP技术,可以将一些系统性相关的编程工作,独立提取出来,独立实现,然后通过切面切入进系统。从而避免了在业务逻辑的代码中混入很多的系统相关的逻辑——比如权限管理,事物管理,日志记录等等。

AOP分为静态AOP和动态AOP:

  • 静态AOP是指AspectJ实现的AOP,他是将切面代码直接编译到Java类文件中。
  • 动态AOP是指将切面代码进行动态织入实现的AOP,JDK动态代理。

92.解释一下什么是 ioc?

答:即“控制反转”,不是什么技术,而是一种设计思想。在Java开发中,Ioc意味着将你设计好的对象交给容器控制,而不是传统的在你的对象内部直接控制。

  IoC很好的体现了面向对象设计法则之一—— 好莱坞法则:“别找我们,我们找你”;即由IoC容器帮对象找相应的依赖对象并注入,而不是由对象主动去找。

93.spring 有哪些主要模块?

答:core模块、aop模块、data access模块、web模块、test模块

94.spring 常用的注入方式有哪些?

答:详细解析:https://blog.csdn.net/a909301740/article/details/78379720

  • 构造方法注入
  • setter注入
  • 基于注解注入

95.spring 中的 bean 是线程安全的吗?

答:

  Spring框架并没有对单例bean进行任何多线程的封装处理。关于单例bean的线程安全和并发问题需要开发者自行去搞定。但实际上,大部分的Spring bean并没有可变的状态(比如Serview类和DAO类),所以在某种程度上说Spring的单例bean是线程安全的。如果你的bean有多种状态的话(比如 View Model 对象),就需要自行保证线程安全。

最浅显的解决办法就是将多态bean的作用域由“singleton”变更为“prototype”。

96.spring 支持几种 bean 的作用域?

答:singleton、prototype、request、session、globalSession五中作用域。

97.spring 自动装配 bean 有哪些方式?

答:可分为四种:

  • byName:按照bean的属性名称来匹配要装配的bean
  • byType:按照bean的类型来匹配要装配的bean
  • constructor:按照bean的构造器入参的类型来进行匹配
  • autodetect(自动检测):先使用constructor进行装配,如果不成功就使用byType来装配

98.spring 事务实现方式有哪些?

答:三种

(1)基于 TransactionProxyFactoryBean的声明式事务管理

(2)基于 @Transactional 的声明式事务管理

(3)基于Aspectj AOP配置事务

https://blog.csdn.net/qq_42914528/article/details/83743726

spring事务实现原理    动态代理

99.说一下 spring 的事务隔离?

答:spring事务传播和隔离

100.说一下 spring mvc 运行流程?

答:DispatcherServlet->HandlerMapping->HandlerAdapter->ModelAndView->ViewResolver->view

https://www.cnblogs.com/hujiapeng/p/5765636.html

101.spring mvc 有哪些组件?

答:

DispatcherServlet(前端处理器)收到请求后,依据HandlerMapping的配置,调用相应的Controller来处理

Controller将处理结果封装成ModelAndView对象,返回给DispatcherServlet.

DispatcherServlet依据ViewResolver的解析,调用相应的视图对象,(如jsp)来生成相应的页面。

102.@RequestMapping 的作用是什么?

答:@RequestMapping注释用于映射url到控制器类或一个特定的处理程序方法。可用于类或方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径

103.@Autowired 的作用是什么?

答:spring可以自动帮你把Bean里面引用的对象的setter/getter方法省略,它会自动帮你set/get。
@Autowired注释进行自动注入时,spring容器中匹配的候选Bean数目必须有且仅有一个。
当找不到一个匹配的Bean时,spring容器将抛出BeanCreationException异常,并指出必须至少拥有一个匹配的Bean。
如果spring容器中拥有多个候选Bean,spring容器在启动时也会抛出BeanCreationException
这个时候就可以借助@Qualifier注释指定注入Bean的名称,这样@Autowired遇到多个候选Bean的问题也就解决了。

Spring/Spring MVC的更多相关文章

  1. 基于Spring + Spring MVC + Mybatis + shiro 高性能web构建

    一直想写这篇文章,前段时间 痴迷于JavaScript.NodeJs.AngularJS,做了大量的研究,对前后端交互有了更深层次的认识. 今天抽个时间写这篇文章,我有预感,这将是一篇很详细的文章,详 ...

  2. Spring Framework------>version4.3.5.RELAESE----->Reference Documentation学习心得----->Spring Framework中的spring web MVC模块

    spring framework中的spring web MVC模块 1.概述 spring web mvc是spring框架中的一个模块 spring web mvc实现了web的MVC架构模式,可 ...

  3. spring + spring mvc + mybatis + react + reflux + webpack Web工程例子

    前言 最近写了个Java Web工程demo,使用maven构建: 后端使用spring + spring mvc + mybatis: 前端使用react + react-router+ webpa ...

  4. spring 3 mvc hello world + mavern +jetty

    Spring 3 MVC hello world example By mkyong | August 2, 2011 | Updated : June 15, 2015 In this tutori ...

  5. 菜鸟学习Spring Web MVC之二

    有文章从结构上详细讲解了Spring Web MVC,我个菜鸟就不引据来讲了.说说强悍的XP环境如何配置运行环境~~ 最后我配好的环境Tomcat.Spring Tool Suites.Maven目前 ...

  6. 【Spring】Spring系列7之Spring整合MVC框架

    7.Spring整合MVC框架 7.1.web环境中使用Spring 7.2.整合MVC框架 目标:使用Spring管理MVC的Action.Controller 最佳实践参考:http://www. ...

  7. 4.Spring Web MVC处理请求的流程

  8. 1.Spring Web MVC有什么

    Spring Web MVC使用了MVC架构模式的思想,将web层进行职责解耦. 同样也是基于请求驱动的,也就是使用请求-响应模型.它主要包含如下组件: DispatcherServlet :前端控制 ...

  9. Spring REST实践之Spring Web MVC

    Spring概要 Spring Framework提供了依赖注入模型和面向切面编程,简化了基础型代码的编写工作以及更好的能够与其它框架和技术整合起来.Spring Framework由data acc ...

  10. Spring Boot——2分钟构建spring web mvc REST风格HelloWorld

    之前有一篇<5分钟构建spring web mvc REST风格HelloWorld>介绍了普通方式开发spring web mvc web service.接下来看看使用spring b ...

随机推荐

  1. 论Object.keys(), Object.getOwnPropertyNames(), for in, Object.getOwnPropertySymbol()区别

    前不久,一朋友求助,让我给解释一波Object.keys(), Object.getOwnPropertyNames(), for in的区别,面试中好几次呗问了.所以,抽了点时间看了看,大概把我看的 ...

  2. Kotlin 基础语法

    Kotlin 文件以 .kt 为后缀. 包声明 代码文件的开头一般为包的声明: package com.runoob.main import java.util.* fun test() {} cla ...

  3. Kafka-Record(消息格式)

    注:本文依赖于kafka-0.10.0.1-src kafka消息格式是经过多个版本的演变的,本文只说0.10.0.1版本的消息格式. 消息格式如图1所示: 图1 CRC:用于校验消息内容.占4个字节 ...

  4. linux存储管理之文件系统

    EXT3/4文件系统 ====================================================================================Ext3: ...

  5. node.js调用google翻译api

    源码下载:https://pan.baidu.com/s/1nxoodst 使用:(只支持get) http://39.106.33.56:3001/translate?text=Failure is ...

  6. web前端常见面试题汇总

    一.理论知识 1.1.讲讲输入完网址按下回车,到看到网页这个过程中发生了什么 a. 域名解析 b. 发起TCP的3次握手 c. 建立TCP连接后发起http请求 d. 服务器端响应http请求,浏览器 ...

  7. 启动欢迎页面时,Android Studio设置全屏Activity

    问题 如何在Android Studio中做一个全屏的启动界面(Splash Activity)? 背景(基本是废话,没兴趣的请跳过) 前段时间把IED换成Android Studio2.2之后,碰到 ...

  8. 网络(socket)编程

    一.网络协议 客户端/服务器架构 1.硬件C/S架构(打印机) 2.软件C/S架构(互联网中处处是C/S架构):B/S架构也是C/S架构的一种,B/S是浏览器/服务器 C/S架构与socket的关系: ...

  9. JSP、EL表达式的入门(要用)

    2018-08-12   22:55:23 * JSP.EL表达式的入门(要用)    * Servlet/JSP  是两种动态的WEB资源的两种技术.   * 使用Servlet 生成HTML的页面 ...

  10. sql中的limit关键字

    转载于:https://blog.csdn.net/benweizhu/article/details/7892788 一.基本 SQL的limit语法的如以下形式 SELECT * FROM tab ...