有网友说:2020年还不懂Spring就放弃Java吧?
前言
Spring这个词对于开发者想必不会陌生,可能你每天都在使用Spring,享受着Spring生态提供的服务,理所当然的用着SpringIOC和SpringAOP去实现老板交给你的功能 ,唔 它就是这样使用的(类声明为Bean组件,然后注入),没错 能完成老板任务,没毛病。如果向你提问什么是Spring,Spring有什么核心功能呢,你会想:这太简单了,Spring就是框架嘛,Spring核心功能就是IOC和AOP,So Easy!可是你真的了解Spring吗?
Spring是一个开源框架,最早由Rod Johnson创建,是为了解决企业级应用开发的复杂性而创建的。很多框架都宣称在某些方面针对Java开发做出了简化,但是Spring的目标是致力于全方位简化Java开发,这也是Spring的根本使命 "简化Java开发"。
关于Spring的知识总结了个思维导图分享给大家
有人说:2020年还不懂spring就放弃Java吧?全网最热门的119个spring问题,你会多少?让我们来看看下面这些问题!
Spring 面试题(一)
1、一般问题
1.1、不同版本的 Spring Framework 有哪些主要功能?
1.2、什么是 Spring Framework?
1.3、列举 Spring Framework 的优点。
1.4、Spring Framework 有哪些不同的功能?
1.5、Spring Framework 中有多少个模块,它们分别是什么?
1.6、什么是 Spring 配置文件?
1.7、Spring 应用程序有哪些不同组件?
1.8、使用 Spring 有哪些方式?
2、依赖注入(Ioc)
2.1、什么是 Spring IOC 容器?
2.2、什么是依赖注入?
2.3、可以通过多少种方式完成依赖注入?..
2.4、区分构造函数注入和 setter 注入。.
2.5、spring 中有多少种 IOC 容器?
2.6、区分 BeanFactory 和 ApplicationContext。
2.7、列举 IoC 的一些好处。
2.8、Spring IoC 的实现机制。
3、Beans
3.1、什么是 spring bean?
3.2、spring 提供了哪些配置方式?
3.3、spring 支持集中 bean scope?
3.4、spring bean 容器的生命周期是什么样的?
3.5、什么是 spring 的内部 bean?
3.6、什么是 spring 装配
3.7、自动装配有哪些方式?
3.8、自动装配有什么局限?
4、注解
4.1、什么是基于注解的容器配置
4.2、如何在 spring 中启动注解装配?
4.3、@Component, @Controller, @Repository, @Service 有何区别?
4.4、@Required 注解有什么用?
4.5、@Autowired 注解有什么用?
4.6、@Qualifier 注解有什么用?
4.7、@RequestMapping 注解有什么用?
5、数据访问
5.1、spring DAO 有什么用?
5.2、列举 Spring DAO 抛出的异常。
5.3、spring JDBC API 中存在哪些类?
5.4、使用 Spring 访问 Hibernate 的方法有哪些?
5.5、列举 spring 支持的事务管理类型
5.6、spring 支持哪些 ORM 框架
6、AOP
6.1、什么是 AOP?
6.2、什么是 Aspect?
6.3、什么是切点(JoinPoint)
6.4、什么是通知(Advice)?
6.5、有哪些类型的通知(Advice)?
6.6、指出在 spring aop 中 concern 和 cross-cutting concern 的不同之处。
6.7、AOP 有哪些实现方式?
6.8、Spring AOP and AspectJ AOP 有什么区别?
6.9、如何理解 Spring 中的代理?
6.10、什么是编织(Weaving)?
7、MVC
7.1、Spring MVC 框架有什么用?
7.2、描述一下 DispatcherServlet 的工作流程
7.3、介绍一下 WebApplicationContext.
Spring 面试题(二)
1、什么是 spring?
2、使用 Spring 框架的好处是什么?
3、Spring 由哪些模块组成?
4、核心容器(应用上下文) 模块。
5、BeanFactory – BeanFactory 实现举例。
6、XMLBeanFactory
7、解释 AOP 模块
8、解释 JDBC 抽象和 DAO 模块。
9、解释对象/关系映射集成模块。
10、解释 WEB 模块。
12、Spring 配置文件
13、什么是 Spring IOC 容器?
14、IOC 的优点是什么?
15、ApplicationContext 通常的实现是什么?
16、Bean 工厂和 Application contexts 有什么区别?
17、一个 Spring 的应用看起来象什么?
依赖注入
18、什么是 Spring 的依赖注入?
19、有哪些不同类型的 IOC(依赖注入)方式?
20、哪种依赖注入方式你建议使用,构造器注入,还是 Setter 方法注入?
Spring Beans
21.什么是 Spring beans?
22、一个 Spring Bean 定义 包含什么?
23、如何给 Spring 容器提供配置元数据?
24、你怎样定义类的作用域?
25、解释 Spring 支持的几种 bean 的作用域。
26、Spring 框架中的单例 bean 是线程安全的吗?
27、解释 Spring 框架中 bean 的生命周期。
28、哪些是重要的 bean 生命周期方法?你能重载它们吗?
29、什么是 Spring 的内部 bean?
30、在 Spring 中如何注入一个 java 集合?
31、什么是 bean 装配?
32、什么是 bean 的自动装配?
33、解释不同方式的自动装配 。
34.自动装配有哪些局限性 ?
35、你可以在 Spring 中注入一个 null 和一个空字符串吗?
Spring 注解
36、什么是基于 Java 的 Spring 注解配置? 给一些注解的例子
37、什么是基于注解的容器配置?
38、怎样开启注解装配?
39、@Required 注解
40、@Autowired 注解
41、@Qualifier 注解
Spring 数据访问
42.在 Spring 框架中如何更有效地使用 JDBC?
43、JdbcTemplate
44、Spring 对 DAO 的支持
45、使用 Spring 通过什么方式访问 Hibernate?
46、Spring 支持的 ORM
47.如何通过 HibernateDaoSupport 将 Spring 和 Hibernate 结合起来?
48、Spring 支持的事务管理类型
49、Spring 框架的事务管理有哪些优点?
50、你更倾向用那种事务管理类型?
Spring 面向切面编程(AOP)
51、解释 AOP
52、Aspect 切面
52、在 Spring AOP 中,关注点和横切关注的区别是什么?
54、连接点
55、通知
56、切点
57、什么是引入?
58、什么是目标对象?
59、什么是代理?
60、有几种不同类型的自动代理?
61、什么是织入。什么是织入应用的不同点?
62、解释基于 XML Schema 方式的切面实现。
63、解释基于注解的切面实现
Spring 的 MVC
64、什么是 Spring 的 MVC 框架?
65、DispatcherServlet
66、WebApplicationContext
67、什么是 Spring MVC 框架的控制器?
68、@Controller 注解
69、@RequestMapping 注解
上面的这些问题只是给大家一个借鉴作用,最主要的是给自己增加知识的储备,有备无患。
关于这119个全网最热门的spring问题,总结了40多页pdf文档,关注公种浩:程序员追风,回复 0109 可以获取。
希望能帮助到你面试前的复习且找到一个好的工作,也节省大家在网上搜索资料的时间来学习。
总结
按照 Spring 官方最新的说法,Spring 是现代 Java 的起源。
不可否认,Spring 无论在 Java 生态系统,还是在就业市场,是绝对的王者。面试出镜率之高,投产规模之广,无出其右。随着技术的发展,Spring 从往日的 IoC 框架,已发展成 Cloud Native 基础设施,衍生出大量 Spring 技术栈,如大家熟知的 Spring Boot、Spring Cloud 和 Spring Security 等。因此,Spring 生态体系随之变得庞大,如 Apache Dubbo 对 Spring Framework 的整合,各类中间件 Spring Boot Starter,以及多种 Spring Cloud 实现方案。
最后
欢迎大家一起交流,喜欢文章记得关注我点个赞哟,感谢支持!
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
阿里巴巴资深技术专家崮德:8 个影响我职业生涯的重要技能
我是上个世纪, 1998 年考入浙江大学的,读的是电子工程,但是在大学期间情不自禁爱地上了计算机,当时在学校学的是汇编语言,C 和 C++ ,也钻研过微软的 VC++ 。经历过点亮第一个 8051 板子的 LED 灯而兴奋不已,虽然当时的 LED 灯珠是直接用 8051 的 GPIO 口驱动的(没有考虑驱动电流能力)。 后来大三的时候,闲不住的自己,直接去外面的软件公司兼职打工,在其中一家通信设备公司做 PPP、PPPOE 开发,在这家公司,让我见识了什么是超大规模代码开发(比 Hello World 要雄伟的多),什么是超级优美的软件架构,什么是良好的编程风格,什么是精巧的数据结构设计。 大三大四的兼职生活,时间过的很快,后来我就很幸运地保研了,开始从事 ARM 嵌入式开发研究,当时( 2002-2003 )也算是中国第一代 ARM 开发工程师。从小学到大学,我和很多同学有一个特别大的差异,就是喜欢提问题。现在想来这个特别的技能为我未来成为优秀工程师打下了很好的基础。这个技能是我职业生涯第一个重要技能。 善于提出问题 我们的教育方式,注定了大部分人都是解决问题的高手,每次考试,我们的...
- 下一篇
调整css让语雀在更宽的屏幕上展示和编辑
在使用语雀文档的过程中,发现文档展示和编辑时的宽度是不能调整的,所以会在一些特殊情况下遇到一代呢人麻烦。比如在使用markdown时,代码段中的内容如果稍微长一些就看不到后面的代码,稍宽一些的表格也会展示的很挤。 所以,我针对语雀的css进行了一些调整,让语雀在编辑和展示时可以使用更宽的空间,这即使是一些字段超多的markdown表格,只要有带鱼屏,也可以展示和编辑的很舒服了。这些css的调整,可以通过如下的Tampermonkey脚本来进行自动的设置: // ==UserScript== // @name Wider Yuque // @namespace https://gist.github.com/socrateslee/751c6670c59d5b9cdbd8428fab493375 // @version 0.1 // @description Let yuque a bit wider on browser screen. // @author github.com/socrateslee // @include https://*.yuque.com/* // @gra...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
-
Docker使用Oracle官方镜像安装(12C,18C,19C)
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8编译安装MySQL8.0.19
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
推荐阅读
最新文章
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS6,CentOS7官方镜像安装Oracle11G
- SpringBoot2整合Redis,开启缓存,提高访问速度
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- Hadoop3单机部署,实现最简伪集群
- MySQL8.0.19开启GTID主从同步CentOS8