很久没有来过Jdon了,感觉陌生了许多,也许有人看了我的标题以为我是一个ROR的鼓吹手,其实,刚好相反,基于现在开发的现状,我觉得JAVA阵营有必要站稳阵脚,分析清楚技术的走向,毕竟都涉及到我们的饭碗前途问题。

之前有人问我这么几个问题:Java除了做Web还能做什么?Java做一个项目为什么要用这么多框架?问题没有标准答案,答案大家都比我清楚,这个我就不多说了。但是使我想到的是,的确,Java是越来越复杂了,JDK的速度发展惊人,之前的tiger 5.0,今年刚出炉的mustang 6.0,还有即将出台的dolphin.我越来越感叹Java程序员的辛苦。特别是面对众多的选择,有开源的,也有商业化成熟的产品,虽说框架工具不是重要,重要的是OO思想,设计模式,但实际操作起来,框架的选择还是十分重要的,如果项目开始选择错误的话,将会面临严重的成本的危机。由于我的能力和实际经验有限,先说说本人对JAVA各层框架的理解。

先从页面层说起,页面的技术五花八门,标准的Taglib和jsp,虽然说是工业标准,侵入性太强,却是累活,脏活,对前台设计十分不友好,一些前台设计师就发难了,说逻辑和页面混合起来,还怎么开发啊?于是才有了struts,webwork类的web框架MVC模式。听说Model Macth开源的Fastm项目在解决非侵入性方面非常棒,一直都找不到相关例子。页面层的工作通常是最多的,是面向客户的,所以现在一些RIA应用兴旺起来的根本原因是要最大程度地满足客户的需求。在这层Java阵营可以说是败了,UI开发不方便的同时,也没有VS.NET拖曳式开发的好处,既要对开发设计人员所见即所得,又要对客户展现富客户端的优势,这点我预测就是最近几年页面层技术发展的方向。

然后说Web层,Web层是最不好选的,但如果想支持一些RIA的应用,诸如Ajax,Flex,就只能用JSF。其他的框架各有优点,Struts成熟用户群大,有很好的标签库,而webwork用起来简捷方便,有利于TDD,适合用于小项目开发;tapastry很完美,可惜入手太难了。

再说业务逻辑层,选择视乎不是很多,要实现集群,负载均衡的用Ejb,

灵活轻便,面向测试的就选择Spring Framework.JBoss Seam和Jdon Framework没有用过,不过看起来也是很简便的。这层的核心是当前的主流IOC和AOP,相信大家也不会有所争议的。这里才是程序员真正关心的。可是跟逻辑业务无关的操作实在是太多了。

最后的OR层,Hibernate,Ibatis,Toplink,JPA,都是杰出的代表,是应用系统中最难的地方,涉及到DDD和OO,不能简单的以为做OR层就是分页+CRUD+缓存,提高性能和效率是OR层也就是持久化层的最终目的。

实现SOA不在我们程序员的目光内,对,它是必然趋势,但是是针对项目管理者的。SOA现在还离我们很远,只能静观其变。

Java也许它的使命就是解决复杂的应用,我们能从ruby,phython之类的语言学到什么吗?回归原点,项目的关键不在技术,而在于需求。我们不能再陶醉在JAVA的海洋里自我满足了,无论ROR,.NET里面也有很好的思想,它们也有庞大的社区,也有在前进。JAVA的优势是众多的组件,类库,框架可供选择,但怎样才能不让我们的优势不变劣势呢?这是我们要仔细思量的。

框架层 java_简单就是美!浅谈java各层框架。相关推荐

  1. php tp框架,浅谈PHP之ThinkPHP框架使用详解

    Thinkphp框架其精髓就在于实现了MVC思想,其中M为模板.V为视图.C为控制器,模板一般是公共使用类,在涉及数据库时,一般会跟数据表同名,视图会和控制器类里的方法进行名字的一一对应. 下载及配置 ...

  2. file相对路径java_浅谈java 中文件的读取File、以及相对路径的问题

    一.对于java项目中文件的读取 1.使用system 或是 系统的properties对象 ①直接是使用 string relativelypath=system.getproperty(" ...

  3. java方法区对象类型_浅谈Java内存区域与对象创建过程

    一.java内存区域 Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域.这些区域都有各自的用途,以及创建和销毁的时间,有的区域随着虚拟机进程的启动而存在,有的区域则 ...

  4. JAVA如何输出六角形,浅谈 Java 六边形架构

    原标题:浅谈 Java 六边形架构 dzone.com/articles/demonstration-of-hexagonal-architecture-in-java 六边形架构首先是一种设计模式, ...

  5. java中单例的应用_浅谈Java中单例模式的几种应用

    目录 浅谈Java中单例模式的几种应用 第一种:懒汉式 第二种:饿汉式 第三种:双重检索式 第四种:注册登记式 第五种:内部类形式 浅谈Java中单例模式的几种应用 日常开发中,为了提高我们系统中对象 ...

  6. 浅谈Java多线程机制

    浅谈Java多线程机制 (-----文中重点信息将用红色字体凸显-----) 一.话题导入 在开始简述Java多线程机制之前,我不得不吐槽一下我国糟糕的IT界技术分享氛围和不给力的互联网技术解答深度. ...

  7. java 中的单元测试_浅谈Java 中的单元测试

    单元测试编写 Junit 单元测试框架 对于Java语言而言,其单元测试框架,有Junit和TestNG这两种, 下面是一个典型的JUnit测试类的结构 package com.example.dem ...

  8. java的byte php_java_浅谈java的byte数组的不同写法,(由于篇幅原因阐述的不够详 - phpStudy...

    浅谈java的byte数组的不同写法 (由于篇幅原因阐述的不够详细科学,不喜勿喷). 经常看到java中对byte数组的不同定义,粗略整理的一下: 一个字节(byte)=8位(bit),"b ...

  9. 浅谈Java中的Set、List、Map的区别

    就学习经验,浅谈Java中的Set,List,Map的区别,对JAVA的集合的理解是想对于数组: 数组是大小固定的,并且同一个数组只能存放类型一样的数据(基本类型/引用类型),JAVA集合可以存储和操 ...

最新文章

  1. Problem 60 关于解决X11的错误的问题?
  2. mysql 大写 小写_Mysql大小写敏感的问题
  3. Windows 7系统如何重装或安装IE8?
  4. 红帽linux系统轴控系统,红帽发布企业版 Linux(RHEL) 8.0
  5. LeetCode 1061. 按字典序排列最小的等效字符串(并查集)
  6. 苹果2020年全系展望:iPhone12不会去掉刘海但5G是必须的
  7. php igbinary_php_igbinary.dll,下载,简介,描述,修复,等相关问题一站搞定_DLL之家
  8. ENVI入门系列教程---一、数据预处理---2.1自定义坐标系
  9. java生成mib文件_【snmp】使用MIB Builder生成MIB文件
  10. 阳光牧场助手 阳光牧场外挂
  11. mysql id自增 SQL语句_sql语句id自增的问题
  12. 云联惠认证身份_在秘乐短视频上实名认证了,输入了手机号,身份证号码,姓名,人脸识别,会被网贷吗?...
  13. 1.4亿在线背后-QQ-IM后台架构的演化与启示
  14. html5中加下划线,为超链接添加下划线
  15. PLC有几种编程语言?各有什么特点?
  16. 洛谷 U19159 采摘毒瘤
  17. 微软在文件夹里插广告,把用户恶心到了,官方:试验功能,不小心推送了!...
  18. Go语言处理Windows系统的图标ICO文件(上)
  19. 如何利用Parsec+Zerotier+moon实现云电脑云游戏
  20. linux学习-安装centos

热门文章

  1. 【代码笔记】Web-JavaScript-JavaScript表单验证
  2. Visual Studio Code 显示隐藏的.git文件和目录
  3. python 开源数据抓取框架scrapy
  4. House Robber
  5. Spark源码走读10——Spark On Yarn
  6. 华为收购港湾核心业务 6年恩怨尘埃落定
  7. 算法63----丑数【动态规划】
  8. 进程的内存空间相互隔离
  9. leetcode练习:292. Nim Game
  10. 最简单的ajax示例