了解经典的服务框架

本文涉及的产品
实时计算 Flink 版,5000CU*H 3个月
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
大数据开发治理平台 DataWorks,不限时长
简介: 【6月更文挑战第17天】本文介绍Java经典架构框架:它们是Struts,Spring,MyBatis。

1 简介

软件工程实施中难免架构设计的过程,无论多大多小,总有设计的影子。
比如分层中的三层架构设计,瘦客户端,胖客户端。表示层,功能层,数据层等。

treeoflife6.png

这里简单介绍java语言中曾经(现在也很有用)非常经典的架构(框架)的设计方法。

Struts作为MVC框架处理请求;
Spring,分层架构,强调IoC和AOP,简化企业级开发;Spring支持AOP、声明式事务,易测试与集成;

Hibernate是ORM框架,简化对象-关系映射;
MyBatis提供SQL映射,平衡手动控制与自动化。MyBatis适合SQL微调,移植性较Hibernate略逊。

2 Struts 框架

Struts 是一个基于 SUN J2EE 平台的 MVC 框架,主要是采用 Servlet和JSP 技术来实现的。在 Struts 框架中。

模型由实现业务逻辑的 JavaBean 或 EJB 构件构成,控制器由 ActionServlet 和 Action 来实现,视图由一组JSP 文件构成。

3 Spring框架

Spring 是一个开源框架,它是为了解决企业应用开发的复杂性而创建的框架的主要优势之一就是其分层架构。

分层架构允许使用者选择使用哪一个组件,同时为 J2EE 应用程序开发提供集成的框架。
Spring 使用基本的 JavaBean 来完成以前只可能由 EJB 完成的事情,然而,Spring 的用途不仅限于服务器端的开发。

从简单性、可测试性和松耦合的角度而言,任何 Java 应用都可以从 Spring中受益。
Spring 的核心是控制反转(IoC)和面向切面(AOP)简单来说。Spring是一个分层的 JavaSE/EE full-stack(一站式)轻量级开源框架。

控制反转 IoC(Inversion of Control)是说创建对象的控制权进行转移,以前创建对象的主动权和创建时机是由自已把控的,而现在这种权力转移到第三方,比如转移交给了 IoC 容器.

它就是一个专门用来创建对象的工厂,你要什么对象,它就给你什么对象,有了 IoC 容器,依赖关系就变了,原先的依赖关系就没了,它们都依赖 IoC 容器了,通过 oC 容器来建立它们之间的关系.

image.png

4 Hibernate框架

Hibernate 是一个开源的对象关系映射框架,
它对JDBC 进行了非常轻量级的对象封装。

将 POJO(普通的 Java 对象) 与数据库表建立映射关系,
是一个全自动的 ORM 框架,甚至自动生成 SQL语句,自动执行。

因此,程序员可以随心所有地使用对象编程思维来操纵数据库。

image.png

5 Mybatis 框架

该数据避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。
Mybatis可以使用简单的 xml 或注解来配置和映射原生信息,将接口和JAVA 的 POJOS映射成数据库的记录。

6 小结

  • Spring框架的优点

(1) 方便解耦,简化开发 (高内聚低合)
Spring 就是一个大工厂 (容器),可以将所有对象创建和依赖关系维护交给 Spring 管理,Spring 工厂是用于生成 bean.

(2) AOP 编程的支持
Spring 提供面向切面编程,可以方便的实现对程序进行权限拦截、运行监控等功能。

(3) 声明式事务的支持
只需要通过配置就可以完成对事务的管理,而无需手动编程。

(4)方便程序的测试
Spring 对 Junit4 支持,可以通过注解方便的测试 Spring 程序。

(5)方便集成各种优秀架
Spring 不排斥各种优秀的开源框架,
其内部提供了对各种优秀框架 (如:Struts、Hibernate、MyBatis、Quartz 等) 的直接支持。

(6)降低 JavaEE API 的使用难度
Spring 对JavaEE 开发中非常难用的一些API (JDBC、JavaMail、远程调用都提供了封装,使这些 API 应用难度大大降低

  • Mybatis与 Hibernate 的区别:
  1. 开发方面:Hibernate 开发中,sql语句已经被封装,直接可以使用;Mybatis 属于半自动化,sql 需要手工完成

  2. sql 优化方面: 对复杂查询的 sql 语进行人工调优的时候,Mybatis 更方便

  3. 可移植性方面: Hibernate 使用时自动生成相应的 sql 语句,因此具备良好的数据库移植性
    而 Mybatis 中手动编写的 sql 语需要针对不同厂商的数据库进行修改.

目录
相关文章
|
1月前
|
负载均衡 监控 Java
探索微服务架构的奥秘
本文将深入探讨微服务架构的核心概念,优势与挑战,以及如何在实际应用中有效地实施微服务。通过分析微服务架构的设计原则和关键技术,我们将揭示其如何帮助企业实现更灵活、可扩展的软件系统。同时,我们也将讨论微服务在实际应用中可能遇到的一些问题和解决方案。
|
1月前
|
运维 负载均衡 应用服务中间件
高速服务框架HSF的基本原理(上)
高速服务框架HSF的基本原理(上)
248 1
|
1月前
|
设计模式 Java 应用服务中间件
高速服务框架HSF的基本原理(下)
高速服务框架HSF的基本原理(下)
135 0
|
10月前
|
监控 Java 微服务
微服务架构理论
微服务架构理论
87 0
|
11月前
|
自然语言处理 监控 Java
对于服务治理概念的一些总结和理解,我们应该如何实践服务治理
对于服务治理概念的一些总结和理解,我们应该如何实践服务治理
186 0
|
设计模式 缓存 Devops
微服务架构最强讲解,那叫一个通俗易懂!
微服务架构(Microservice Architecture)是一种架构概念,旨在通过将功能分解到各个离散的服务中以实现对解决方案的解耦。你可以将其看作是在架构层次而非获取服务的
微服务架构最强讲解,那叫一个通俗易懂!
|
消息中间件 负载均衡 数据可视化
通信服务框架基础知识总结
成熟度:学习成本、难易程度、社区热度、文档是否详细、是否有专门团队维护更新、稳定性如何;
通信服务框架基础知识总结
|
开发框架 Dubbo Java
微服务架构的经典开发框架| 学习笔记
快速学习微服务架构的经典开发框架。
272 0
微服务架构的经典开发框架| 学习笔记
|
设计模式 前端开发 算法
1.8微服务架构 Microservice 的经典设计模式| 学习笔记
快速学习1.8微服务架构 Microservice 的经典设计模式。
288 0
1.8微服务架构 Microservice 的经典设计模式| 学习笔记
|
存储 开发框架 Dubbo
技术点-微服务概念介绍 | 学习笔记
快速学习技术点-微服务概念介绍
86 0