阿里面试官:就说最后一遍,有关Spring这13点我们必问!

论坛 期权论坛     
选择匿名的用户   2021-5-22 15:15   7   0
<blockquote>
<p><strong>以下文章来源于微信公众号,作者sowhat1412</strong></p>
</blockquote>
<h1>1 Spring核心组件</h1>
<p>一句话概括:<strong>Spring是一个轻量级、非入侵式的控制反转(IoC)和面向切面(AOP)的框架</strong>。</p>
<table><thead><tr><th>Spring 版本</th><th>JDK版本</th></tr></thead><tbody><tr><td>1.x</td><td>1.3:引入了<strong>动态代理</strong>机制,AOP 底层就是动态代理。</td></tr><tr><td>2.x</td><td>1.4:正常升级</td></tr><tr><td>3.x</td><td>5:引入<strong>注解</strong>,Spring 3 最低版本是 Java 5 ,从此以后不叫1.x 直接叫x</td></tr><tr><td>4.x</td><td>6:<strong>划时代意义的版本</strong>,开始支持 Spring Boot 1.X</td></tr><tr><td>5.x</td><td>8:lambda 表达式等功能</td></tr></tbody></table>
<p>PS :目前Java 开发的标配是 <strong>Spring5 </strong>&#43; <strong>Spring Boot 2</strong> &#43;<strong> JDK 8</strong></p>
<h3>1.1 Spring 简介</h3>
<p>现如今的Java开发又简称为Spring开发,Spring是Java目前第一大框架,它让现有的技术更容易使用,促进良好的编程习惯,大大简化应用程序的开发。</p>
<p>因为你想啊,如果我们想实现某个功能,代码量一般都是固定的,要么全自己写,要么用已有的优秀框架,而Spring不仅已经给我们提供了各种优秀组件,还提供了良好的代码组织逻辑跟业务开发流程规范框架,它的主要优点如下:</p>
<ol><li> <p><strong>IOC</strong>跟<strong>DI</strong>的支持</p> </li></ol>
<blockquote>
<p>Spring就是一个大工厂容器,可以将所有对象创建和依赖关系维护,交给Spring管理,Spring工厂是用于生成Bean,并且管理Bean的生命周期,实现<strong>高内聚低耦合</strong>的设计理念。</p>
</blockquote>
<ol><li> <p>AOP编程的支持</p> </li></ol>
<blockquote>
<p>Spring提供<strong>面向切面编程</strong>,可以方便的实现对程序进行权限拦截、运行监控等功能。</p>
</blockquote>
<ol><li> <p>声明式事务的支持</p> </li></ol>
<blockquote>
<p>只需要通过配置就可以完成对事务的管理,而无需手动编程,以前重复的一些<strong>JDBC</strong>操作,统统不需我们再写了。</p>
</blockquote>
<ol><li> <p>方便程序的测试</p> </li></ol>
<blockquote>
<p>Spring对Junit4提供支持,可以通过<strong>注解</strong>方便的测试Spring程序。</p>
</blockquote>
<ol><li> <p>粘合剂功能</p> </li></ol>
<blockquote>
<p>方便集成各种优秀框架,Spring不排斥各种优秀的开源框架,其内部提供了对各种优秀框架(如:Struts、Hibernate、MyBatis、Quartz等)的直接支持。</p>
</blockquote>
<ol><li> <p>降低 JavaEE API的使用难度</p> </li></ol>
<blockquote>
<p>Spring 对 JavaEE 开发中非常难用的一些API(JDBC、JavaMail、远程调用等)都提供了封装,这些API的提供使得应用难度大大降低。</p>
</blockquote>
<h3>1.2 Spring组件</h3>
<p>Spring框架是分模块存在,除了最核心的<code>Spring Core Container</code>是必要模块之外,其他模块都是<code>可选</code>,大约有20多个模块。<img alt="图片" src="https://beijingoptbbs.oss-cn-beijing.aliyuncs.com/cs/5606289-8b70731c8c33a60bbaf5b63f044108d2.png"></p>
<p>Spring框架 有很多特性,这些特性由7个定义良好的模块构成。<img alt="图片" src="https://beijingoptbbs.oss-cn-beijing.aliyuncs.com/cs/5606289-e9667d8feae6dd6a33094629eed41891.png"></p>
<blockquote>
<ol><li> <p><strong>Spring Core</strong>:Spring核心,它是框架最基础的部分,提供IOC和依赖注入DI特性。</p> </li><li> <p><strong>Spring Context</strong>:Spring上下文容器,它是 BeanFactory 功能加强的一个子接口。</p> </li><li> <p><strong>Spring Web</strong>:它提供Web应用开发的支持。</p> </li><li> <p><strong>Spring MVC</strong>:它针对Web应用中MVC思想的实现。</p> </li><li> <p><strong>Spring DAO</strong>:提供对JDBC抽象层,简化了JDBC编码,同时,编码更具有健壮性。</p> </li><li> <p><strong>Spring ORM</strong>:它支持用于流行的ORM框架的整合,比如:Spring &#43; Hibernate、Spring &#43; iBatis、Spring &#43; JDO的整合等。</p> </li><li> <p><strong>Spring AOP</strong>:即面向切面编程,它提供了与AOP联盟兼容的编程实现。</p> </li></ol>
</blockquote>
<h1>2  IOC 跟 AOP</h1>
<p>提到Spring永远离不开的两个话题就是 <strong>IOC</strong>跟<strong>AOP</strong>,这是Spring的两大核心知识点,初学者不要被IOC、AOP、Aspect、Pointcut、Advisor这些术语吓着了,这些术语都是无聊的人为了发论文硬造的。</p>
<h3>2.1 IOC</h3>
<p>Java是个面向对象的编程语言,一般一个应用程序是由一组对象通过相互协作开发出的业务逻辑
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP