框架部分知识总结(华清远见)

1、spring的核心机制IOC的理解

IOC意思是控制反转,可以从字面意思来解释。首先“控制”是什么,在用spring框架的过程中,我们将不必要手动去创建我们需要的对象,也就是说,“控制”代表的是对象的控制权;那么什么又是”反转“,前面说到,在spring的使用过程中,我们不需要再手动去创建对象,那么我们需要的对象从哪里来?自然是从容器中来,我们将对象的控制权交到了ioc容器的手中,让容器为我们创建我们需要的对象,我们如果要使用这个对象,只需要配置bean对象或者使用@Autowired注解就可以将对象自动装配到我们需要的地方,从而大大节省了我们的代码量和出错率。

2、对AOP的理解

AOP意思是面向切面编程,在我看来,AOP可以说是对OOP的补充,我们知道,OOP是将万事万物都看做一个对象,通过封装、继承、多态来模拟公共行为。然而,当我们需要对分散的对象引入公共行为,那么OOP将无能为力。我们可以理解为OOP允许你定义从上到下的层次结构,而不适合定义从左到右的层次结构,所以在某些时候比如在日志中,日志通常散布在各个地方,而且与核心代码毫无关系,在OOP的设计模式中,这样将会导致代码大量的重复,而且不利于代码的复用。而如果采用AOP模式,那么我们可以将交叉的业务逻辑封装成一个切面,然后注入到程序中,实现程序的解耦合。

3、什么是Spring

spring是一个轻量级的IOC和AOP容器框架,目的是为了简化java的企业应用程序的开发,让开发人员只需要关注业务逻辑即可。

4、什么是单例模式,什么是单例bean

单例模式是指在内存中只会创建且仅创建一次的对象的设计模式。单例模式的类型又分为懒汉式和饿汉式,懒汉式是指在需要这个对象的时候再创建这个对象,在程序使用这个对象之前,先判空,判断这个对象有没有被实例化,如果已经被实例化,那么就引用这个对象,否则就实例化这个对象;而饿汉式就是指在类加载的时候就创建这个对象,等待程序调用。

单例bean是指spring容器在初始化的时候会先针对某个类去按类型进行初始化,然后如果发现其又按照名称进行了分类,则安Bean Name进行初始化。

5、mybatis的优点和缺点

优点:(1)基于SQL语句编程,相当灵活,不会对应用程序或者数据库的现有设计造成任何影响,SQL写在 XML里,解除sql与程序代码的耦合,便于统一管理;提供XML标签,支持编写动态SQL语句,并可重 用。

(2)与JDBC相比,减少了50%以上的代码量,消除了JDBC大量冗余的代码,不需要手动开关连接;

(3)很好的与各种数据库兼容(因为MyBatis使用JDBC来连接数据库,所以只要JDBC支持的数据库 MyBatis都支持)。

(4)能够与Spring很好的集成;

(5)提供映射标签,支持对象与数据库的ORM字段关系映射;提供对象关系映射标签,支持对象关系 组件维护。

缺点:(1)SQL语句的编写工作量较大,尤其当字段多、关联表多时,对开发人员编写SQL语句的功底有一定 要求。 (2)SQL语句依赖于数据库,导致数据库移植性差,不能随意更换数据库。

6、#{}和${}的区别是什么?

#{}是预编译处理KaTeX parse error: Expected 'EOF', got '#' at position 20: …字符替换,mybatis在处理#̲{}时会把变量替换为"?"。M…{}时,就是把${}替换成变量的值。使用mybatis的时候,使用#{}可以有效的解决sql注入的问题。

7、Spring Boot、Spring MVC 和 Spring 有什么区别?

1、Spring
Spring最重要的特征是依赖注入。所有 SpringModules 不是依赖注入就是 IOC 控制反转。
当我们恰当的使用 DI 或者是 IOC 的时候,我们可以开发松耦合应用。松耦合应用的单元测试可以很容
易的进行。
2、Spring MVC
Spring MVC 提供了一种分离式的方法来开发 Web 应用。通过运用像 DispatcherServelet,
MoudlAndView 和 ViewResolver 等一些简单的概念,开发 Web 应用将会变的非常简单。
3、SpringBoot
Spring 和 SpringMVC 的问题在于需要配置大量的参数。 Spring Boot 通过一个自动配置和启动的项来目解决这个问题。为了更快的构建产品就绪应用程序,Spring Boot 提供了一些非功能性特征。

二、问题解决

1、在项目中遇到所有代码,包括实体类全部爆红的问题

清除idea缓存
在这里插入图片描述
在这里插入图片描述
这是一个可以解决的办法

2、spring boot 启动类无故爆红,无法启动

可能是没有被maven仓库管理,设置maven的路径,对整个项目进行重新打包。
在这里插入图片描述
在这里插入图片描述

三、整体感悟

在这个阶段,我学习到了spring,spring boot ,mybatis,mybatis-plus,jpa等框架,在我看来,这些框架可能说用法不一样,但是最终的目的都是一样的,无论什么框架,都是在简化,开发人员对于其他代码的操作,更多的精力花费在业务逻辑方面,这样才能够将功能业务逻辑更加完善。在整个过程中,我也遇到了很多问题,不过大多是由于粗心大意导致的,在很久以前就开始对这方面进行改进,但是效果不是那么显著,在今后的学习中,应该更加注重这方面的问题。在其他方面自然也不可能落下,尤其是对于业务逻辑这样重要的地方,对我们而言,这就是最重要的地方。在整个框架阶段的学习中,我发现,对于框架,各类的框架,我的能力就仅仅只在乎于能够使用这个框架,做出这样的业务逻辑,对于框架的底层逻辑真的还是知之甚少,未来的学习,工作生活中,将要更加去弥补这样的不足之处。会用是远远不够的,更多的是它为什么要这样用。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值