spring常见面试题(代码片段)

lanqiu5ge lanqiu5ge     2022-12-27     764

关键词:

本文是通过收集网上各种面试指南题目及答案然后经过整理归纳而来,仅仅是为了方便以后回顾,无意冒犯各位原创作者。

1. 什么是Spring?

Spring 是个java企业级应用的开源开发框架。Spring主要用来开发Java应用,但是有些扩展是针对构建J2EE平台的web应用。Spring 框架目标是简化Java企业级应用开发,并通过POJO为基础的编程模型促进良好的编程习惯。

2. 使用Spring框架的好处?

  • 轻量:Spring 是轻量的,基本的版本大约2MB。
  • 控制反转:Spring通过控制反转实现了松散耦合,对象们给出它们的依赖,而不是创建或查找依赖的对象们。
  • 面向切面的编程(AOP):Spring支持面向切面的编程,并且把应用业务逻辑和系统服务分开。
  • 容器:Spring 包含并管理应用中对象的生命周期和配置。
  • MVC框架:Spring的WEB框架是个精心设计的框架,是Web框架的一个很好的替代品。
  • 事务管理:Spring 提供一个持续的事务管理接口,可以扩展到上至本地事务下至全局事务(JTA)。
  • 异常处理:Spring 提供方便的API把具体技术相关的异常(比如由JDBC,Hibernate or JDO抛出的)转化为一致的unchecked 异常。

3. Spring 框架都有哪些模块

  • Spring核心容器:容器是Spring框架最核心的部分,它管理着Spring应用中Bean的创建、配置和管理。
  • Spring AOP模块:在此模块中,Spring对面向切面编程提供了丰富的支持。
  • 数据访问与集成
  • Web与远程调用
  • Instrumentation
  • 测试
    技术分享图片

4. BeanFactory 和 ApplicationContext 有什么区别?

BeanFactory 和 ApplicationContext 是Spring容器的不同实现,Spring容器负责创建对象,装配它们,配置它们并管理它们的整个生命周期。
BeanFactory是最简单的容器,提供基本的DI支持;ApplicationContext基于BeanFactory构建,并提供应用框架级别的服务,例如从属性文件解析文本信息以及发布应用时间给感兴趣的事件监听者。

5. 常见的ApplicationContext实现方式?

  • AnnotationConfigApplicationContext:从一个或多个基于Java的配置类中加载Spring应用上下文。
ApplicationContext context = new AnnotationConfigApplicationContext(com.springinaction.server.config.ServerConfig.class);
  • ClassPathXmlApplicationContext:从类路径下的一个或多个XML配置文件中加载上下文定义,把应用上下文的定义文件作为类资源。
ApplicationContext context = new ClassPathXmlApplicationContext("bean.xml");
  • FileSystemXmlApplicationContext:从文件系统下的一个或多个XML配置文件中加载上下文定义。
ApplicationContext context = new FileSystemXmlApplicationContext("c:/bean.xml");
  • XmlWebApplicationContext:从Web应用下的一个或多个XML配置文件中加载上下文定义。

常见面试题总结(代码片段)

微服务1.Springboot加载配置文件顺序?2.SpringBoot启动时都做了那些事3.Mybatis的sql执行过程4.SpringMVC的执行流程5.Spring容器启动的执行过程6.SpringIOC的过程7.微服务整体架构图8.如何拆分微服务​DDD领域驱动9.几个注册中心的比较... 查看详情

java面试java中spring开发框架的常见面试题(代码片段)

spring的两个核心特性:依赖注入(dependencyinjection,DI)和面向切面编程(aspect-orientedprogramming,AOP)。1.依赖注入传统应用程序都是由我们在类内部主动创建依赖对象,从而导致类与类之间高耦合... 查看详情

mysql常见面试题(代码片段)

测试数据:/*NavicatPremiumDataTransferSourceServer:localhostSourceServerType:MySQLSourceServerVersion:50624SourceHost:localhostSourceDatabase:sqlexamTargetServerType:MySQLTargetServerVersion:50624FileEncod 查看详情

面试题redis篇-常见面试题p1(代码片段)

【面试题】Redis篇-常见面试题p1备战实习,会定期的总结常考的面试题,大家一起加油!🎯🎯🎯往期文章:【面试题】计算机网络篇-10道常见面试题p1【面试题】JVM篇-10道常见面试题p1【面试题】Java并... 查看详情

面试题redis篇-常见面试题p1(代码片段)

【面试题】Redis篇-常见面试题p1备战实习,会定期的总结常考的面试题,大家一起加油!🎯🎯🎯往期文章:【面试题】计算机网络篇-10道常见面试题p1【面试题】JVM篇-10道常见面试题p1【面试题】Java并... 查看详情

49个spring常见面试题(代码片段)

一、一般问题 1.不同版本的SpringFramework有哪些主要功能? 2.什么是SpringFramework?Spring是一个开源应用框架,旨在降低应用程序开发的复杂度。它是轻量级、松散耦合的。它具有分层体系结构,允许用户选择组件,同时还... 查看详情

面经|redis常见面试题(代码片段)

Redis常见面试题目录结构:文章目录Redis常见面试题数据结构String哈希ListSetZset有序集合持久化机制RDB快照AOF混合使用Redis为什么要线执行命令,在把数据写入日志?缓存问题缓存击穿缓存穿透缓存雪崩数据一致性问题... 查看详情

java并发常见面试题总结(下)(代码片段)

Java并发常见面试题总结--下线程池为什么要用线程池?实现Runnable接口和Callable接口的区别执行execute()方法和submit()方法的区别是什么呢?如何创建线程池ThreadPoolExecutor类分析`ThreadPoolExecutor`构造函数重要参数分析`... 查看详情

面试题操作系统常见面试题合集(代码片段)

...601;往期文章:🥪【面试题】计算机网络篇-10道常见面试题p1🌮【面试题】JVM篇-10道常见面试题p1🌯【面试题】Java并发篇-10道常见面试题p1 查看详情

常见面试题(代码片段)

面试题零、开场介绍一、JAVA基础1.Java和C++,C#区别2.面向对象和面向过程的区别3.JDK,JRE区别4.==和equals的区别?5.为什么重写equals还要重写hashcode?6.说说抽象类和接口7.String,StringBuffer和StringBuilder... 查看详情

常见面试题(代码片段)

面试题零、开场介绍一、JAVA基础1.Java和C++,C#区别2.面向对象和面向过程的区别3.JDK,JRE区别4.==和equals的区别?5.为什么重写equals还要重写hashcode?6.说说抽象类和接口7.String,StringBuffer和StringBuilder... 查看详情

java并发常见面试题总结(中)(代码片段)

Java并发常见面试题总结---中JMM(JavaMemoryModel)volatile关键字如何保证变量的可见性?如何禁止指令重排序?volatile可以保证原子性么?synchronized关键字说一说自己对于synchronized关键字的了解如何使用synchronized关键字?... 查看详情

mybatis常见面试题(代码片段)

Mybatis解决JDBC编程的问题1、数据库链接创建、释放频繁造成系统资源浪费从而影响系统性能,如果使用数据库链接池可解决此问题。解决:在SqlMapConfig.xml中配置数据链接池,使用连接池管理数据库链接。2、Sql语句写在代码中造... 查看详情

java基础常见面试题总结(上)(代码片段)

Java基础常见面试题总结--上基础概念与常识Java语言有哪些特点?JVMvsJDKvsJREJVMJDK和JRE什么是字节码?采用字节码的好处是什么?为什么不全部使用AOT呢?为什么说Java语言“编译与解释并存”?OracleJDKvsOpenJDKJava和C++的区... 查看详情

rabbitmq常见面试题(代码片段)

一.使用RabbitMQ的好处1.解耦,系统A在代码中直接调用系统B和系统C的代码,如果将来D系统接入,系统A还需要修改代码,过于麻烦!2.异步,将消息写入消息队列,非必要的业务逻辑以异步的方式运行,加快响应速度3.削峰,并发... 查看详情

java常见面试题非常实用个人经验(代码片段)

1、左下角windows图标  2、点击设置 3、点击应用  4、点击左边菜单栏的启动按钮 5、然后你就可以在下面出现的开机自动启动的软件中,自由选择开或者关闭了。  查看详情

springmvc常见面试题(代码片段)

1.什么是SpringMVC?简单介绍下你对springMVC的理解?  SpringMVC是一个基于Java的实现了MVC设计模式的请求驱动类型的轻量级Web框架,通过把Model,View,Controller分离,将web层进行职责解耦,把复杂的web应用分成逻辑清晰的几部分,简... 查看详情

mybatisの常见面试题(代码片段)

Mybatis-面试问题最近准备系统的学一下Mybatis,之前只有粗略的看了下,选了十个常见的面试题1.#和$的区别是什么?#是预编译处理,$是字符串替换。Mybatis在处理#时,会将sql中的#替换为?号,调用PreparedStatement的set方法来赋值;Myb... 查看详情