100道大厂高频Spring面试题你知道多少?让面试官无话可问!!

100道spring高频面试题

  • 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大概是什么样子?

  • 依赖注入

    • 21、Spring的IOC容器是什么?

    • 22、IOC的好处有哪些?

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

    • 24、BeanFactory和ApplicationContext比较

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

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

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

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

  • 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和空字符串吗?

  • Spring注解

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

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

    • 46、注解@Primary的重要性

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

    • 48、@SpringBootApplication的作用是什么?

    • 49、解释@InitBinder?

    • 50、定义@ControllerAdvice

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

    • 52、解释@ModelAttribute?

    • 53、@RequestMapping注解

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

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

    • 56、如何打开注解装配?

  • Spring 数据访问

    • 57、Spring JDBC API中有哪些类?

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

    • 59、JdbcTemplate

    • 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、哪种事务管理类型更可取?

  • 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、解释基于注解的切面实现

    • 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拦截器以及如何使用它?

  • 扩展

    • 99、Spring Security是什么?

    • 100、为什么要用SpringBoot?

Spring概览

1、Spring是什么?

Spring是一个企业级Java开发框架。Spring框架的核心特性可用于开发任何Java应用程序,但也有一些扩展用于在Java EE平台上构建web应用程序。Spring框架的目标是通过基于POJO的模型,使Java EE开发更加简单。

2、Spring框架的好处?

轻量级:Spring框架是轻量级的,最基础的版本大约只有2MB。

控制反转(IOC):通过控制反转技术,实现了解耦合。对象给出它们的依赖,而不是创建或查找依赖的对象。

面向切面(AOP):Spring支持面向切面的编程,并将应用程序业务逻辑与系统服务分离。

MVC框架:Spring的WEB框架是一个设计良好的web MVC框架,它为web框架提供了一个很棒的替代方案。

容器:Spring包含并管理对象的生命周期和配置。

事务管理:Spring提供了一个一致性的事务管理接口,可以收缩到本地事务,也可以扩展到全局事务(JTA)。

异常处理:Spring提供了方便的API来将具体技术的异常(由JDBC、Hibernate或JDO抛出)转换为一致的unchecked 异常。

3、Spring有哪些模块?

Spring大约有20个模块,包括核心容器、

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
spring 的优点? 1.降低了组件之间的耦合性 ,实现了软件各层之间的解耦 2.可以使用容易提供的众多服务,如事务管理,消息服务等 3.容器提供单例模式支持 4.容器提供了AOP技术,利用它很容易实现如权限拦截,运行期监控等功能 5.容器提供了众多的辅助类,能加快应用的开发 6.spring对于主流的应用框架提供了集成支持,如hibernate,JPA,Struts等 7.spring属于低侵入式设计,代码的污染极低 8.独立于各种应用服务器 9.spring的DI机制降低了业务对象替换的复杂性 10.Spring的高度开放性,并不强制应用完全依赖于Spring,开发者可以自由选择spring的部分或全部 什么是DI机制? 依赖注入(Dependecy Injection)和控制反转(Inversion of Control)是同一个概念,具体的讲:当某个角色 需要另外一个角色协助的时候,在传统的程序设计过程中,通常由调用者来创建被调用者的实例。但在spring中 创建被调用者的工作不再由调用者来完成,因此称为控制反转。创建被调用者的工作由spring来完成,然后注入调用者 因此也称为依赖注入。 spring以动态灵活的方式来管理对象 , 注入的两种方式,设置注入和构造注入。 设置注入的优点:直观,自然 构造注入的优点:可以在构造器中决定依赖关系的顺序。 什么是AOP? 面向切面编程(AOP)完善spring的依赖注入(DI),面向切面编程在spring中主要表现为两个方面 1.面向切面编程提供声明式事务管理 2.spring支持用户自定义的切面 面向切面编程(aop)是对面向对象编程(oop)的补充, 面向对象编程将程序分解成各个层次的对象,面向切面编程将程序运行过程分解成各个切面。 AOP从程序运行角度考虑程序的结构,提取业务处理过程的切面,oop是静态的抽象,aop是动态的抽象, 是对应用执行过程中的步骤进行抽象,,从而获得步骤之间的逻辑划分。 aop框架具有的两个特征: 1.各个步骤之间的良好隔离性 2.源代码无关性 Hibernate工作原理及为什么要用? 原理: 1.读取并解析配置文件 2.读取并解析映射信息,创建SessionFactory 3.打开Sesssion 4.创建事务Transation 5.持久化操作 6.提交事务 7.关闭Session 8.关闭SesstionFactory 为什么要用: 1. 对JDBC访数据库的代码做了封装,大大简化了数据访层繁琐的重复性代码。 2. Hibernate是一个基于JDBC的主流持久化框架,是一个优秀的ORM实现。他很大程度的简化DAO层的编码工作 3. hibernate使用Java反射机制,而不是字节码增强程序来实现透明性。 4. hibernate的性能非常好,因为它是个轻量级框架。映射的灵活性很出色。它支持各种关系数据库,从一对一到多对多的各种复杂关系。 2. Hibernate是如何延迟加载? 1. Hibernate2延迟加载实现:a)实体对象 b)集合(Collection) 2. Hibernate3 提供了属性的延迟加载功能 当Hibernate在查询数据的时候,数据并没有存在与内存中,当程序真正对数据的操作时,对象才存在与内存中,就实现了延迟加载,他节省了服务器的内存开销,从而提高了服务器的性能。 3.Hibernate中怎样实现类之间的关系?(如:一对多、多对多的关系) 类与类之间的关系主要体现在表与表之间的关系进行操作,它们都市对对象进行操作,我们程序中把所有的表与类都映射在一起,它们通过配置文件中的many-to-one、one-to-many、many-to-many、 4. 说下Hibernate的缓存机制 1. 内部缓存存在Hibernate中又叫一级缓存,属于应用事物级缓存 2. 二级缓存: a) 应用及缓存 b) 分布式缓存 条件:数据不会被第三方修改、数据大小在可接受范围、数据更新频率低、同一数据被系统频繁使用、非 关键数据 c) 第三方缓存的实现 5. Hibernate的查询方式 Sql、Criteria,object comptosition Hql: 1、 属性查询 2、 参数查询、命名参数查询 3、 关联查询 4、 分页查询 5、 统计函数 6. 如何优化Hibernate? 1.使用双向一对多关联,不使用单向一对多 2.灵活使用单向一对多关联 3.不用一对一,用多对一取代 4.配置对象缓存,不使用集合缓存 5.一对多集合使用Bag,多对多集合使用Set 6. 继承类使用显式多态 7. 表字段要少,表关联不要

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值