前言:(开源框架学习思维导图)
Spring5概述(面试题)
Spring5 是一个重要的版本,距离SpringFramework4差不多四年。在此期间,大多数增强都是在 SpringBoot 项目中完成的。
Spring 是一个开源的轻量级 Java SE(Java 标准版本)/Java EE(Java 企业版本)开发应用框架, 其目的是用于简化企业级应用程序开发。应用程序是由一组相互协作的对象组成。而在传统应用程序开发中,一个完整的应用是由一组相互协作的对象组成。所以开发一个应用除了要开发业务逻辑之外,最多的是关注如何使这些对象协作来完成所需功能,而且要低耦合、高内聚。业务逻辑开发是不可避免的, 那如果有个框架出来帮我们来创建对象及管理这些对象之间的依赖关系。
一切从 Bean 开始
1、什么是Spring beans?
2、一个 Spring Bean 定义 包含什么?
3、如何给Spring 容器提供配置元数据?
4、你怎样定义类的作用域?
5、解释Spring支持的几种bean的作用域。
6、Spring框架中的单例bean是线程安全的吗?
7、解释Spring框架中bean的生命周期。
8、哪些是重要的bean生命周期方法? 你能重载它们吗?
9、什么是Spring的内部bean?
10、在 Spring中如何注入一个java集合?
Spring IoC(面试题)
IoC——控制反转(Inversion of Control,英文缩写为IoC)是框架的重要特征,如果程序员清楚框架和工具箱的差别,可以无视本术语。
可以使用C语言设计框架,因此,IoC并非面向对象编程的专用术语。
Spring的DI/依赖注入(Dependency Injection,简称DI)仅仅是一个工具箱,因此与IoC没有关系。
Spring最基础的部分就是IOC,对IOC的理解程度从某个方面代表着你对Spring 的理解程度,看了网上的一些面试题,针对Spring IOC相关的重点是下面几个:
1、Spring中Bean 的生命周期是怎么样的?
2、Spring IOC是如何实现的,如何加载Bean,如何创建单例Bean?
3、BeanFactory和ApplicationContext之间的关系?
4、BeanFactory和FactoryBean之间的关系?
5、Spring Bean有哪些扩展点?
Spring AOP(面试题)
AOP称为面向切面编程,在程序开发中主要用来解决一些系统层面上的问题,比如日志,事务,权限等待,Struts2的拦截器设计就是基于AOP的思想,是个比较经典的例子。
AOP的基本概念
(1)Aspect(切面):通常是一个类,里面可以定义切入点和通知
(2)JointPoint(连接点):程序执行过程中明确的点,一般是方法的调用
(3)Advice(通知):AOP在特定的切入点上执行的增强处理,有before,after,afterReturning,afterThrowing,around
(4)Pointcut(切入点):就是带有通知的连接点,在程序中主要体现为书写切入点表达式
(5)AOP代理:AOP框架创建的对象,代理就是目标对象的加强。Spring中的AOP代理可以使JDK动态代理,也可以是CGLIB代理,前者基于接口,后者基于子类
1、说出Spring的通知类型有哪些?
2、谈谈目标对象实现接口与目标对象不实现接口有什么区别?
3、请描述JDK动态代理和CGLI代理的区别?
4、简述ProxyFactoryBean的作用是什么?
5、叙述Spring中的自动代理的原理?
6、写出代理的两种方式分别是什么?
7、请简述:什么是AOP?
8.、简述AOP核心?
9、请叙述AOP事务的含义?
10、写出创建代理对象需指定的三要素是什么?
Mybatis(面试题)
MyBATIS 目前提供了三种语言实现的版本,包括:Java、.NET以及Ruby。它提供的持久层架包括SQL Maps和Data Access Objects(DAO)。
mybatis提供一种“半自动化”的ORM实现。 这里的“半自动化”,是相对Hibernate等提供了全面的数据库封装机制的“全自动化”ORM实现而言,“全自动”ORM实现了POJO和数据库表之间的映射,以及 SQL 的自动生成和执行。而mybatis的着力点,则在于POJO与SQL之间的映射关系。
1、JDBC编程有哪些不足之处,MyBatis是如何解决这些问题的?
2、MyBatis编程步骤是什么样的?
3、MyBatis与Hibernate有哪些不同?
4、使用MyBatis的mapper接口调用时有哪些要求?
5、SqlMapConfig.xml中配置有哪些内容?
6、简单的说一下MyBatis的一级缓存和二级缓存?
7、Mapper编写有哪几种方式?
8、Mybatis是如何进行分页的?分页插件的原理是什么?
9、简述Mybatis的插件运行原理,以及如何编写一个插件。
10、Mybatis执行批量插入,能返回数据库主键列表吗?
Spring MVC(面试题)
在Spring MVC应用程序中,模型通常由POJO对象组成,它在业务层中被处理,在持久层中被持久化。视图通常是用JSP标准标签库(JSTL)编写的JSP模板。控制器部分是由dispatcher servlet负责,在本教程中我们将会了解更多它的相关细节。
一些开发人员认为业务层和DAO层类是MVC模型组件的一部分。我对此持有不同的意见。我不认为业务层及DAO层类为MVC框架的一部分。通常一个web应用是3层架构,即数据-业务-表示。MVC实际上是表示层的一部分。
1、 讲下SpringMvc的执行流程
2、SpringMvc中函数的返回值是什么.
3、SpringMvc怎么处理返回值的
4、SpringMVC怎么样设定重定向和转发的
5、SpringMvc用什么对象从后台向前台传递数据的
6、SpringMvc中有个类把视图和数据都合并的一起的,叫什么
7、怎么样把ModelMap里面的数据放入Session里面
9、SpringMvc怎么和AJAX相互调用的
10、当一个方法向AJAX返回特殊对象,譬如Object,List等,需要做什么处理
面试资料:
需要面试题汇总(可私信我免费领取答案)私信【面试资料】即可免费领取
附加java开发的资料(面试资源与经验总结,Dubbo、Redis、设计模式、Netty、zookeeper、Spring cloud、分布式、高并发等架构技术视频教程资料,架构思维导图,以及面试资料,了解最新的学习动态;了解最新的阿里、京东招聘资讯)