java框架设计
软件架构作为一个概念,体现在技术和业务两个方面。
从技术角度来说:软件架构随着技术的革新不断地更新其内容,软件架构建立于当前技术和一些基本原则的基础之上。
先说一些基本原则:
分层原则:分层是为了降低软件深度复杂性而使用的关键思想,就像社会有了阶级一样,软件有了层次结构。
模块化原则:模块化是化解软件广度复杂的必然手段,模块化的目的就是让软件分工。
接口实现分离原则随着软件模块化的不断深入改进,面向接口编程而不是面向实现编程可以让复杂度日趋增高的软件降低模块之间的耦合度,从而让各模块更轻松改进。从这个原则出发,软件也从微观进行了细致的规范化。
还有两个比较小但很重要的原则:
细节隐藏原则很显然把复杂问题简化,把难看的细节隐去,能让软件结构更清晰。其实这个原则使用很普遍,java/c++语言中的封装原则以及设计模式中的Facade(外观)模式就很能体现这个原则的精神。
依赖倒置原则随着软件结构的进一步发展,层与层之间、模块与模块之间的依赖逐渐加深,而层、模块的动态可插拔要求不端增大。依赖倒置原则可看视为接口实现分离原则的深化,根据此原则的精神,软件进入了工具时代。这个原则有点类似于知名的好莱坞法则:Don't call us, we'll call you。
以上这些原则奠定了我们的软件架构的价值指标。但软件架构毕竟是建立在当前技术之上的。而每一代技术都有架构模式。过去的不再说了,让我们就来看一下当前流行的技术,以及当前我们能采用的架构。
因为面向对象是当前最流行开发技术,且设计模式的大量使用使面向对象的走向成熟,而数据库是当前最有效的存储结构、web界面是当前最流行的用户接口,所以当前最典型的三层次架构就架构在以上几项技术的基础之上,用数据库作存储层、用面向对象来实现业务层、用web来作为用户接口层。我们从三层次架构谈起:
因为面向对象技术和数据库技术不适配,所以在标准三层次架构的基础上,我们增加了数据持久层,来管理O-R双向映射,但目前一直没有最理想的实现技术。cmp和entity bean技术因为其实现复杂,功能前景有限,已接近被淘汰的边缘。JDO及hibernate作为o-r映射的后期之秀,尤其是hibernate,功能相当完备。推荐作为持久层的首选
在业务层,因为当前业务日趋负载,且变动频繁,所以我们必须有足够敏捷的技术来保证我们的适应变化的能力,在标准j2ee系统中session bean负责业务处理,且有不错的性能表现,但采用ejb系统对业务架构模式改变太大,且其复杂而昂贵,业务代码移植性差。而spring 作为一个bean配置的轻量级架构,漂亮的IOC模式实现,对业务架构影响小,所以推荐作为中间层业务框架。
在用户结构层,虽然servlet/jsp/jstl/javaBean 能够实现MVC架构,但终究过于粗糙。struts对MVC架构的实现就比较完美,Taperstry也极好地实现MVC架构,且采用基于事件的方式,非常诱人,惜其不够成熟,我们仍旧推荐struts作为用户接口层基础架构。
因为业务层是三层次架构中最有决定意义的,所以让我们回到业务层细致地分析一下,在复杂的业务我们常常需要以下基础服务的一种或几种:事务一致 性服务acid(tool:jta/jts)、并发加锁服务concurrent&&lock、池化管理服务cache、访问控制服务(tool:jaas)、流程控制服务workflow、动态实现服务IOC,串行化消息服务(tool:jms)、负载平衡服务blance等。如果我们不采用重量级应用服务器(如weblogic,websphere,jboss等)及重量级组件(EJB),我们必须自己实现其中一些服务。虽然我们大 多情况下,不需要所有这些服务,但实现起来却非易事。幸运的是我们有大量的开源实现代码,但采用开源代码却常常是件不轻松的事。
随着xml作为结构化信息传输和存储地位日渐重要,一些xml文档操作工具(DOM,Digester,SAX等)的使用愈发重要,而随着 xml schema的java binding工具(jaxb,xmlbean等)工具的成熟,采用xml schema来设计xml文档格式,然后采用java binding来生成java bean 会成为主要编程模式,而这又进一步使数据中心向xml转移,使在中小数据量上,愈发倾向于以xquery为查询语言的xml数据库。现还有一个趋势, microsoft,ibm等纷纷大量开发中间软件如(microsoft office之infopath),可以直接从xml schema 生成录入页面等非常实用的功能。还有web service 的广泛应用,都将对软件的架构有非常重大的影响。至于面向服务架构(SOA)前景如何,三层次架构什么时候走入历史,现还很难定论。
aop的发展也会对软件架构有很深的影响,但在面向对象架构里,无论aspectJ还是jboss-aop抑是aspectWerks、 nanning都有其自身的严重问题:维护性很差,所以说它将很难走远。也许作为一个很好的思想,它将在web service里大展身手。
rdf,owl作为w3c语义模型的标志性的语言,也很难想象能在当前业务架构发挥太大影响。但如果真如它所声称那样,广泛地改变着信息的结构。那么对软件架构也会有深远影响。
⑵ 什么是java五大框架
一、五大框架是:
1、struts2
2.servlet
3.hibernate
4.spring
5.mybatis
二、拓展:
1、Spring是什么:
Spring是一个轻量级的DI和AOP容器框架。
说它轻量级有一大部分原因是相对与EJB的(虽然本人从没有接触过EJB的应用),重要的是,Spring是非侵入式的,基于spring开发的应用一般不依赖于spring的类。
2、Struts2 是一个相当强大的Java Web开源框架,是一个基于POJO的Action的MVC Web框架。它基于当年的Webwork和XWork框架,继承其优点,同时做了相当的改进。Struts2现在在Java Web开发界的地位可以说是大红大紫,从开发人员的角度来分析,Struts2之所以能够如此的深入开发人员之心,与其优良的设计是分不开的。
⑶ java框架有哪些常用框架
十大常用框架:
一、
二、Spring
三、Mybatis
四、Dubbo
五、Maven
六、RabbitMQ
七、Log4j
八、Ehcache
九、Redis
十、Shiro
⑷ Java 设计框架 设计模式
不大一样,框架更大一点,设计模式更细致一些。
可以理解为设计模式的模式。比如我们经常用到的MVC模式,尽管我们叫他模式,但实际上它是一个设计框架,里面包含了很多对其他模式的运用。
⑸ 有java框架spring开发的团队吗为什么java框架就不能设计好一点呢使用起来多麻烦啊!
SpringMVC太过复杂,建议使用Struts2作为MVC框架,也就是大名鼎鼎的SSH整合框架。
另外很多程序员喜欢XML,其实XML配置要比编程式配置要明了的多。
但是现在也有一种趋势,不用XML改用Java注解。
另外Spring的Jar包依赖做的不错了,很多都是单向依赖,包内聚合度还是很高的。
除了Spring开头的Jar包,好像也就是依赖Commons,Log4J了吧,
如果要用AOP,好像还要aopalliance-1.0.jar
希望楼主戒骄戒躁,努力学习。
既然觉得框架太难用,何不自己写一个。
其实不仅仅是MVC框架,IOC容器,持久层框架,都可以尝试自己写一写。
就算是写不了那么完美,也能大约明白一定的原理,对于更好的理解,使用框架是有帮助的。
⑹ 如何学好Java框架,Java框架有那些
Java是现阶段中国互联网公司中,覆盖度最广的研发语言,掌握了Java技术体系,不管在成熟的大公司,快速发展的公司,还是创业阶段的公司,都能有立足之地。
学习Java技术体系,设计模式,流行的框架与组件是必不可少的:
常见的设计模式,编码必备
Spring5,做应用必不可少的最新框架。
MyBatis,玩数据库必不可少的组件。
二:工程化与工具
工欲善其事必先利其器,不管是小白,还是资深开发,玩Java技术体系,选择好的工具,提升开发效率和团队协作效率,是必不可少的:
Maven,项目管理
Jenkins,持续集成
Sonar,代码质量管理
Git,版本管理
三:分布式架构
高并发,高可用,海量数据,没有分布式的架构知识肯定是玩不转的:
分布式架构原理
分布式架构策略
分布式中间件
分布式架构实战
四:微服务架构
业务越来越复杂,服务分层,微服务架构是架构升级的必由之路,Java技术体系,和微服务相关的技术有哪些呢?
微服务框架
Spring Cloud
Docker与虚拟化
微服务架构
五:性能优化
任何脱离细节的ppt架构师都是耍流氓,向上能运筹帷幄,向下能解决一线性能问题,Java技术体系,需要了解:
性能指标体系
JVM调优
Web调优
DB调优
六:底层知识
从架构设计,到应用层调优,再深入了解底层原理,扎实的Java基本功才能让自己变为扫地神僧:
内存模型
并发模式
线程模型
锁细节
⑺ Java中的框架技术
1. Apache Struts框架
Struts框架是一开源产品,基于模型-视图-控制器(MVC)设计范例来开发Web应用软件。它使用并且扩展了Java Servlet API,最初由Craig McClanahan创建。在2000年5月,它被捐赠到Apache Foundation。Struts框架展示了一个强有力的定制标签库,平铺显示,表单检验和I18N(国际化)。另外,Struts支持许多描述层,包括JSP,XML/XSLT,JavaServerFaces(JSF)和Velocity;还支持一些模型层,包括JavaBeans和EJB。
2. Spring框架
Spring框架是一个分层的Java/J2EE应用程序框架,基于Expert One-on-One J2EE设计和发行的代码。Spring框架提供一种简单的开发技术,用于自动化处理工程中大量的属性文件和助理类。
Spring框架包括的主要特色有:
1 强有力的基于JavaBeans的配置管理,使用Inversion-of-Control(IoC)原则。
2 一个核心bean工厂,可用在任何环境,从applets到J2EE容器程序。
3 通用的抽象层适合于数据库事务管理,允许可插入的事务管理器,并且不需要处理低层次的问题就可容易地划分各事务的界限。
4 一个很有意义的异常处理的JDBC抽象层。
5 与Hibernate集成到一起,DAO实现支持以及事务策略。
3. Hibernate框架
Hibernate是一适合于Java语言的对象-关系映射(ORM)解决方案。它也是开源软件,类似Struts,并且在LGPL保护下发布。Hibernate被一群来自世界各地的Java软件开发者所共同开发。它提供一个易用的框架来实现把一个面向对象的域模型映射到一传统的关系数据库。它不仅负责从Java类到数据库表格(以及来自Java数据类型的SQL数据类型)的映射,而且还提供数据查询和检索能力,并能大大减少花在SQL和JDBC手工数据处理上的开发时间。
Hibernate的目标是减轻开发者的与大量普通的数据持续性相联系的编程任务。Hibernate还能够适应开发进程,无论它是刚开始设计还是来自一现成的数据库。Hibernate可以自动生成SQL,使开发者摆脱了手工处理结果集和进行对象转化的繁琐任务,并能使应用程序移植到所有的SQL数据库。它还能提供透明的持续性,对持续性类的唯一的要求的是实现一个无参数的构造器。
这个框架典型地使用在JavaSwing应用软件、基于Servlet的Java应用软件和使用EJBsession beans的J2EE应用软件中。
⑻ 如何设计一款Java框架
这个话题比较大,还得看具体用于何领域。
一般来说框架的设计首先要考虑其稳定性和通用性,应足够灵活和健壮,能满足可预想的各种应用场合的要求,不至于需要经常调整修改。
通常稳定、通用和灵活、多功能的要求是矛盾的,所以框架应是可定制、可插拔的,以解决这个矛盾。
总之,框架的设计需要有比较丰富的设计经验,这样才能确保可以考虑得比较全面、设计质量比较高,而且往往要经过比较长时间的实际应用检验才能真正成熟完善。
个人看法,仅供参考。
⑼ Java框架有哪些要学哪个
ssh:spring,Springmvc,hibernat
ssm:spring,Springmvc,mybatis(ibatis)(mybatis-plus)
后来的springboot,springcloud等
可以先学习javaSE语法等,然后开始写简单的servlet项目,然后可以开始一个简单的ssm项目可以参考下这个,特别详细:网页链接
这些都懂点了,可以看看springboot项目,算是目前最流行的了吧
⑽ 怎么开发Java的框架呢
Struts2
Struts2
是一个
web
应用框架。它不是一个
Struts
的新的发布版本,而是一个全新的框架。
Struts2
是
第二代基于
Model-View-Controller (MVC)
模型的
web
应用框架。
Struts2
是
java
企业级
web
应用
的可扩展性的框架。
它是
WebWork
和
Struts
社区合并后的产物。
这一版本的
Struts2
声称,
Struts2
会接近于原先版本
Struts
,
并且会更容易使用。
Struts2
没有继承
struts 1
的血统,
而是继承了
webwork
的血统。
Struts2
和
Struts
的构建是社区开发模式的最好实践和证明。事实上,第一版本的
Struts
设计的第一目
标就是使
MVC
模式应用于
web
程序设计。
在过去
10
年,
Struts
在更好的
web
应用方面所做的工作是
值得肯定的。在某些方面,
Struts
社区注意到这一框架的局限性,但在这个活跃的社区里,自动识别弱点
和顽强不屈的精神,使得克服这些弱点是不困难的。
在深入学习
MVC
运行模式并同时引入一些新的建筑
学方面的设计理念后,新的
Struts2
框架结构更清晰,使用更灵活方便。
这一新的结构包含应用逻辑的
横切面拦截器,
基于注释的配置以减少和去除
XML
形式的配置文件,
功能强大的表达式语言,
支持可更改、
可重用
UI
组件的基于微
MVC
的标签库。
Struts2
有两方面的技术优势,一是所有的
Struts2
应用程序
都是基于
client/server HTTP
交换协议,
The Java Servlet API
揭示了
Java Servlet
只是
Java API
的一个很小子集,这样我们可以在业务逻辑部分使用功能强大的
Java
语言进行程序设计。
Struts
Struts
是一个基于
Sun J2EE
平台的
MVC
框架,
主要是采用
Servlet
和
JSP
技术来实现的。
由于
Struts
能充分满足应用开发的需求,简单易用,敏捷迅速,在过去的一年中颇受关注。
Struts
把
Servlet
、
JSP
、
自定义标签和信息资源
(message resources)
整合到一个统一的框架中,
开发人员利用其进行开发时不用
再自己编码实现全套
MVC
模式,极大的节省了时间,所以说
Struts
是一个非常不错的应用框架。
【
StrutsIDE
:用于
Struts
辅助开发的一个
Eclipse
插件】
EasyJWeb
EasyJ
Web
是基于
java
技术,
应用于
WEB
应用程序快速开发的
MVC
框架,
框架设计构思来源于国内众
多项目实践,框架充分借签了当前主要流行的开源
Web
框架(
Struts
、
JSF
、
Tapestry
、
Webwork
),
吸取了其优点及精华,利用
Velocity
作为模板页面引擎,是一个实现了页面及代码完全分离的
MVC
开发
框架。是一个能实现中小型
Web
应用系统快速开发的简易
Web
框架。
通过
EasyJWeb Tools
提供的配套开发工具,可以实现基于
EasyJWeb
框架的
Web
应用快速开发,
包括常用应用软件的代码自生成、数据库添删改查(
CRUD
)代码生成、自动页面模版生成、配置文件管
理等。
框架特点:
1
、
零配文件置支持
。以前我们每接触一个框架,开始总都要被他的配置文件折腾一番。
EasyJWeb
实现零配置支持,可以不写一句配置文件就在框架基础上构建你的运用。(适合小型网站系统)。
2
、
简易的模板页面设计支持
:放弃使用
jsp
,使用简单
Velocity
脚本语言作为页面模板。
3
、
页面程序完全分离:
实现显示页面与程序逻辑的完全分离,克服了传统
jsp
页面难于维护的问