从2006年开始,我就在建设自己的网站,从2008年到2011年,我托管了四年自己的服务器,那时阿里云还没有兴起,只能自己买服务器,放到托管商机房里去,他们给你一个IP。机器全部是自己运维。

IBM内部使用的是自家的JDK,俗称J9,性能据说宇宙第一强。我也是对它喜爱有加。但我觉得IBM对Java世界的最大贡献当属Eclipse,这个IDE直接给JBuilder送了终,以至于JBuilder2005之后的版本也采用了Eclipse的插件体系。其实JBuilder和Net beans的技术路线我还是很看好的,估计是Borland公司销售不利导致了后续版本开发的无以为继,Borland的Delphi/C++Builder的相继衰落也证实了这一点,即使最后垮掉,也不肯开源,这是让我最痛恨的一点。

有了Eclipse作为基石,IBM众多产品开始百花齐放,一时在Java中间件世界里风头无两,尤以WebSphere和Rational两大家族的产品为甚。当时,如果国内某个企业级的软件采用osgi架构,绝对是时尚,是实力的标志。为何这么说?一方面是osgi本身先进,有足够的弹性,驾驭它要对它足够了解;另一方面也是复杂性,能玩转它的公司不多。

为此,我还买了一本osgi的专著。现在已经在我书架的某个角落里积满了灰尘。

有一阵子,我迷恋SWT界面开发,它和原生的windows应用一样,让我有了VC程序员的成就感。我还搞过一段时间的Eclipse RCP开发,认为它符合未来桌面端应用的趋势。

可惜,好景不长,以ajax为基础的web2.0迅速兴起,jquery,dojo,ExtJS一堆的前端框架雨后春笋般冒了出来,它们开发的界面又好看,开发效率也快,当然还有先天性的优势:容易部署和更新。

于是乎,我的重心开始转移,关注起Spring, Restful应用的开发。开源世界的快速发展,导致IBM也不得不转向,推出了轻量级的web container即Liberty。虽然是轻量级,但osgi不能丢,模块化、可配置化这些现代化的特征不能丢,也就是说,一个个feature都是可拆卸的。模块化的思想由来已久,但是在应用服务器领域走过了一段艰难的旅程。有人说,中间件复杂度和操作系统不相上下,WAS就是典型例子,WAS几百万的代码量也验证了这一点。

我和Java这些年的故事(六)的更多相关文章

  1. Java反射的小故事

    Java反射的小故事: 首先定义一个Java类 package com.xiaoysec.test; public class Person { private String name; privat ...

  2. java之jvm学习笔记六-十二(实践写自己的安全管理器)(jar包的代码认证和签名) (实践对jar包的代码签名) (策略文件)(策略和保护域) (访问控制器) (访问控制器的栈校验机制) (jvm基本结构)

    java之jvm学习笔记六(实践写自己的安全管理器) 安全管理器SecurityManager里设计的内容实在是非常的庞大,它的核心方法就是checkPerssiom这个方法里又调用 AccessCo ...

  3. JAVA之旅(十六)——String类,String常用方法,获取,判断,转换,替换,切割,子串,大小写转换,去除空格,比较

    JAVA之旅(十六)--String类,String常用方法,获取,判断,转换,替换,切割,子串,大小写转换,去除空格,比较 过节耽误了几天,我们继续JAVA之旅 一.String概述 String时 ...

  4. Java反射机制demo(六)—获得并操作一个类的属性

    Java反射机制demo(六)—获得并操作一个类的属性 获得并操作一个类的属性?! 不可思议啊,一个类的属性一般都是私有成员变量啊,private修饰符啊! 但是毫无疑问,这些东西在Java的反射机制 ...

  5. 20145302张薇《Java程序设计》第十六周课程总结

    20145302 <Java程序设计>第十六周课程总结 实验报告链接汇总 实验一 Java开发环境的熟悉 实验二 Java面向对象程序设计 实验三 敏捷开发与XP实践 实验四 Andoid ...

  6. Java NIO 学习笔记(六)----异步文件通道 AsynchronousFileChannel

    目录: Java NIO 学习笔记(一)----概述,Channel/Buffer Java NIO 学习笔记(二)----聚集和分散,通道到通道 Java NIO 学习笔记(三)----Select ...

  7. 201871010123-吴丽丽 《面向对象程序设计(Java)》第十六周学习总结

    201871010123-吴丽丽 <面向对象程序设计(Java)>第十六周学习总结 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ ...

  8. 201271050130-滕江南-《面向对象程序设计(java)》第十六周学习总结

    201271050130-滕江南-<面向对象程序设计(java)>第十六周学习总结 博文正文开头格式:(2分) 项目 内容 这个作业属于哪个课程 https://www.cnblogs.c ...

  9. 201871010111-刘佳华《面向对象程序设计(java)》第十六周学习总结

    学号-姓名<面向对象程序设计(java)>第十六周学习总结 实验十四  应用程序归档与线程初步 实验时间 2019-12-12 第一部分:理论知识总结 1.程序与进程的概念 ‐程序是一段静 ...

  10. 201871010104-陈园园《面向对象程序设计(java)》第十六周学习总结

    201871010104-陈园园<面向对象程序设计(java)>第十六周学习总结 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ ...

随机推荐

  1. Linux查询CPU,内存,硬盘使用率以及网卡流量指令

    Linux查询CPU,内存,硬盘使用率以及网卡流量指令 1.获取cpu使用率 //cpu `top -b -n1 | fgrep "Cpu" | awk '{print 100-$ ...

  2. pdf中添加二维码无法扫描解决方案

    正常行驶的bitmap类型的二维码格式,加载到PDF中,将会导致二维码失真,无法扫描. 矢量图可根据尺寸大小进行调节,不会出现失真模糊情况 所用依赖 <PackageReference Incl ...

  3. React Navite环境搭建

    俗话说"工欲善其事,必先利其器."所以,我们第一步就是搭建React Native开发坏境. 一.安装Node.js.npm.yarn 1.1 React native需要借助no ...

  4. [jQuery]判断页面是否滚动到底部

    方法1:判断可见高度+滚动高度是否等于内容高度 但经过测试UC.QQ.华为浏览器,这个方法不生效.(打印查因:可能由于屏幕缩放,可见高度和滚动高度会偏小. $(this).scroll(functio ...

  5. List<Object>集合获取指定属性最大值的对象

    List<Vo> list = dao.selectList();if(CollectionUtils.isNotEmpty(list)) { Optional<Vo> max ...

  6. Spring全家桶(一)之Spring总结

    0. Spring常用注解汇总 Spring常用注解汇总 使用注解之前要开启自动扫描功能,其中base-package为需要扫描的包(含子包). <context:component-scan ...

  7. iPhone添加节假日日历地址

    添加苹果节假日日历地址 手动订阅节假日: 打开"设置">"日历">"帐户">"添加帐户">&qu ...

  8. jmeterGUI&非GUI模式之如何减负性能调优

    jmeter之如何减负-实现稳定超高并发测试(性能调优)在测试过程中,初学者使用工具不当,添加众多监控组件,非常想看到实时报告,跑不了一会,jmeter就卡死甚至内存耗尽,只得重启,之前的统计报告没了 ...

  9. 福音---Mysql数据库Schema快速生成

    数据库工具--Navicat Premium 参考链接:https://jingyan.baidu.com/article/ea24bc395231e49b62b33183.html 以下是数据库sq ...

  10. web基础(6): CSS综合实例-咖啡网页设计

    咖啡店案例效果图 (一)页面的布局 1. 最上方的header:右下角是四个小图标,像图层一样附加在当前的header部分上. 2. 超链接构成的导航栏,鼠标悬浮的时候字体颜色发生变化. 3. 主体分 ...