百度
360搜索
搜狗搜索

spring面试题简单回答,前端面试题分享之什么是Spring详细介绍

本文目录一览: 面试题:请你说一说Spring中IOC和DI的含义?应该怎么回答?

ioc就是控制翻转或是依赖注入。
DI(DependencyInjection,依赖注入)
ioc:通俗的讲就是如果在什么地方需要一个对象,你自己不用去通过new生成你需要的对象,而是通过spring的bean工厂为你长生这样一个对象。
di:比如对象A需要操作数据库,以前我们总是要在A中自己编写代码来获得一个Connection对象,有了spring我们就只需要告诉spring,A中需要一个Connection,至于这个Connection怎么构造,何时构造,A不需要知道。在系统运行时,spring会在适当的时候制造一个Connection,然后像打针一样,注射到A当中,这样就完成了对各个对象之间关系的控制。A需要依赖Connection才能正常运行,而这个Connection是由spring注入到A中的,依赖注入的名字就这么来的。
参考资料
360问答.360问答[引用时间2018-1-14]

面试题:说说你对spring的理解

spring:
1)开源框架
2)IoC(控制反转),将类的创建和依赖关系写在配置文件里,由配置文件注入,实现了松耦合
3)AOP 将安全,事务等于程序逻辑相对独立的功能抽取出来,利用spring的配置文件将这些功能插进去,实现了按照方面编程,提高了复用性
IoC和AOP是spring最重要的两个特性,面试官差不多就看这个吧,至于spring mvc之类的估计面试官不一定感兴趣
Spring 是一个开源框架,是为了解决企业应用程序开发复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许您选择使用哪一个组件,同时为 J2EE 应用程序开发提供集成的框架。
原文:https://www.zhihu.com/question
Spring是一个十分庞大的体系,具体可以访问它的官网https://spring.io/projects进行详细了解。首先,回答这个问题,可以先介绍一下Spring体系中的几个项目:
SpringFramework
SpringData
SpringSecurity
SpringBoot
SpringCloud
当然,除了这些之外,Spring还包括很多其他的项目。接着,着重介绍SpringFramework这个项目,它是一个开源的Java/JavaEE全功能栈的应用程序,SpringFramework提供了一个简易的开发方式,这种开发方式可以避免使用那些可能致使底层代码变得繁杂混乱的大量的属性文件和帮助类。Spring的这种低侵入式设计使代码的污染极低。SpringFramework包括以下部分:
然后,我们再介绍一下Spring的核心概念:
Bean管理
依赖注入(DI),又称为控制反转(IOC)
面向切面编程(AOP)
①Bean管理
与传统的应用程序不同,在Spring中将对象的创建交给Spring容器来管理,也就是说只有放入Spring容器中的类,Spring才能对其产生作用。那么Spring究竟是怎样获取类的对象的呢?要想知道这个,我们首先要弄清楚这几点:BeanFactory是Spring容器的根接口,ApplicationContext是它的子接口,通常用它的子接口ApplicationContext来访问Spring容器。
ApplicationContext子接口常用的有四个实现类:
ClassPathXmlApplicationContext 从 classpath 加载 spring 的配置文件
FileSystemApplicationContext 从系统文件加载 spring 的配置文件
AnnotationConfigApplicationContext 获取基于注解的 spring 容器对象
XmlWebApplicationContext 在 web 环境中获取 spring 容器对象
Spring通过BeanFactory来获取这些类的对象,在配置文件中通过
节点将类交给Spring进行管理,ApplicationContext的实现类通过getBean()方法从Spring容器中获取对象,默认为单例的。
②依赖注入
它可以降低类之间的耦合性,有两种注入方式:
set注入,在配置文件中使用

节点

set注入

· 构造方法注入,在配置文件中使用

节点

构造方法注入

下面举个例子来说明一下什么是依赖注入:

假设类A因功能F需要调用类B,传统的程序中,我们就会去new一个类B的对象,因而类A就会依赖类于类B,这就是说如果类B不存在,则类A也就无法使用。而使用依赖注入以后,类A只需要去调用实现功能F接口的一个实现类,这个实现类可能是类B,C等等,具体调用谁是有Spring的配置文件决定的,这样类A就不再依赖于类B。我们可以这样理解控制反转:资源不是由使用资源的双方进行管理,而是由不使用资源的第三方(即Spring容器)进行管理,这样做的好处是:

资源集中管理,实现资源的可配置与易管理

降低使用资源双方的依赖程度

在传统程序中,当某个角色需要另外一个角色协助时,由调用者来创建被调用者的实例。而在Spring中,创建被调用者的的工作不再由调用者来完成,而由第三方Spring容器来完成,所以称为控制反转,Spring容器创建被调用者的实例,然后注入调用者,所以又称为依赖注入。

③面向切面编程

AOP在Spring中主要表现在两个方面:

提供声明式事务管理

Spring支持用户自定义切面

面向切面编程是对面向对象编程(OOP)的补充。面向对象编程将程序分解成为各个层次的对象,面向切面编程将程序运行过程分解成各个切面。面向切面编程基于动态代理实现,降低了类直接的耦合程度。Spring的事务管理就是基于AOP实现的。

免费资源教程

真实版Spring面试题,欢迎作答!

1.ApplicationContext提供了BeanFactory所能提供的功能管理,包括bean的加载,实例化,维护bean之间的依赖关系,负责bean的声明周期之外,还提供了更完整的框架功能:
a. 国际化支持
通过配置org.springframework.context.support.ResourceBundleMessageSource
b. 资源访问:Resource rs = ctx. getResource(“classpath:config.properties”), file:c:/config.properties”
c. 事件传递:通过实现ApplicationContextAware接口
2. 默认scope是singleton,另外几个范围是 prototype
区别是singleton 只在初始化时候创建一个对象
prototype 在每次访问都会创建一个对象
3.根据输入的参数创建实例对象
一种为setter
定义property name 在class里面使用setter方法定义对象
一种为constractor
定义constructor-arg
4.没有
5. Log
定义促销活动日志
@Aspect
public class logpromotion{
@Before("execution(* com.herb.aop.PromotionOwner.*(..))")
public void before(JoinPoint joinPoint){
System.out.println("Logging before " + joinPoint.getSignature().getName());
}
}
public class PromotionOwner.BuyXgetYfree{
....
}
6.Before Advice 方法执行前
Around Advice 方法执行时
After Advice 方法执行后
Throw Advice 方法出现异常
1. 是bean容器,应用Spring框架前创建,实例化bean,解决各种关联,进行依赖注入。
2. Singleton。另一个范围是Prototype
3. Setter和constructor。
4. 没必要
5.
6. explicit class and method names or through regular expressions that define matching class and method name patterns

阿里面试必备:100个高频Spring面试题,助你一臂之力!

100个高频Spring面试题,让面试也能聊出花!

1、 Spring是什么?

2、Spring框架的好处?

3、Spring有哪些模块?

4、解释Core Container(Application context)模块

5、BeanFactory实现实例

6、XMLBeanFactory

7、解释AOP模块

8、解释JDBC抽象和DAO模块

9、解释对象/关系映射集成模块

10、解释Spring web模块

11、解释Spring MVC模块

12、Spring配置文件

13、如何才能有多个Spring配置文件?

14、ApplicationContext有哪些常见实现?

15、Bean Factory和ApplicationContext有什么区别?

16、Spring框架的一些最佳实践是什么?

17、使用Spring框架的方式有哪些?

18、我们如何使用Spring创建restful web服务来返回JSON响应结果?

19、Spring vs Spring MVC vs Spring Boot?

20、一个Spring大概是什么样子?

B:依赖注入

21、Spring的IOC容器是什么?

22、IOC的好处有哪些?

23、Spirng中有多少种IOC容器?

24、BeanFactory和ApplicationContext比较

25、什么是Spring中的依赖注入?

26、紧耦合和松耦合有什么区别?

27、IOC(依赖注入)有哪些不同类型?

28、你建议使用构造方法注入还是Setter注入?

C.Spring Beans

29、Spring beans是什么?

30、Spring bean定义包含什么?

31、如何向Spring容器提供配置元数据?

32、怎么定义bean的作用域?

33、说明Sprig支持的bean作用域

34、单例作用域是线程安全的吗?

35、解释Spring Bean的声明周期

36、有哪些重要的bean生命周期方法?你能重写它们吗?

37、Spring的内部bean是什么?

38、如何在Spring中注入Java集合?

39、什么是Spring Bean装配?

40、什么是Bean自动装配?

41、解释不同类型的自动装配

42、自动注入有限制吗?

43、你能在Spring中注入null和空字符串吗?

D.Spring注解

44、有哪些重要的Spring注解?

45、@RequestParam注解的作用是什么?

46、注解@Primary的重要性

47、XML配置和注解之间有什么区别?

48、@SpringBootApplication的作用是什么?

49、解释@InitBinder?

50、定义@ControllerAdvice

100个高频Spring面试题,让面试也能聊出花!

51、我们可以将一个个对象作为控制器处理程序方法的响应吗?

52、解释@ModelAttribute?

53、@RequestMapping注解

54、什么是spring中基于java的配置?给出一注解示例

55、什么是基于注解的容器配置?

56、如何打开注解装配?

E.Spring 数据访问

57、Spring JDBC API中有哪些类?

58、如何在Spring框架中更高效地使用JDBC?

59、JdbcTemplate

阅读更多 >>>  mysql面试题大全带答案,关于mysql面试题

60、如何通过spring JdbcTemplate获取数据?

61、NamedParameterJdbcTemplate的优点是什么?

62、什么是SpringJDBCTemplate类以及如何使用它?

63、 JDBC和Spring JDBC有什么区别?

64、Spring DAO支持

65、使用Spring访问Hibernate有哪些方式?

66、Spring支持的ORM

67、如何使用HibernateDaoSupport集成Spring和Hibernate?

68、Spring支持的事务管理类型?

69、Spring框架的事务管理有哪些优点?

70、哪种事务管理类型更可取?

F:Spring AOP

71、解释AOP

72、AOP有哪些优点?

73、AOP有哪些实现?

74、AOP术语有哪些?

75、切面

76、连接点

77、通知

78、切点

79、什么是引入?

80、什么是目标对象?

81、什么是代理?

82、有哪些不同类型的代理?

83、什么是植入。什么是植入应用的不同点?

84、Spring AOP中关注点和横切关注点有什么区别?

85、解释基于XML Schema方式的切面实现

86、解释基于注解的切面实现

G.Spring Model View Controller (MVC)

87、什么是Spring MVC框架?

88、创建spring mvc应用程序所需的最少配置是什么?

89、说出Spring MVC请求处理的主要流程?

90、DispatcherServlet

91、WebApplicationContext

92、 Spring MVC中的控制器是什么?

93、你如何将spring mvc框架与MVC架构联系起来?

94、Spring MVC中的ViewResolver是什么?

95、MultipartResolver是什么?怎么使用?

96、如何在spring mvc应用程序中上传文件?

97、Spring Web MVC怎么校验数据?

这里有三种方式去 提供校验 :使用注解、手动校验、或者两者混合。

98、什么是springmvc拦截器以及如何使用它?

H.扩展

99、Spring Security是什么?

100、为什么要用SpringBoot

(需要这份spring面试题答案PDF版,可以加群:927953692 免费领取)

关于springboot常见面试题整理笔记

[if !supportLists]1、[endif] 什么是spring boot,它主要有哪些优点

Springboot是spring的子项目,称为一站式解决方案,集成了外部很多的优秀的框架,如常用的mysql、jdbc。

主要优点:通过maven导入各种jar包,可以减少jar包的冲突;屏息了繁琐的xml配置文件;集成的开发框架,可以做到开箱即用

[if !supportLists]2、[endif] spingboot核心注解有哪些,都代表什么意思

核心注解主要包含3个:

[if !supportLists]1、[endif]@SpringBootConfiguration:实现配置文件功能

[if !supportLists]2、[endif]@EnableAutoConfiguration:开启自动配置功能

[if !supportLists]3、[endif]@ComponentScan:组件扫描

3、springboot中如何解决跨域问题

跨域都是通过前端JSONP来解决,但只能处理get类型请求,像post、put、delete就不支持,所以一般采用后端跨域通过WebMvcConfiguration接口来重写addCorsMappings方法,解决跨域问题。

4、在springboot微服务设计中,如何实现session共享

在微服务中,因为一个项目被拆分成多个子项目,导致内存中的session不一致,所以可以采取spring session+redis方式,将session统一保存在redis中。

5、 springbo ot需要独立的容器启动项目吗

不需要,springboot自带tomcat、jetty。

[if !supportLists]6、[endif] springboot运行方式有几种

一般有三种,将springboot打包发到容器中;也可直接运行main主方法;也可以mavern插件运行。

[if !supportLists]7、[endif] 在springboot工程中,无需重启系统,实现项目更新

这就涉及到springboot热部署的问题,只需安装devtools工具包,就能实现修改后的文件,通过Ctrl+F9来实现热更新

[if !supportLists]8、[endif] YAML在springboot中的作用

使得springboot配置文件更加有层次感,结构也比较清晰,不容易混淆,目前也是人类可读的数据序列化语言。

[if !supportLists]9、[endif] 在spingboot配置环境文件中,它们的加载顺序是什么

排序:properties文件、yaml文件、系统环境变量、命令参数等配置文件

在springmvc中哪个类是负责处理http请求和响应的

SpringMVC面试题
一、单选题
1.下列关于SpringMVC说法正确的是 B
A.SpringMVC和Spring没有关系
B.SpringMVC是一个控制层框架,复制接收和处理请求
C.SpringMVC可以脱离Spring单独使用
D.SpringMVC现在没什么人在使用了
2.关于SpringMVC中用到的注解说法错误的 B
A.@RestController是一个组合注解,包括@Controller和@ResponseBody
B.@RequestMapping来指定请求的url,只能写在方法上
C.@GetMappgin表示只能接收GET方式提交的请求
D.@PostMapping表示只能接收POST方式提交的请求
3.下面关于Spring MVC 描述正确的是(C)
A.DispatcherServlet在 Spring MVC 中是核心servlet , 它负责接收请求并将请求分发给适合的控制器
B.在Spring MVC 中,可以配置多个DispatcherServlet
C.全部选项
D.要使Spring MVC可用,DispatcherServlet需要在web.xml中配置
4.在Spring MVC中,哪个类是负责处理HTTP请求和响应的(A)
A.DispatcherServlet
B.RequestHandler
C.HttpServlet
D.SpringController
5.哪个方法不属于拦截器中定义的方法 B
A.preHandle
B.destory
C.postHandle
D.afterCompletion
二、多选题
1.下面属于映射请求的注解的是 A B C
A.@GetMapping
B.@RequestMapping
C.@PostMapping
D.@Controller
2.下面是封装响应数据的对象的是 ABC
A.Map
B.Model
C.ModelMap
D.MapModel
3.SpringMVC 用什么对象从后台向前台传递数据的 ABCD
A.将数据绑定到 request
B.返回 ModelAndView
C.通过ModelMap对象,可以在这个对象里面调用put方法,把对象加到里面,前端就可以通过el表达式拿到
D.绑定数据到 Session中
三、判断题
1.SpringMVC中核心是DispatcherServlet对象 (√)
2.SpringMVC响应的页面模板文件被视图解析器渲染处理后响应(√)
3.SpringMVC我们可以直接在Controller的相关的方法的形参中获取HttpServletResponse对象(√)
4.我们没办法在Controller的相关的方法的形参中获取HttpServletRequest对象(×)
5.@RequestBoy注解可以直接把返回的信息响应给客户端(×)

面试必问之spring 面试题

什么是 Spring Boot?
多年来,随着新功能的增加,spring 变得越来越复杂。只需访问 https://spring.io/projects 页面,我们就会看到可以在我们的应用程序中使用的所有 Spring 项目的不同功能。如果必 须启动一个新的 Spring 项目,我们必须添加构建路径或添加 Maven 依赖关系,配置应用程 序服务器,添加 spring 配置。因此,开始一个新的 spring 项目需要很多努力,因为我们现 在必须从头开始做所有事情。
Spring Boot 是解决这个问题的方法Spring Boot 已经建立在现有 spring 框架之上使用
spring 启动,我们避免了之前我们必须做的所有样板代码和配置。因此,Spring 帮助我们以最少的工作量,更加健壮地使用现有的 Spring 功能。
Spring Boot 有哪些优点? Spring Boot 的优点有:
Boot 可以
减少开发,测试时间和努力。
使用 JavaConfig 有助于避免使用 XML。
避免大量的 Maven 导入和各种版本冲突。
提供意见发展方法。
通过提供默认值快速开始开发
没有单独的 Web 服务器需要这意味着你不再需要启动 TomcatGlassfish 或其他任何东 西
需要更少的配置 因为没有 web.xml 文件。只需添加用@ Configuration 注释的类,然后添加 用@Bean 注释的方法,Spring 将自动加载对象并像以前一样对其进行管理。您甚至可以将 @Autowired 添加到 bean 方法中,以使 Spring 自动装入需要的依赖关系中。 基于环境的配置 使用这些属性,您可以将您正在使用的环境传递到应用程序:- Dspring.profiles.active = {enviornment}。在加载主应用程序属性文件后,Spring 将在 (application{environment} .properties)中加载后续的应用程序属性文件。
什么是 Spring Profiles?
Spring Profiles 允许用户根据配置文件(dev,test,prod 等)来注册 bean。因此,当应用 程序在开发中运行时,只有某些 bean 可以加载,而在 PRODUCTION 中,某些其他 bean 可 以加载。假设我们的要求是 Swagger 文档仅适用于 QA 环境,并且禁用所有其他文档。这 可以使用配置文件来完成。Spring Boot 使得使用配置文件非常简单。
什么是 Spring Batch?
Spring Boot Batch提供可重用的函数,这些函数在处理大量记录时非常重要,包括日志/跟 踪,事务管理,作业处理统计信息,作业重新启动,跳过和资源管理。它还提供了更先进 的技术服务和功能,通过优化和分区技术,可以实现极高批量和高性能批处理作业。简单 以及复杂的大批量批处理作业可以高度可扩展的方式利用框架处理重要大量的信息。
什么是 FreeMarker 模板?
FreeMarker 是一个基于 Java 的模板引擎,最初专注于使用 MVC 软件架构进行动态网页生 成。使用 Freemarker 的主要优点是表示层和业务层的完全分离。程序员可以处理应用程序 代码,而设计人员可以处理 html 页面设计。最后使用 freemarker 可以将这些结合起来,给 出最终的输出页面。
如何使用 Spring Boot 实现异常处理?
Spring提供了一种使用ControllerAdvice处理异常的非常有用的方法。 我们通过实现一个 ControlerAdvice 类,来处理控制器类抛出的所有异常。

阅读更多 >>>  springboot常用注解面试题,聊聊Spring Boot面试相关问题

前端面试题分享之什么是Spring

Spring是一个轻量级控制反转(IOC)和面向切面(AOP)的容器框架,
它主要是为了解决企业应用开发的复杂性而诞生的:
目的:解决企业级应用开发的复杂性。
功能:使用基本的JavaBean代替EJB。
范围:任何Java应用。
Spring的存在是因为它自身的得天独厚的优势:
它定位的领域是许多其他流行的framework没有的。
Spring是全面的和模块化的。
它的设计从底部帮助你编写易于测试的代码。
Spring是潜在一站式解决方案。
Spring天生就存在如下的有点:
低侵入式设计,代码污染极低。
Write Once,Run Anywhere
DI有效的降低了耦合度。
AOP提供了通用的任务的集中管理。
ORM和DAO简化了对数据库的访问。
高度开放性,并不强制(贯穿于变现层,业务层,持久层)
Spring的优点给开发带来的好处:
可以有效组织中间层对象。
使用同一的配置文件。
促进良好的编程习惯,减少编程代价。
易于单元测试。(一Spring基本组就是JavaBean,二提供了对Juit的支持)
使EJB成为一种备选。
为数据存取提供了一致性的框架。

面试题,spring原理、核心分别是什么,几句话概括

spring: 1)开源框架 2)IoC(控制反转),将类的创建和依赖关系写在配置文件里,由配置文件注入,实现了松耦合 3)AOP 将安全,事务等于程序逻辑相对独立的功能抽取出来,利用spring的配置文件将这些功能插进去,实现了按照方面编程,提高了复用性 IoC和AOP是spring最重要的两个特性,面试官差不多就看这个吧,至于spring mvc之类的估计面试官不一定感兴趣

网站数据信息

"spring面试题简单回答,前端面试题分享之什么是Spring"浏览人数已经达到23次,如你需要查询该站的相关权重信息,可以点击进入"Chinaz数据" 查询。更多网站价值评估因素如:spring面试题简单回答,前端面试题分享之什么是Spring的访问速度、搜索引擎收录以及索引量、用户体验等。 要评估一个站的价值,最主要还是需要根据您自身的需求,如网站IP、PV、跳出率等!