java 如何领悟Java三大框架?
如何领悟Java三大框架?
Hibernate:
Hibernate主要通过ORM(对象关系映射)和框架配置文件来实现。让实体类和数据库表一一对应。让实体类先对应数据库表,让实体类的属性逐一对应数据库表中的字段。这样,就不需要操作数据库表,而需要操作表中相应的实体类对象。以实现相应的添加、删除、修改和查询操作。
Mybatis不是一个完整的ORM框架。mybatis的SQL需要开发人员自己编写,但是它也提供了输入和输出的自动映射,因此可以认为它是一个半自动的ORM框架。Mybatis可以灵活配置SQL语句通过XML或注解运行,映射Java对象和SQL语句生成最终SQL,最后映射SQL执行结果生成Java对象,对于客户需求的变化更为灵活。但灵活性的前提是mybatis不能独立于数据库。如果需要实现支持多个数据库的软件,则需要自定义多组SQL映射文件,这是一个繁重的工作负载。Hibernate具有很强的对象关系映射能力和良好的数据库无关性。
Struts2:
Struts2处理请求是为每个请求创建一个单独的操作类。action类中的字段属性参数用作输入和输出参数,IOC用于依赖注入。它是基于类的开发。
类似地,SpringMVC使用输入请求和响应作为参数,并返回modelandview,这是一种单例模式和基于方法的模式。
Spring:Spring的核心概念是di(依赖注入)和AOP(面向方面编程)。Di也称为IOC(控制反转)。使用spring,可以通过IOC从spring容器中获取所有对象。每个物体通过弹簧注入到相应的位置。通过IOC,spring可以在下一个对象注入(DI)之前创建对象,因此DI依赖于IOC。
Service层和Dao层真的有必要每个类都加上接口吗?
这主要取决于您的项目:
例如,如果项目中使用hibernate,以后可能会切换到mybatis,那么Dao需要使用该接口。这不会影响上层代码的更改。
另一个例子是,项目是一个单一的应用程序。任何代码修改都需要重新编译整个项目,因此不需要接口。如果项目是由模块编译和部署的,那么可以使用接口解耦。假设修改了Dao,只需要重新编译和部署Dao模块,而不影响上层模块。
此外,如果项目团队中有许多新手,简单的代码结构可能更合适。复杂项目结构的学习成本较高。
如果工程进度非常紧迫,我们可以用简单粗暴的方式用经济成本来说明原因。
使用接口的成本是不使用接口的成本(包括后续维护成本)。
如果项目变化很大,部署了模块,项目不急,使用接口的成本比不使用接口的成本低,虽然早期不使用接口似乎更简单;相反,不使用接口的成本低,而且连框架都不能用~
毕竟工具是提高效率的,那你为什么不能和自己相处呢!
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。