Java 企业应用
不要温柔的走入那个良夜

2011-11-26 19:02 308人阅读 评论(0) 收藏 举报

MQ V7 INFO center

每个轨道图以两个右箭头开始,以一对右箭头和左箭头结束。以单个右箭头开始的行是连续行。阅读轨道图时应按从左至右和从上至下的顺序,按箭头的方向进行。

轨道图中使用的其他约定包括:

表 1. 如何阅读轨道图

约定
含义

阅读语法图跳过直观语法图 >>-A--B--C-----------------------------------------------------><

必须指定值 ABC。必需值显示在轨道图的主线上。
阅读语法图跳过直观语法图 >>-+---+-------------------------------------------------------><    '-A-'   

可指定值 A。可选值显示在轨道图的主线之下。
阅读语法图跳过直观语法图 >>-+-A-+-------------------------------------------------------><    +-B-+       '-C-'   

ABC 是可选项,必须指定其中一项。
阅读语法图跳过直观语法图 >>-+---+-------------------------------------------------------><    +-A-+       +-B-+       '-C-'   

ABC 是可选项,可指定其中一项。
阅读语法图跳过直观语法图    .-,-----.       V |    >>---+---+-+---------------------------------------------------><     +-A-+         +-B-+         '-C-'    

可指定值 ABC 中的一项或多项。箭头上会显示多个值或重复值的任何必需分隔符,在此示例中为逗号(,)。
阅读语法图跳过直观语法图    .-+---+-.       | '-,-' |       V |    >>---+---+-+---------------------------------------------------><     '-A-'    

可能多次指定值 A。此示例中的分隔符是可选的。
阅读语法图跳过直观语法图    .-A-.    >>-+---+-------------------------------------------------------><    +-B-+       '-C-'   

ABC 是可选项,可指定其中一项。如果未指定任何显示值,那么会使用缺省值A(主线之上显示的值)。
阅读语法图跳过直观语法图 >>-| Name |---------------------------------------------------->< 名称 |--A--+---+-----------------------------------------------------|     '-B-'   

轨道图片段 Name 是与主轨道图分开显示的。

标点和大写值
完全按显示的内容指定。

语法图示例

此处提供的语法图示例描述了 hello 命令:

阅读语法图跳过直观语法图 Hello 命令 >>-hello--+----------+--+--------------+-----------------------><     '-| Name |-' '-| Greeting |-'    Name    .-,-----------.       V (1) |    |---- --name-----+----------------------------------------------| Greeting |--, --how are you?---------------------------------------------|

注:

  1. 您可以编码最多三个名称。

根据语法图,以下是 hello 命令的所有有效版本:

hello hello name hello name, name hello name, name, name hello, how are you? hello name, how are you? hello name, name, how are you? hello name, name, name, how are you?

name 值之前的那个空格是很重要的,如果您完全不对 name 进行编码,仍必须对 how are you? 前的逗号进行编码。

控制命令

本主题集合提供各个 WebSphere® MQ 控制命令的参考信息。

  • 更新开始addmqinf更新结束
    添加 WebSphere MQ 配置信息(仅限于 更新开始Windows®更新结束 和 UNIX 平台)。
  • amqccert
    检查不完整的证书链(仅限于 Windows)。
  • amqmdain
    配置或控制 WebSphere MQ 服务控制(仅限于 Windows)。
  • 更新开始amqmfsck(文件系统检查)更新结束
    检查文件系统是否与 POSIX 标准一致并能够共享队列管理器数据以支持多实例队列管理器。
  • amqtcert
    从 WebSphere MQ 5.3 或 5.3.1 迁移证书(仅限于 Windows)。
  • crtmqcvx
    根据数据类型结构来创建数据转换代码。
  • crtmqm
    创建队列管理器。
  • dltmqm
    删除队列管理器。
  • dmpmqaut
    转储一组 WebSphere MQ 对象类型和概要文件的当前权限列表。
  • dmpmqlog
    显示并格式化 WebSphere MQ 系统日志的部分内容。
  • dspmq
    显示关于队列管理器的信息。
  • dspmqaut
    dspmqaut 显示特定 WebSphere MQ 对象的权限。
  • dspmqcsv
    显示命令服务器的状态
  • dspmqfls
    显示与 WebSphere MQ 对象相对应的文件名。
  • 更新开始dspmqinf更新结束
    显示 WebSphere MQ 配置信息(仅限于 更新开始Windows更新结束 和 Unix 平台)。
  • dspmqrte
    确定消息通过队列管理器网络时采用的路由。
  • dspmqtrc
    格式化并显示 WebSphere MQ 跟踪(仅限于 Unix 平台)。
  • dspmqtrn
    显示不确定的事务。
  • dspmqver
    显示 WebSphere MQ 版本和构建信息。
  • endmqcsv
    为队列管理器停止命令服务器。
  • endmqlsr
    结束队列管理器的所有侦听器进程。
  • endmqdnm
    对某个队列停止 .NET 监视器(仅限于 Windows)。
  • endmqm
    停止队列管理器或者切换到备用队列管理器。
  • endmqtrc
    对所跟踪的某些或全部实体结束跟踪。
  • migmbbrk
    migmbbrk 命令将发布/预订配置数据从 WebSphere Event Broker V6.0 或者 WebSphere Message Broker V6.0 或 V6.1 迁移到 WebSphere MQ V7.0.1 或更高版本。
  • mqftapp
    启动文件传输应用程序的图形界面(仅限于 Windows 和 Linux x86 平台)。
  • mqftrcv
    处理在服务器上使用 WebSphere MQ 文件传输应用程序接收到的文件(仅限于 Windows 和 Linux x86 平台)。
  • mqftrcvc
    处理在客户机上接收到的文件(仅限于 Windows 和 Linux x86 平台)。
  • mqftsnd
    使用 WebSphere MQ 文件传输应用程序从服务器发送文件(仅限于 Windows 和 Linux x86 平台)。
  • mqftsndc
    使用 WebSphere MQ 文件传输应用程序从客户机发送文件(仅限于 Windows 和 Linux x86 平台)。
  • rcdmqimg
    将一个对象或一组对象的映像写入日志,以便进行介质恢复。
  • rcrmqobj
    根据日志中包含的一个或一组对象的映像来重新创建这些对象。
  • 更新开始rmvmqinf更新结束
    除去 WebSphere MQ 配置信息(仅限于 更新开始Windows更新结束 和 Unix 平台)。
  • rsvmqtrn
    解决不确定的事务。
  • runmqchi
    运行通道启动程序进程,以便自动启动通道。
  • runmqchl
    启动发送方或请求方通道
  • runmqdlq
    启动死信队列处理程序,以便监视和处理死信队列中的消息。
  • runmqdnm
    使用 .NET 监视器来开始处理某个队列中的消息(仅限于 Windows)。
  • runmqlsr
    运行侦听器进程,以便侦听各种通信协议的远程请求。
  • runmqsc
    对队列管理器运行 WebSphere MQ 命令。
  • runmqtmc
    在客户机上启动触发器监视器。
  • runmqtrm
    在服务器上启动触发器监视器。
  • setmqaut
    更改概要文件、对象或对象类的权限。可以对任意数目的主体或组授予权限或从中撤销权限。
  • setmqcrl
    在 Active Directory 中管理 CRL(证书撤销列表)LDAP 定义(仅限于 Windows)。
  • setmqprd
    登记 WebSphere MQ 生产许可证。
  • setmqscp
    在 Active Directory 中发布客户机连接通道定义(仅限于 Windows)。
  • strmqcfg
    启动 WebSphere MQ 资源管理器(仅限于 Windows 和 Linux x86 平台)。
  • strmqcsv
    为队列管理器启动命令服务器。
  • strmqm
    启动队列管理器更新开始或者使其准备好执行备用操作更新结束
  • strmqtrc
    在指定的详细级别启用跟踪,或者报告生效中的跟踪级别。

========================================================

需要对strmqm进行特殊说明,因为今天我排查的一个错误就是因为使用了这个命令解决的!

问题:

Default objects cannot be created: CompCode = 2 Reason = 2059 error.

起因:

The problem is caused by having too many open files, which usually means the system is out of file descriptors.

解决:

  • Determine the current value for file descriptors by using 'ulimit -a' command
  • Increase the file descriptors
  • Recycle the machine for the changes to take effect
  • Restart the queue manager具体:
  • 进入MQ管理器

    将日志文件变大。这个可以选择相应的QM右键,点击属性找到位置。

    然后关闭MQ。进入命令行模式。

    使用下面的命令:

    1. strmqm -c QMname

    查看指定的QM是否在运行

    2. strmqm -r QMname

    更新备份MQ,更新了QMname的内容

    3.strmqm -c QMname 

    重新生成QM的属性,这时我们在管理器界面调整的数据就开始生效了。

    4.strmqm QMname

    经过 3 后,qm启动后就停止了,主要我们再次的启动一下。

    这些步骤的用意就是:

  • Determine the current value for file descriptors by using 'ulimit -a' command
  • Increase the file descriptors
  • Recycle the machine for the changes to take effect
  • Restart the queue manager

    strmqm

    启动队列管理器更新开始或者使其准备好执行备用操作更新结束

    用途

    更新开始使用 strmqm 命令来启动队列管理器。更新结束

    如果队列管理器启动需要好几秒,那么 WebSphere® MQ 会显示间歇性消息以详细说明启动进度。有关这些消息的更多信息,请参阅 WebSphere MQ Messages

    语法

    阅读语法图跳过直观语法图 >>-strmqm--+------+--+-----+--+-------+--+------------------+--->     +- -c -+ '- -f ' +- -si -+ '- -d--Information-'        +- -r -+ '- -ss -'         +- -a -+         '- -x -'     >--+------+--+------+--+----------+----------------------------><    '- -z -' '- -ns-' '-QMgrName-'   

    可选参数

    -a
    激活指定的备份队列管理器。不启动备份队列管理器。

    当激活备份队列管理器后,可使用控制命令 strmqm QMgrName 来将它启动。要求激活备份队列管理器可防止意外启动。

    当激活备份队列管理器后,就不能再对其进行更新。

    有关使用备份队列管理器的更多信息,请参阅备份和复原 WebSphere MQ

    -c
    更新开始启动队列管理器,重新定义缺省值和系统对象,然后停止队列管理器。如果指定此标志,那么将替换属于队列管理器的任何现有系统和缺省对象,并且将复位任何非缺省系统对象值(例如,MCAUSER 的值设置为空白)。

    使用 crtmqm 命令来为队列管理器创建缺省和系统对象。

    更新结束

    -d Information
    指定是否显示参考消息。Information 的可能值是:

    all
    显示所有参考消息。这是缺省值。

    minimal
    显示最小数目的参考消息。

    none
    不显示参考消息。此参数等效于 -z。

    -z 参数的优先顺序比此参数高。

    更新开始-f更新结束
    更新开始如果您知道队列管理器由于其数据目录缺失或损坏而无法启动,请使用此选项。

    strmqm -f qmname 命令将尝试重新创建队列管理器数据目录并复位文件许可权。如果此操作成功,那么除非缺少队列管理器配置信息,否则队列管理器将启动。如果队列管理器由于缺少配置信息而无法启动,请重新创建配置信息,然后重新启动该队列管理器。

    在 7.0.1 以前的 WebSphere MQ 发行版中,不带 -f 选项的 strmqm 将自动修复缺少的数据目录,然后尝试启动队列管理器。此行为已更改。

    从 WebSphere MQ V7.0.1 开始,不带 -f 选项的 strmqm 的缺省行为是,不自动恢复缺少或损坏的数据目录,但报告错误(例如 AMQ6235 或 AMQ7001),并且不启动队列管理器。

    您可以将 -f 选项视为执行以前由 strmqm 自动执行的恢复操作。

    更改 strmqm 的行为的原因是,WebSphere MQ V7.0.1 支持联网的文件存储器,因此,最有可能导致队列管理器数据目录缺失或损坏的原因是可以纠正的配置错误,而不是数据目录损坏或者无法弥补地不可用。

    如果可以通过更正配置来恢复队列管理器数据目录,那么不应使用 strmqm -f 来重新创建那些目录。

    strmqm 问题的可能解决方案包括,使联网的 文件存储位置可供队列管理器访问,或者确保主管队列管理器的服务器上 mqm 组和用户标识的 gid 和 uid 与主管队列管理器数据目录的服务器上 mqm 组和用户标识的 gid 和 uid 匹配。

    在 WebSphere MQ V7.0.1 中,如果您正在为队列管理器执行介质恢复,那么应该使用 -f 选项来重新创建队列管理器数据目录。

    更新结束

    -ns
    防止以下任何进程在队列管理器启动时自动启动:
    • 通道启动程序
    • 命令服务器
    • 侦听器
    • 服务
    -r
    更新备份队列管理器。不启动备份队列管理器。

    WebSphere MQ 通过阅读队列管理器日志并重放对对象文件的更新,来更新备份队列管理器的对象。

    有关使用备份队列管理器的更多信息,请参阅备份和复原 WebSphere MQ

    -si
    交互式(手动)队列管理器启动类型。此选项仅可用于 WebSphere MQ for Windows®。

    队列管理器通过已登录(交互)用户运行。对于配置为交互式启动的队列管理器,当用户启动注销时,结束运行。

    如果设置此参数,那么它会覆盖先前由 crtmqm 命令、amqmdain 命令或 WebSphere MQ 资源管理器设置的任何启动类型。

    如果未将启动类型指定为 -si 或 -ss,那么会使用在 crtmqm 命令上指定的队列管理器启动类型。

    -ss
    服务(手动)队列管理器启动类型。此选项仅可用于 WebSphere MQ for Windows。

    队列管理器作为服务运行。对于配置为服务启动的队列管理器,甚至在交互式用户注销之后,仍然继续运行。

    如果设置此参数,那么它会覆盖先前由 crtmqm 命令、amqmdain 命令或 WebSphere MQ 资源管理器设置的任何启动类型。

    更新开始-x更新结束
    更新开始

    在本地服务器上启动更新开始多实例更新结束队列管理器的实例,从而使其高度可用。如果尚未在其他位置运行该队列管理器的实例,那么该队列管理器将启动,并且该实例将进入活动状态。该活动实例将准备好接受对本地服务器上队列管理器的本地和远程连接。

    如果在另一个服务器上已有处于活动状态的更新开始多实例更新结束队列管理器实例,那么新实例将进入备用状态,从而使其能够接管活动的队列管理器实例。在处于备用状态期间,它无法接受本地或远程连接。

    不能在同一服务器上启动队列管理器的第二个实例。

    在省略 -x 可选参数的情况下,缺省行为是将实例作为更新开始单一实例更新结束队列管理器启动,从而禁止备用实例启动。

    更新结束

    -z
    抑制错误消息。

    此标志在 WebSphere MQ 中用于抑制不需要的参考消息。因为使用该标志可以导致信息的丢失,不要在命令行输入命令时使用此标志。

    此参数优先于 -d 参数。

    更新开始QMgrName更新结束
    更新开始本地队列管理器名称。如果省略此参数,将使用缺省队列管理器。更新结束

    返回码

    0
    队列管理器启动

    3
    正在创建队列管理器

    5
    队列管理器正在运行

    16
    队列管理器不存在

    23
    不可用的日志

    24
    使用队列管理器前一个实例的进程仍未断开连接

    更新开始30更新结束
    更新开始此队列管理器的备用实例已启动。活动实例正在其他位置运行更新结束

    更新开始31更新结束
    更新开始此队列管理器已有活动实例。此队列管理器允许存在备用实例更新结束

    39
    指定的参数无效

    更新开始43更新结束
    更新开始此队列管理器已有活动实例。此队列管理器不允许存在备用实例更新结束

    更新开始47更新结束
    更新开始此队列管理器已有最大数目的备用实例更新结束

    49
    队列管理器正在停止

    69
    存储器不可用

    71
    意外错误

    72
    队列管理器名称错误

    74
    WebSphere MQ 服务未启动。

    100
    日志位置无效

    119
    用户无权启动队列管理器

    示例

    以下命令启动队列管理器 account

    strmqm account

    相关命令

    crtmqm
    创建队列管理器

    dltmqm
    删除队列管理器

    endmqm
    结束队列管理器

  • posted @ 2012-03-08 11:12 cpegtop 阅读(10331) | 评论 (0)编辑 收藏
     

    2011-03-29 12:15 122人阅读 评论(0) 收藏 举报

    今天,简单的学习了maximo的功能,结构和历史。

    简介:

       maximo是用于资产管理的成熟的产品。软件本身具有非常大的灵活性和兼容性。

       在maximo下可以使用db2/oracle,web容器可以使用websphere/weblogic。

       主要架构是J2EE中的EJB技术以及JSP做前段的MVC view模块。

       但是,这个庞然大物有700tables,6000 java classes.

    image

    maximo对资产的管理可以从下面的几个方面体现:

    image

    在maximo内部,可以很方便的定义工单,而整软件的核心也是工单。

    工单就是workflow,IBM有诸多的工作流处理,但是,maximo内部具有独立的workflow。

    基于工单,maximo扩展了庞大的资产管理及财务管理模块。对整个订单的触发及处理也是按照下面的过程来定义的。

    在使用maximo前,设计会进行一到两个月,具体的部署会持续两个月,最后的培训等会使用2个月,所以,maximo的实施会在半年到一年。

    对maximo的设计是非常灵活的,很多人觉得maximo的东西比较难以上手,是因为,一旦上手,威力无比!今天,在samul的演示下,一睹了如何在maximo下添加一个oracle 10g里面没有的字段(就是给一个表添加一个没有的列),不必重新编译,不必重新启动机器就能上线。这和我们传统的使用datasource很是不一样。

    而maximo的设计也是基于assets ,location ,plan ,address ,site,workorder几项。

    其内部运行的class也是设计成了object 的结构,而且形成了统一的标准:MBO。所以,对开发人员而言,是非常好的地方。这使得maximo可以和目前所有的ERP,BI,形同进行集成,因为自主开发的类在MBO的支持下,可以通过JMS等接口完成数据交换。所以,maximo的集成产品不断出现,如gps,sensor等设备可以被maximo管理。

    image

    除了大的概念的支持,maximo对仪器,仪表,监视器等也有很好的体现。可以自定制UI的图形界面,比Dreamwaver还要好用。

    image

    工单的产生,传统的是人为进行维护,定义rules来触发的,例如认为的跟新库存,在库存内某项物品减少到一定的限度的时候就会触发一条订货指令。

    image

    posted @ 2012-03-08 11:07 cpegtop 阅读(374) | 评论 (0)编辑 收藏
     

    1998年马化腾五人凑了50万,创办腾讯没买房;1998年史玉柱向朋友借了50万搞脑白金没买房;1999年漂在广州的丁磊用50万创办网易没买房;1999年陈天桥炒股赚了50万,创办盛大没买房;1999年马云团队18人凑了50万,注册阿里巴巴没买房。他们的成功不是由买房来决定的。

    有人问音乐人高晓松,为什么结了婚还租房住,不买自己的房?高晓松回答:我不买房,全天下都是我的,想住哪儿就住哪儿;买了房就只剩一个角落是我的,我妹也没买房,但我俩都走遍了全世界。

    与他们持类似观点的还有国内房产业大佬王石。2008年初,国内楼市初现调整之时,王石抛出了惊人之语:“对于那些事业没有最后定型,还有抱负、有理想的年轻人来说,40岁之前租房为好。”

    在我看来,以今天的房价,排除那些富二代不说,普通人买房卖梦想只有两种情况:一种是双方父母出钱资助,这种人基本上前途和发展被父母控股。第二种人是牺牲了太多的发展机会,典当梦想来成就一套房子。

    美国人平均31岁才第一次购房,德国人42岁,比利时37岁,香港人是32岁,欧洲拥有独立住房的人口占50%,剩下都是租房。

    posted @ 2012-03-08 11:05 cpegtop 阅读(148) | 评论 (0)编辑 收藏
     

    2009-12-28 13:08 28人阅读 评论(0) 收藏 举报

    据新华社消息,“经中央纪委负责人证实,中国移动通信集团公司党组书记、副总裁张春江因涉嫌严重违纪,目前正在接受组织调查。“这可能是近三十年来,中国电信系统的最大涉腐案件。

    无标题

    今年51岁的张春江毕业于北京邮电大学,此后长期在电信领域工作。2000年,42岁的张春江出任信息产业部副部长,是当时较为年轻的副部级干部。2003年5月,张春江出任电信重组分拆后的中国网通集团党组书记,总经理。中国网通运营北方十省固定通信网络,包括固定电话和宽带业务。张春江在任期间,中国网通完成对小网通、吉通公司的融合重组,并成功在香港和美国上市。

    2008年,中国电信业体制改革,中国网通并入中国联通,由中国联通董事长常小兵担任重组后的中国联通董事长,张春江5月调入中国移动担任党组书记和副总裁。

    2008年,中国电信业体制改革,中国网通并入中国联通,由中国联通董事长常小兵担任重组后的中国联通董事长,张春江五月调入中国移动担任党组书记和副总裁。2008年6月,张春江担任中国移动(香港)有限公司执行董事、董事长。

    张春江是第十一届全国政协委员,全国政协经济委员会委员。2008年“两会”期间,张春江呼吁加快电信体制改革。

    从公开报道看,张春江最后一次出席公开活动是12月17日在“祝福祖国”文明公益短信传递活动启动仪式上致辞。

    消息人士透露,张春江被调查,应该与中国移动没有关系,“他2008年5月才来移动上班,并没有分管具体业务。”2008年5月26日,国资委和中组部曾宣布,张春江在中国移动的主要工作是主持集团公司党组全面工作,并分管人力资源部。

    去年5月,由于中国运营商大重组,张春江从中国网通集团总经理和董事长职位上调任中国移动二把手,任中国移动执行董事、副董事长、集团公司副总裁和党组书记。他在中国移动的新职位月薪为10万元,每年董事袍金18万元。

    张春江也是中国运营商高管系统中,较为年轻的一位(只有51岁),但是他在中国邮电系统资历颇深,有超过26年的电信行业管理经验。曾历任辽宁省邮电局副局长、邮电部移动通信局局长、电信总局副局长、信息产业部副部长等。2003年5月开始担任中国网通集团总经理。张春江一直被冠以中国通信业改革派的强硬人物,其作风雷厉风行。

    关于张春江的职务方向,电信运营商圈内早有各种传言。在2004年,中国网通在香港上市期间就有消息传张春江在IPO完成后将调往黑龙江省任副省长,但此后再无下文。

    也曾有消息称,中国移动集团总裁王建宙已经59岁,离国资委规定的央企领导人60岁退休年龄只有半年时间了(王建宙1948年12月出生),而张春江出生于1958年7月,显然是为接班而来,因为中移动此前并没有设副董事长一职。

    今年2月,又有报道指出,张春江可能会离开中国移动到中国联通任职,但数月过去,未见动静。本网综合-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

         这是在网上看到的一则消息,这则消息让我周围的一些朋友很震惊,回想宏福的生活,没听过什么大型的讲座,曾经唯一让我们振奋的就是听说移动的副总来宏福讲座,两百人的教室,硬是挤了四百人,张总谈了很多对中国信息产业将来的美好希望,忘不了叮嘱后生要努力……

         曾经坐网通的头把交椅,一步步把网通做大……

         怎么出了这种事?

         到底是怎么一回事?

        这是真的么?

    --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

    张春江简历:

    张春江出生于1958年7月,山东烟台人,毕业于北京邮电大学。张春江原任中国网通集团董事长,并被中国网通集团指派出任电讯盈科董事。

    伴随第三次电信重组,张春江于2008年5月23日起担任中国移动集团副总经理兼党委书记。

    曾任大连市邮电局副局长。

    1993年08月任辽宁省邮电管理局副局长、党组成员;

    1995年01月任邮电部移动通信局局长、电信总局副局长、办公厅主任;

    1998年03月任信息产业部电信管理局局长;

    1999年12月任信息产业部副部长、党组成员,主要负责电信监管事务;

    2003年05月任中国网络通信集团公司党组书记、总经理;

    2004年06月任中国网络通信集团公司党组书记、总经理,中国网通集团(香港)有限公司执行董事;

    2004年09月任中国网络通信集团公司党组书记、总经理,中国网通集团(香港)有限公司执行董事、董事长;

    2008年05月任中国移动通信集团公司党组书记、副总经理;

    2008年06月任中国移动通信集团公司党组书记、副总经理,中国移动(香港)有限公司执行董事、董事长。

    第十一届全国政协委员、全国政协经济委员会委员。

    posted @ 2012-03-08 10:57 cpegtop 阅读(164) | 评论 (0)编辑 收藏
     

    2009-12-13 12:17 35人阅读 评论(0) 收藏 举报

        半个月以来自己一直在实验室里搞java.对java的数据结构和反射概念有了一点的理解。Java的数据结构是 ADT,简单的形容就是一面墙,隔着用户,可以进行的操作都在接口内部(interface),这让我联想到了在     spring的 sessionFactory中的beans都是interface或者是非final类型的类,因为只有这样,变量才能够进行实例化操作,在底层只有jdk的interface在工作,非常复杂的Ioc容器概念和反射概念其实就是对接口的管理,ADT是什么?似乎就是数据库中的字段和对应的类,一系列的概念都在Model-->Dao—>Service-->Web中产生,作为初学者,我感到这些概念让我措手不及。例如Servlet是怎样到applicationContext找到自己想要的内容,以及AOP的设计思路是怎样在Domain和DAO渗透的,去理解hibernate和Spring是怎样解耦的?

       这一切似乎都在告诉我java很复杂,这几天我加入了几个JAVA爱好者的QQ群,和他们交流的时候,问题很严重,就是听不懂大家究竟在讨论什么?Swing和SWT组在讨论桌面控件,SSH组在讨论怎样将Struts1.X转化为Struts2,以便更好的整合。光是解决SSH中两个jar的冲突,我就发了两次帖,到论坛上进行求助,和一个北大青鸟的学java的朋友交流,他说:java很难。

       java是很难的,但是,在多年以前,大家还在用笔记本进行软件开发,在cmd下调试的时候,是简单的么?越来越多的框架和越来越多的工具都在告诉我们,java在变得简单,只是java处理的问题变难了。在学习hibernate的时候,体验最大的就是入门很难,但是目前学习的整个过程,自己去真正写代码的时候很少,全自动的对数据库的操作进行了一层又一层的封装,我们最后得到的是服务层的函数。在Struts Action中进行DelegatingActionProxy,在后台进行sessionFactory注入,问题就解决了。于是我们看到还是一个完美的ADT,即不多什么也不少什么。而在Myeclipse中更是集成了spring,hibernate和struts的GUI开发能力,在做Jsp页面跳转的时候,就是画图的模式写代码。

       那究竟是什么地方难呢?针对我自身的情况总结为以下几点,这也是也后继续学习的时候必须注意的。

    1.对API的使用几乎为0.很多问题,debug到最后,都可以在API上找到问题解决方案,这是前人的经验和JDK 的  source决定的,所以,一定要学会看API,多去浏览英文的网站,应为英文的网站上的解答大都是从console看信息,然后去API找答案的,而我就是google。导致自己不会看控制台里的内容。

    2.熟悉概念,例如对反模式的理解可以更好的理解数据库是如何CRUD的。可以触使自己解决看起来复杂,其实很简单的问题,就像在iBatis中,大量的原始SQL语句都要自己去写,这样可以使自己在做的过程中看见SQL是怎样映射过去的,但是针对hibernate的HibernateDaoSupport,不知道它是怎样转化过去的。

    3.学习使用Junit和Ant。在整个的过程中,是不断迭代的过程,循环监测和模块调试很重要,整个结构起码有三层的时候,调试起来,只通过tomcat的窗口终究不知道哪里出了问题。而Junit和Ant都是通过annotation来完成的。所以,学会使用这些工具迫在眉睫。

    4.多交流,CSDN的论坛是个好地方,第一次去CSDN是google过去的,当时是学习MFC的时候,对消息映射的机制了解不好,链接过去的。而最近我发现,被动的链接到论坛其实得到的东西很少,浏览的时候,不妨多去论坛。记得曾经有人说,简简单单学java,天天上CSDN。

    这是我最近学习上的一点总结,欢迎大家交流、指正和分享体会。

    posted @ 2012-03-08 10:55 cpegtop 阅读(160) | 评论 (0)编辑 收藏
    仅列出标题
    共6页: 上一页 1 2 3 4 5 6 下一页