
Spring框架
Spring框架是由7个定义明确的模块组成的分层体系结构. Spring框架建立在核心容器的顶部,该核心容器定义了创建,配置和管理bean的方式,如下图所示:
Spring框架的7个模块
组成Spring框架的每个模块(或组件)可以单独存在,也可以与一个或两个其他模块结合实现. 每个模块的功能如下:
Spring Core: 核心容器提供Spring框架的基本功能. 核心容器的主要组件是BeanFactory,它是工厂模式的实现. BeanFactory使用控制反转(IOC)模式将应用程序的配置和依赖关系规范与实际应用程序代码分开.
Spring上下文: Spring上下文是一个配置文件,用于向Spring框架提供上下文信息. Spring上下文包括企业服务,例如JNDI,EJB,电子邮件,国际化,验证和调度功能.
Spring AOP: 通过配置管理功能,Spring AOP模块将面向方面的编程功能直接集成到Spring框架中. 因此,很容易使Spring框架管理的任何对象都支持AOP. Spring AOP模块为基于Spring的应用程序中的对象提供事务管理服务. 通过使用Spring AOP,您可以将声明式事务管理集成到应用程序中,而无需依赖EJB组件.
Spring DAO: JDBC DAO抽象层提供了有意义的异常层次结构,可用于管理不同供应商抛出的异常处理和错误消息. 异常层次结构简化了错误处理,并大大减少了需要编写的异常代码(例如打开和关闭连接)的数量. Spring DAO的面向JDBC的异常遵循通用的DAO异常层次结构.
Spring ORM: Spring框架插入了多个ORM框架,以提供ORM的对象关系工具,包括JDO,Hibernate和iBatis SQL Map. 它们全部遵循Spring的常规事务和DAO异常层次结构.
Spring Web模块: Web上下文模块构建在应用程序上下文模块的顶部,并为基于Web的应用程序提供上下文. 因此,Spring框架支持与Jakarta Struts集成. Web模块还简化了多部分请求的处理并将请求参数绑定到域对象.
Spring MVC框架: MVC框架是用于构建Web应用程序的全功能MVC实现. 通过策略接口,MVC框架变得高度可配置. MVC提供了多种视图技术,包括JSP,Velocity,Tiles,iText和POI.
Spring框架的功能可以在任何J2EE服务器中使用,并且大多数功能也适用于非托管环境. Spring的核心点是支持与特定J2EE服务无关的可重用业务和数据访问对象. 毫无疑问,此类对象可以在不同的J2EE环境(Web或EJB),独立应用程序和测试环境之间重用.

控制反转模式(也称为依赖干预)的基本概念是: 不创建对象,而是描述如何创建它们. 对象和服务未直接在代码中连接,但是配置文件描述了哪个组件需要哪个服务. 容器(Spring框架中的IOC容器)负责将它们链接在一起.
面向方面的程序设计(AOP)是一种编程技术,它使程序员可以模块化行为,这些行为跨越关注点或跨越典型的职责范围,例如日志记录和事务管理. AOP的核心构造是方面,它将影响多个类的行为封装到可重用的模块中. AOP的功能已完全集成到Spring的事务管理,日志记录和其他各种功能的上下文中.
BeanFactory支持两个对象模型.
单态模型提供具有特定名称的对象的共享实例,这些名称可以在查询时检索. Singleton是默认且最常用的对象模型. 无状态服务对象的理想选择.
原型模型可确保为每次检索创建一个单独的对象. 原型模型最适合每个用户需要自己的对象的情况.
SpringMVC框架
MVC(模型-视图-控件): 控制层是框架的一部分. 主要任务是: 将Web请求封装为数据对象,调用业务逻辑层以处理数据对象,将处理数据结构返回,并将相应的徒弟发送给客户端.
SpringMVC和Struts2都是表示层的框架. 它们是Spring框架的一部分. Spring框架中控制层的核心是DispatcherServlet,它用于将请求分发到不同的后端处理器.
Spring的控制层框架使用后端控制器来映射处理器和视图解析器,以完成控制层框架的主要工作. 而且,Spring的Control层框架还真正将业务层处理的数据结果和相应的视图组合到一个对象中,即ModelAndView对象.
SpringMVC框架处理流程
SpringMVC框架访问过程

MyBatis框架
MyBatis是一个出色的持久层框架,它支持普通的SQL查询,存储过程和高级映射. MyBatis消除了几乎所有JDBC代码和参数的手动设置以及结果集的检索. MyBatis使用简单的XML或注释进行配置和原始映射,将接口和Java的POJO(普通的旧Java对象)映射到中的记录.
从MyBatis代码实现的角度来看,MyBatis的主要核心组件如下:
SqlSession是MyBatis工作的主要顶级API. 它代表与交互的会话,并完成必要的添加,删除,修改和搜索功能.
ExecutorMyBatis执行程序是MyBatis调度的核心. 它负责SQL语句的生成和查询缓存的维护.
StatementHandler封装了JDBC语句操作,并负责对JDBC语句的操作,例如设置参数以及将Statement结果集转换为List集.
ParameterHandler负责将用户传递的参数转换为JDBC语句所需的参数,
ResultSetHandler负责将JDBC返回的ResultSet结果集对象转换为List类型集合;
TypeHandler负责java数据类型和jdbc数据类型之间的映射和转换
MappedStatement MappedStatement维护
SqlSource负责根据用户传递的parameterObject动态生成SQL语句,将信息封装到BoundSql对象中,然后返回
BoundSql代表动态生成的SQL语句和相应的参数信息

ConfigurationMyBatis的所有配置信息都保存在Configuration对象中.
MyBatis层次结构:
图片来自“对mybatis原理的深入理解”体系结构设计和MyBatis实例分析
休眠框架
JDBC代表Java连接,它是一个Java程序,提供了一组Java API来访问关系. 这些Java API使Java应用程序能够执行SQL语句并与任何符合SQL要求的进行交互.
Hibernate框架是适用于JavaEE三层结构的dao层框架
使用Hibernate框架在dao层中添加,删除,修改和检查. Hibernate框架的最底层是JDBC. 使用Hibernate框架简化JDBC,您无需编写复杂的JBDC代码.
Hibernate框架是开源的轻量级框架(Hibernate框架可以直接使用而无需依赖其他事物)
休眠优势
Hibernate使用XML文件来处理Java类别到表的映射网页开发框架,而无需编写任何代码.
提供简单的API,用于直接在中存储和检索Java对象.

如果或任何其他表中发生更改,则仅需要更改XML文件属性.
抽象不熟悉的SQL类型,并为我们提供我们在工作中熟悉的Java对象.
Hibernate不需要应用程序服务器即可运行.
处理中对象的复杂关联.
用于最小化和访问的智能提取策略.
提供简单的数据查询.
休眠应用程序架构图
配置对象
配置对象是您在任何Hibernate应用程序中创建的第一个Hibernate对象,通常仅在应用程序初始化期间创建. 它表示Hibernate所需的配置或属性文件. 配置对象提供了两个基本组件.
连接: 由Hibernate支持的一个或多个配置文件处理. 这些文件是hibernate.properties和hibernate.cfg.xml.
类映射设置: 该组件创建Java类和表之间的连接.
SessionFactory对象: 配置对象用于创建SessionFactory对象,使用提供的配置文件依次为应用程序配置Hibernate,并允许实例化会话对象. SessionFactory是线程安全的对象,并由应用程序的所有线程使用. SessionFactory是一个重量级对象,因此通常在启动应用程序时创建,然后保存以备后用. 每个都需要一个带有单独配置文件的SessionFactory对象. 因此,如果您使用多个,则必须创建多个SessionFactory对象.
会话对象: 会话用于物理连接到. Session对象是轻量级的,旨在每个实例都需要与进行交互. 持久对象通过Session对象保存和检索. 会话对象不应长时间处于打开状态,因为它们通常都不是线程安全的,因此应根据需要创建和销毁它们.
事务对象: 事务代表的工作单元,大多数RDBMS支持事务功能. 在Hibernate中,事务由基础事务管理器和事务(来自JDBC或JTA)处理. 这是一个可选对象. 休眠应用程序可能不会选择使用此界面网页开发框架,而是使用自己的应用程序代码来管理事务.
查询对象: 查询对象使用SQL或Hibernate查询语言(HQL)字符串来检索数据并在中创建对象. 查询实例用于连接查询参数,限制查询返回的结果数并最终执行查询.
条件对象: 条件对象用于创建和执行面向规则的查询以检索对象.
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/ruanjian/article-153555-1.html
其实在高离婚率的背景下男女失衡其实并不严重顶多是晚婚现象严重很到30多岁后才能结婚