一、 Spring核心容器的组成部分
1.Spring-core
2.Spring-beans
3.Spring-context
4.Spring-context-support
5.Spring-expression
二、S pring事务的管理有哪几种常用 jar 包
core bean context aop
三、 在 S pring 框架中什么是控制反转?什么是依赖注入?
(简易:控制反转是一种通过描述并通过第三方去产生和获取特定对象的方式.在 spring 中实现控制反转的是 ioc 容器,其实现方法是依赖注入.)
依赖注入 (Dependency Injection:DI):
程序运行过程中,如果需要调用另一个对象协助时,无须在代码中创建被调用者,而是依赖于外部的注入。
通俗来讲,就是把有依赖关系的类放到容器中,然后在我们需要这些类时,容器自动解析出这些类的实例。
依赖注入最大的好处时实现类的解耦,利于程序拓展、单元测试、自动化模拟测试等。
控制反转 (Inversion of Control:IOC):
控制反转只是一个概念,也就是将创建对象实例的控制权(原本是程序员)从代码控制权剥离到 IOC 容器 中控制。
IOC/DI的优缺点:
优点:①依赖注入把对象的创造交给外部去管理,很好的解决了代码紧耦合(tight couple)的问题,是一种让代码实现松耦合(loose couple)的机制
②松耦合让代码更具灵活性,能更好地应对需求变动,以及方便单元测试
缺点:目前主流的 IOC/DI 基本采用反射的方式来实现依赖注入,在一定程度会影响性能
四、S pring 依赖注入方式有哪些) Ioc 容器的实现方式有哪些?
1.构造方法注入
2.属性方式注入
3.方法参数注入
五、S pring 的核心技术包括哪些
Spring核心是IOC和AOP。 ①Spring主要优点包括: 方便解耦,简化开发,通过Spring提供的IoC容器,我们可以将对象之间的依赖关系交由Spring进行控制,避免硬编码造成的程序耦合度高。 ②AOP编程的支持,通过Spring提供的AOP功能,方便进行面向切面编程。 声明式事务的支持,在Spring中,我们可以从单调烦闷的事务管理代码中解脱出来,通过声明式方式灵活地进行事务的管理,提高开发效率和质量。 方便程序的测试,可以用非容器依赖的编程方式进行几乎所有的测试工作。 方便集成各种优秀框架,Spring提供了对各种优秀框架的直接支持。
六、 了解 xml 配置的装配 , aop 的通知类型有哪些
1.环绕通知
2.前置通知
3.后置返回通知
4.后置通知
5.异常通知
6.引入通知
七、 常用连接池
c3p0,dbcp,druid,HikariCP
八、 用于 json 传递的注解
@RequestBody 主要用来接收前端传递给后端的 json 格式的数据的(请求体中的数据的)。
九、 RequestMapping 注解
作用:将请求和处理请求的控制器方法关联起来,建立映射关系。
十、 Springmvc 模式及特点
模型model:用于存储数据以及处理用户请求的业务逻辑
视图 view:向控制器提交数据及显示模型中的数据
控制control:根据视图提出的请求判断将请求交给那个模型处理 将处理后的结果提交给视图
十一、 基于注解的装配
1.@controller
用于标注一个控制器组件类
2.@service
用于标注一个业务逻辑组件类
3.@repository
改注解用于直接将 dao 层的类标识为 bean
4.@component
该注解是一个泛化的概念,表示一个组件对象(bean)
十二、 mybatis 工作原理 以及相关标签
1.读取配置文件
2.加载映射文件
3.构建会话工厂
4.创建会话对象
5.executor 执行对象
6.mapperstatement 对象
7.输入参数映射
8.输出结果映射
相关标签:①SqlMapConfig标签 ②Mapper标签 ③ResultMap标签
④ParameterMap标签 ⑤Sql标签 ⑥Insert、Update、Delete、Select标签 ⑦SQL标签
十三、 动态SQL 的常用标签
if、where、set、foreach、sql、include、choose、trim
Eg:<if>,<choose>
十四、开放题:为什么要用框架
1.什么是框架?
其实框架,就是别人写好了包装起来的一套工具,把你原先必须要写的,必须要做的一些复杂的东西都写好了放在那里,你只要调用他的方法,就可以实现一些本来要费好大劲的功能。形象一点说吧,假如你盖房子,你是自己一砖一瓦的盖简单呢,还是拿一个现成的架子往上面添东西简单呢?结果不言而喻吧,有一个半成品的架子,你只需要添上一些你自己额外需要加的东西就好了。这就是框架的好处。假如,好多好多地方都要用这么一套逻辑,那么我们会定义成一个方法(函数),就免去了写同样代码的麻烦,其实这个方法,就是一个框架啦,只不过非常小而已。
web开发的MVC模式,M是模型,V是视图(表现层),C是控制层。框架就是M层啦,他把一套不涉及任何业务相关的东西都写好了包装起来,你去用就可以了,C的控制层,他是没法写的,因为不同的系统有不同的业务逻辑,框架不可能帮你把业务逻辑也写进去啦。就好比你盖房子的架子,他只能做到一个架子,不是因为他不能完全弄好,而是因为他没法去加,他也不知道你到底是需要什么颜色的瓦片,但是相比来看,框架把很多复杂的东西都弄好了,你只要在上面添加你独有的东西就可以了。
综上所述,框架可以理解为一个毛坯房,有了这个毛坯房你可以将他装修成自己想要的样子,而不需要再一砖一瓦的去盖房子(省略了你盖房子主体架构这些步骤)。
2.框架的作用是什么?
框架可以帮助省略掉一些基本的相同底层代码的反复书写,只需调用框架的方法就可以实现你想要的功能。
3.为什么要学习框架?
学习框架的目的就是提高项目的编写效率,使你可以有更多的时间去编写属于自己独特的东西,而不需要将大量的时间花费在底层代码的书写上。