Java框架概述_普通网友的博客-程序员秘密_java框架的理解

一、框架的意义
1.什么是框架?
框架就是一些类和接口的集合,通过这些类和接口协调来完成一系列的程序实现。有了框架,我们就可以集中精力进行业务逻辑的开发而不用去关心它的技术实现以及一些辅助的业务逻辑。
说白了,框架就是封装好方便程序员操作的类,使项目的开发更简单,维护起来也更容易。
框架的本体,实际上是一些jar包和配置文件。
2.为什么要使用框架?
框架的优越性在于:
(1)集中精力完成系统的业务逻辑设计;
(2)使程序更容易扩展和维护,稳定性更强;
(3)处理系统很多细节问题,比如安全性问题。

二、框架的使用
(1)导入相关的jar包
(2)配置项目配置文件(比如web.xml),让项目用框架处理各种行为
(3)添加框架配置文件(比如struts-config.xml),设定框架如何处理各种行为(比如接收到某个请求时,调用哪个类处理)
(4)编写业务逻辑(继承、实现框架中的类、接口),完成具体处理操作。

三、MVC编程架构
1.什么是MVC?
MVC是一种编程架构,它强制性的使应用程序的输入、处理和输出分开。使用MVC应用程序被分成三个核心部件:模型、视图、控制器。它们各自处理自己的任务。
M:Model(模型),业务逻辑。
V:View(视图),用户界面。
C:Controller(控制器),协调业务逻辑(M)和用户界面(V)。

2.举例
最典型的MVC就是JSP + servlet + javabean的模式:
M:接收控制器(C)传来的指令,完成业务逻辑,进行数据库操作,然后将数据传给【控制器(C)或者视图(V)】
V:获取【控制器(C)或者模型(M)】传来的数据,将结果渲染到用户界面上。
C:截获用户请求,调用业务逻辑(M)完成操作(,然后将数据传递给用户界面(V))
M将数据传给C
M将数据直接给V

3.主流MVC架构:SSH和SSM
(1)SSH:Struts2做控制器(C),Spring管理各层的组件,Hibernate负责持久化层。
(2)SSM:SpringMVC做控制器(C),Spring管理各层的组件,MyBatis负责持久化层。
(3)共同点:
①Spring依赖注入DI来管理各层的组件。
②使用面向切面编程AOP管理事物、日志、权限等。
(4)不同点:
①Struts2和SpringMVC 控制器(C)控制视图和模型的交互机制的不同,
②Struts2是Action类级别,SpringMVC是方法级别,更容易实现RESTful风格。
(5)SSM和SSH不同主要在MVC实现方式,以及ORM持久化方面不同(Hiibernate与Mybatis)。SSM越来越轻量级配置,将注解开发发挥到极致,且ORM实现更加灵活,SQL优化更简便;而SSH较注重配置开发,其中的Hiibernate对JDBC的完整封装更面向对象,对增删改查的数据维护更自动化,但SQL优化方面较弱,且入门门槛稍高。

四、各框架简介【待补充修改】
1.Spirng
Spring提供了管理业务对象的一致方法,并且鼓励了注入对接口编程而不是对类编程的良好习惯。Spring的架构基础是基于使用JavaBean属性的Inversion of Control容器。然而,这仅仅是完整图景中的一部分:Spring在使用IoC容器作为构建完关注所有架构层的完整解决方案方面是独一无二的。
Spring提供了唯一的数据访问抽象,包括简单和有效率的JDBC框架,极大的改进了效率并且减少了可能的错误。Spring的数据访问架构还集成了Hibernate和其他O/R mapping解决方案。Spring还提供了唯一的事务管理抽象,它能够在各种底层事务管理技术,例如JTA或者JDBC事务提供一个一致的编程模型。Spring提供了一个用标准Java语言编写的AOP框架,它给POJOs提供了声明式的事务管理和其他企业事务–如果你需要–还能实现你自己的aspects。这个框架足够强大,使得应用程序能够抛开EJB的复杂性,同时享受着和传统EJB相关的关键服务。Spring还提供了可以和IoC容器集成的强大而灵活的MVC Web框架。

2.Struts2

3.Hibernate
Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序实用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。

4.SpringMVC
5.Mybatis

如需要更多的java学习资料可私信小编“学习”获取哦~

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/yoyo31/article/details/117846161

智能推荐

【go-zero】go-zero开发环境 如何聚合所有api? caddy反向代理服务分发 微服务设计api聚合方法 best practice_CTRA王大大的博客-程序员秘密_gozero 多个api文件

【go-zero】best practicego-zero开发环境 如何聚合所有api? caddy反向代理服务分发 微服务设计api聚合方法

linux内核创建软链接过程,Linux内核2.4.18创建符号链接的系统调用sys_symlink分析_weixin_39647458的博客-程序员秘密

(1)调用路径:sys_symlink->vfs_symlink->ext2_symlink(2)代码asmlinkage long sys_symlink(const char * oldname, const char * newname){int error = 0;char * from;char * to;from = getname(oldname);//原文件名if(IS...

SMTP 协议,验证 Email 地址_Happy灬涛的博客-程序员秘密_smtp验证电子邮件地址

Email 是最常用的用户识别手段。开发者常常需要验证邮箱的真实性。一般的方法是,注册时向该邮箱发出一封验证邮件,要求用户点击邮件里面的链接。但是很多时候(比如要搞邮件营销时),拿到的是成千上万现成的 Email 地址,不可能通过回复确认真实性,这时该怎么办呢?答案就是使用 SMTP 协议。本文将介绍如何通过该协议验证邮箱的真假。另外,结尾处还有一则

防火墙技术_网工blog的博客-程序员秘密_防火墙技术

防火墙概述目前保护网络安全的主要手段就是构建防火墙基本思想:让所有对系统的访问通过某一点,并保护这一点,并尽可能地对外界屏蔽保护网络的信息和结构,它设置在可信的内部网络或不可信任的外界之间,可以实施比较广泛的安全政策来控制信息流,防止不可预料的潜在入侵破坏。防火墙的作用确保Intenet用户的所交换信息的安全,防火墙位于内部网络Web站点与Intenet之间的一个路由器或一台计算机安全策略有以下两种:凡是没有被列为允许访问的服务都是被禁止的凡是没有被列为禁止..

随便推点

Java 基础(2)----基本语法一_雅静8的博客-程序员秘密

Java学习 Java基础(2)—-基本语法一目录关键字标识符变量基本数据类型基本数据类型转换正文关键字 知识点总结:定义:关键字是电脑语言里事先定义的,有特别意义的标识符,有时又叫保留字,还有特别意义的变量。Java的关键字对Java的编译器有特殊的意义,他们用来表示一种数据类型,或者表示程序的结构等。关键字不能用作变量名、方法名、类名、包名和参数。java中包含50个关键,关

存储系统_小良bety的博客-程序员秘密_存储系统

3.1 存储系统的概述3.1.1 存储器是计算机五大组成部分之一,用于存储程序和数据。利用不同容量,成本,功耗和速度的多种存储器构成有机结合的多极存储系统。3.1.2 三级存储系统的组成组成:内存储器,外存储器,高速缓冲存储器(cache)由于CPU和内存储器的速度差异较大,造成CPU资源浪费,从而引入Cache减小速度差异。3.1.3 存储器的分类二进制代码位是存储器中最小的存储单位,称为存储位元,由若干个存储位元组成一个存储单元,由多个存储单元组成一个存储器。内存可以分为主存和c

linux驱动杂谈1_dog250的博客-程序员秘密

前段时间看了linux驱动框架,现在有个具体的scsi驱动分层结构,自然在理解了整个驱动大框架以后,这个曾经的庞然大物就变得很简单了,首先: static int __init init_sd(void) {          int majors = 0, i;          SCSI_LOG_HLQUEUE(3, printk("init_sd: sd driver

初中生学Java开发有前景吗_m0_67402236的博客-程序员秘密_java中学生

初中生学Java开发有前景吗学Java手机开发有什么优势Java手机开发工程师前景好吗据北大青鸟华工学校的专业老师分析。作为唯一在互联网上开发的语言,Java平台以其移动性、安全性和开放性受到追捧。据IDC预计,自2001年起的其后5年内,采用Java的IT产品的价值将翻番,在2006年将达到4.53亿美元,年增长率为14.9%。截止到2003年5月,Java注册开发商超过300万人,对JRE(Java运行环境)的下载达7200万次。詹姆斯·戈士林博士预计在3~5年内Java技术开发商将发展到1000万。

关于halcon内参转OpenCV内参_Caps_Qi的博客-程序员秘密

这样转靠谱吗?废话不多,先上代码void CCeresProblem::halconToCvParam(HTuple camParam, cv::Mat &cvParam, cv::Mat &D){ D = (cv::Mat_<double>(1, 5) << 0, 0, 0, 0, 0); cvParam = (cv::Mat_<double>(3, 3) << 0, 0, 0, 0, 0, 0, 0, 0, 0); HT

opencv和halcon标定参数结果对比_冯相文要加油呀的博客-程序员秘密_opencv对比halcon

在Stake Overflow里面有人讨论过这个问题,当我们用Opencv和halcon一起编程序的时候,需要考虑两者参数的不同,现在碰到的问题就是,我在已经知道内参矩阵的前提之下,想要求出外参矩阵,而内参是用halcon求出来的,vs中想用opencv写标定外参的程序,两者的参数表达方式不一样。c++ - HALCON to OpenCV Distortion Coefficients Convertion - Stack Overflow在HALCON中有两种标定方式首先是面扫描(多项...

推荐文章

热门文章

相关标签