Java 框架总结,mysql 教程视频
体现了拦截器的使用,拦截器是一个一个的小功能模块,用户可以将这些拦截器合并成一个大的拦截器,这个合成的拦截器就像单独的拦截器一样,只要将它配置到一个 Action 中就可以。
(4)Struts2 的缺点:
校验较繁琐,多字段出错返回不同。
安全性太低
获取传参时较麻烦
2、Spring
(1)基本概念
spring 是一个开源开发框架,是一个轻量级控制反转(IoC)和面向切面(AOP
)的容器框架。
spring 主要用来开发 java 应用,构建 J2EE 平台的 web 应用。其核心就是提供一种新的机制管理业务对象及其依赖关系。
(2)spring 的流程图
解析:上面是在 Struts 结构图的基础上加入了 spring 流程图,在 web.xml 配置文件中加入了 spring 的监听器,在 struts.xml 配置文件中添加
“<constant name="struts.objectFactory" value="spring" />”
是告知 Struts2 运行时使用 spring 来管理对象,spring 在其中主要做的就是注入实例,所有需要类的实例都由 spring 管理。
(3)spring 的优点
容器:spring 是一个容器,包含并管理对象的生命周期和配置。可以配置每个 bean 如何被创建,基于一个可配置原型 prototype,你的 bean 可以创建一个单独的实例或者每次需要时都生成一个新的实例。
支持 AOP:spring 提供对 AOP 的支持,它允许将一些通用任务,如安全、事物、日志等进行集中式处理,从而提高了程序的复用性。
轻量级框架:spring 是轻量级框架,其基本的版本大约 2M。
控制反转:spring 通过控制反转实现松耦合。对象们给他们依赖,而不是对象本身,方便解耦,简化开发。
方便程序测试:spring 提供了 Junit4 的支持,可以通过注解方便的测试 spring 程序。
降低 java EE API 的使用难度:spring 对 java EE 开发中非常难用的一些 API(比如 JDBC),都提供了封装,使这些 API 应用难度大大降低。
方便集成各种优秀框架:spring 内部提供了对各种优秀框架(如 Struts、mybatis)的直接支持。
支持声明式事务处理:只需要通过配置就可以完成对事务的管理,而无须手动编程。
(4)spring 的缺点
依赖反射,反射影响进程。
太过于依赖设计模式。
控制器过于灵活。
不支持分布式应用。
3、hibernate
(1)基本概念
Hibernate 是一个开放源代码的对象关系映射框架,它对 JDBC 进行了非常轻量级的对象封装,它将 POJO 与数据库表建立映射关系,是一个全自动的 orm 框架,hibernate 可以自动生成 SQL 语句,自动执行,使得 Java 程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate 可以应用在任何使用 JDBC 的场合,既可以在 Java 的客户端程序使用,也可以在 Servlet/JSP 的 Web 应用中使用,最具革命意义的是,Hibernate 可以在应用 EJB 的 J2EE 架构中取代 CMP,完成数据持久化的重任。
(2)hibernate 的核心构成和执行流程图
(3)hibernate 的优点
对 JDBC 访问数据库的代码做了封装,大大简化了数据访问层繁琐的重复性代码。
Hibernate 是一个优秀的 ORM 实现。他很大程度的简化 DAO 层的编码工作,将软件开发人员从大量相同的数据持久层相关编程工作中解放出来,使开发更对象化了。
透明持久化(persistent)带有持久化状态的、具有业务功能的单线程对象,此对象生存期很短。这些对象可能是普通的 javabeans/POJO,(POJO 概念,plain ordinary java object,简单的 java 对象,可以简单理解为简单的实体类 entity。)这个对象没有实现第三方框架或接口,唯一特殊的是他们正与 session 关联。一旦这个 session 被关闭,这些对象就会脱离持久化状态,这样就可被应用程序的任何层自由使用。
事务 transaction 应用程序用来指定原子操作单元范围的对象,它是单线程的,生命周期很短。它通过抽象将应用从底层具体的 JDBC、JTA(java transaction API,JTA 允许应用程序执行分布式事务处理,在两个或多个网络计算机资源访问并且更新数据,JDBC 驱动程序的 JTA 支持极大地增强了数据访问能力)以及 CORBA(公用对象请求代理程序体系结构,common object request broker architecture,简而言之,CORB 允许应用程序和其它的应用程序通讯)事务隔离开。某些情况下,一个 session 之内可能包含多个 transaction 对象,事务边界的开启与关闭时必不可少的。
它没有侵入性,是轻量级框架。
移植性好,支持各种数据库,如果换个数据库只要在配置文件中变换配置就可以了,不用改变 hibernate 代码。
缓存机制,提供一级缓存和二级缓存。
一级缓存:是 session 级别的缓存,一个 session 做了一个查询操作,它会把这个操作的结果放到一级缓存中,如果短时间内这个 session 又做了同一个操作,那么 hibernate 直接从一级缓存中拿出,而不会去连数据库取数据。
二级缓存:是 sessionFactory 级别的缓存,就是查询的时候会把结果缓存到二级缓存中,如果同一个 sessionFactory 创建的某个 session 执行了相同的操作,hibernate 就会从二级缓存中拿出结果,而不会再去连接数据库。
(4)hibernate 的缺点
持久层封装过于完整,导致开发人员无法对 SQL 进行优化,无法灵活应用原生 SQL。
批量数据处理的时候较为弱势。
框架中使用 ORM 原则,导致配置过于复杂,遇到大项目,维护问题不断。
手动实现教程源码:
链接: https://pan.baidu.com/s/1BK0V1wxA-GQrWco10WEzeg 提取码: 2e3e?
二、SSM
SSM 架构,是三层结合所成的框架,分别是 Spring、SpringMVC、MyBatis 所组成。Spring 依赖注入来管理各层,面向切面编程管理事务,日志和权限。SpringMVC 代表了 model、view、controller 接收外部请求,进行开发和处理。mybatis 是基于 jdbc 的框架,主要用来操作数据库,并且将业务实体和数据表联系起来。
1、spring
详细介绍见 SSH 中 spring。
2、SpringMVC
(1)基本概念
属于 spring 框架的一部分,用来简化 MVC 架构的 web 应用程序开发。
(2)SpringMVC 的优点
拥有强大的灵活性,非侵入性和可配置性
提供了一个前端控制器 dispatcherServlet,开发者无需额外开发控制器对象
分工明确,包括控制器、验证器、命令对象、模型对象、处理程序映射视图解析器,每一个功能实现由一个专门的对象负责完成
可以自动绑定用户输入,并正确的转换数据类型
可重用的业务代码:可以使用现有的业务对象作为命令或表单对象,而不需要去扩展某个特定框架的基类。
(3)SpringMVC 的缺点
servlet API 耦合难以脱离容器独立运行
太过于细分,开发效率低
@RequestParam、@ModelAttribute、@RequestBody的区别
HttpServletResponse response实现文件上传、下载
3、mybatis
(1)基本概念
mybatis 是一个简化和实现了 java 数据持久层的开源框架,它抽象了大量的 JDBC 冗余代码,并提供了一个简单易用的 API 和数据库交互。
(2)mybatis 的优点
与 JDBC 相比,减少了 50%以上的代码量。
mybatis 是最简单的持久化框架,小巧并且简单易学。
mybatis 灵活,不会对应用程序或者数据库的限售设计强加任何影响,SQL 写在 XML 里,从程序代码中彻底分离,降低耦合度,便于统一管理和优化,可重用。
提供 XML 标签,支持编写动态 SQL 语句(XML 中使用 if,else)。
提供映射标签,支持对象与数据库的 ORM 字段关系映射(在 XML 中配置映射关系,也可以使用注解)
(3)mybatis 的缺点
SQL 语句的编写工作量较大,对开发人员的 SQL 语句编写有一定的水平要求。
SQL 语句过于依赖数据库,不能随意更换数据库。
拼接复杂 SQL 语句时不灵活。
【MyBatis 基础知识总结 2】MyBatis-Plus
MyBatis逆向工程(Example + Criteria简介)
示例源码:
链接:https://pan.baidu.com/s/1NIDjQ5wRBN9hNc_4G1Nhng?
提取码:18vi
三、Springboot
1、springboot 基本概念
springboot 是一个全新的框架,简化 Spring 的初始搭建和开发过程,使用了特定的方式来进行配置,让开发人员不再需要定义样板化的配置。此框架不需要配置 xml,依赖于 maven 这样的构建系统。
2、Springboot 的优点
(1)减少了大量的开发时间并提高了生产力
(2)避免了编写大量的样板代码,注释和 XML 配置
(3)解决了 spring 的弊端
评论