Mybatis的优缺点
优点
1、与JDBC相比,减少了50%以上的代码量
2、最简单的持久化框架、小巧简单易学
3、SQL代码从程序代码中彻底分离出来,可重用
4、提供XML标签,支持编写动态SQL
5、提供映射标签,支持对象与数据库的ORM字段关系映射
缺点
1、SQL语句编写工作量大,熟练度要高
2、数据库移植性差,比如mysql移植到Orecle,SQL语句会有差异从而引起err
MyBatis专注于SQL本身,是实体类与SQL语句之间建立的映射关系(不是实体类与表),是一个足够灵活的dao层优化方案,适用于性能要求高,需求多变的项目。
Spring 的优缺点
优点
1.方便解耦,简化开发 (高内聚低耦合)
Spring就是一个大工厂(容器),用于创建对象(bean)和维护对象间的依赖关系.
2.AOP编程的支持
Spring提供面向切面编程,可以方便的实现对程序进行权限拦截、运行监控等功能.
声明式事务的支持,只需要通过配置就可以完成对事务的管理,而无需手动编程
3.方便程序的测试,
Spring对Junit4支持,可以通过注解方便的测试Spring程序
4.方便集成各种优秀框架
Spring支持各种优秀框架(如:MyBatis、Redis、MongoDB、ElementsSearch、Quartz等)
5.降低JavaEE API的使用难度
Spring 对JavaEE开发中非常难用的一些API(JDBC、JavaMail等),都提供了封装,使这些API应用难度大大降低.
缺点
- 中断了应用程序的逻辑,使代码变得不完整,不直观.此时单从Source无法完全把握应用的所有行为.
- 将原本应该代码化的逻辑配置化,增加了出错的机会以及额外的负担.
- 时光倒退,失去了IDE的支持.在目前IDE功能日益强大的时代,以往代码重构等让人头痛的举动越来越容易.而且IDE还提供了诸多强大的辅助功能,使得编程的门槛降低很多.通常来说,维护代码要比维护配置文件,或者配置文件+代码的混合体要容易的多.
- 调试阶段不直观,后期的bug对应阶段,不容易判断问题所在
SpringMVC的优缺点
优点
(1)封装代码,维护成本低,耦合性低;
(2)有利于开发中的分工,提高开发效率;
(3)组件重用,有利于代码复用,重用性高
缺点
(1)没有明确的定义,不适合小型,中等规模的应用程序
(2)增加系统结构和实现的复杂性
(3)视图与控制器间的过于紧密的连接,视图对模型数据的低效率访问
SpringBoot的优缺点
优点
- 开箱即用
- 嵌入的Tomcat,无需部署WAR文件
- 简化Maven配置
- 自动配置Spring
- 提供生产就绪型功能,如指标,健康检查和外部配置
- 绝对没有代码生成并且对XML也没有配置要求
缺点
开箱即用的简单背后隐藏了巨大的学习曲线,入门简单,但是如果没有完整学习spring体系,遇到问题容易懵逼,没有一定校验,根本不知道springboot自动做了什么