让目标指引我们前进-2016

一年又一年,纵使没有太多的改变,也要为新的一年立一个大致的方向与目标。旧年已然过去,成败也无法变革,新年就在脚下,需要一步一个脚印。抬起头往前看,有什么我想做的,有什么我应该做的,有什么我一定要做到的。就当立个字据,好让自己不时的想起,然后努力去实践吧,免得到年终再违自己的约。

做足够的准备,这个准备也是对未来工作的准备。近来也听到一些风言片语,但也要未动先行。花点时间在java技术上下点功夫,还是从基础的语言技术入手,再接入一些框架的源代码进行研读。比如:Spring,myBatis等等。掌握和学习常用的java设计模式,理解一些技术的原理,进入真正的java编程状态。在这个语言的中心向外扩展学习一些新的技术,比如大数据,分布式,算法等等。技术日新月异,学习也要跟得上。要更有效率的学习,多总结,多用XMIND思维导图,抓住技术的核心要点,强化记忆等。至少要看3到4本java方面的技术书籍。同样的,若有机会也不要错过其它知识的学习,比如mysql,php,html5等。以能将技术转为实践或是项目的经验为最佳目标。只要自己功夫身,任何变动也会泰然自若,不变应万变。

回到博客,2015年的博客并不算成功。技术博客的数量有略微的上升,但大多数都是笔记,从间很少有自己的思考,而且印象也不够深刻。还需要继续从文字上下功夫。新的一年博客文章数量目标在65篇以上,博客范围应该略广,可以重新翻译一些文章,以此来加强对英语的学习。

在阅读上继续花些时间。多涉略社科类,历史类,人物传记类的著作,目标全年不少于20本。继续加强身体锻炼,提高跑步配速,增加跑步距离,全年至少完成一次马拉松长度的赛跑。维持目标体重在60千克左右,多吃蔬果类食物。有机会就多参加跑步活动,广交友。运动的同时也注重上肢等力量训练,协调发展。保持健康的身体。

关爱家人,关心老人。努力创造更好的居住和生活条件,为他们提供更好的精神温暖和物质保证,从我做起。新的一年已经来临,我已迫不及待。春节也马上到来,万物复苏。我还有什么再等待的理由呢?加油吧,骚年!

做真正的自己

都说三十而立,四十不惑。我很想知道这个不惑指的是什么?网上查了一下,不惑指遇事能明辨不疑。但我有一种更深层次的感觉,不仅仅是这个意思。人人对各种事物有不同的看法和理解,角度往往是多样的,都有自己的理解,而且从各个角度出发也似乎都有道理。但是我们是否真正考虑过自己:我是谁,我从哪里来,我要到哪里去,人生是什么,我应该怎样,我要追求什么,我为什么要这样做?一连串的问自己为什么,如果能从容的回答这些而没有疑惑,我想这才是真正的不惑吧。古人以四十定为“不惑”,自然意味着,人都需要时间去检验,去挖掘,然后才能找到真正的自己。

昨天看了《功夫熊猫3》,最终战胜绿眼怪的不是增加的功夫,不是投机取巧,而是信念,这也就是真正的自我。只有自己内心真正的强大了,才能克服万般的困难,战胜敌人。为什么我们不够强大,因为我们还不能克服自身的心魔。我们可能凡事斤斤计较,我们可能经常埋怨别人,我们没有身体力行,我们还常常患得患失,我们是选择困难户,我们无法面对失败,我们无法持之以恒,我们无法分清黑白、轻重、缓急,归根结底,就是无法找到真正的自己。这也就是我们没有找到真正让自己强大的基因。现实世界并非都要用物质去衡量个人的成功与失败。更多的成名之人往往将其的独特的精神资产,社会贡献留给了世人,并将这种精神财富一直延续下去,而他们的物质财富死后便如一片云烟消散无踪。不要说不可能人人都可能强大,成功。但只要你努力,世界肯定有你的位置,你要做真正的自己。

无意间看到了前央视记者郎永淳的离职后采访,其中一段话让我记忆深刻。“为什么你会从央视离职”。他的回答是,央视主持人是我人生的一个顶点,但我不愿意一直在这个顶点上踏步不前,我需要另一个顶点,所以我需要走一个V型的路线,才能让我走向另一个人生的高点,这也许会比之前的高点更高,在这之前可能会一个低谷。这句话,会给很多诸我之类的人一点启示。你现在是在高点吗?你想要有另一个高点吗?如果你认为当前是在停步不前,为何不为下一个高点,走一点点的下坡路,然后奔向另外一个高点。又如白岩松在他的《白说》里描述的那样,荣誉之后的回归,换岗,更像一个低潮和低落,但并没有气馁,而又是不断的努力奋斗,打开了另外一片天空。人生最怕的是平淡和意志消沉,人生就是要去解决一个又一个问题,但人生并不是大折腾和乱折腾,是要有目标的折腾。

做真正的自己,要努力去挖掘自己。你知道自己的潜力吗,你有将你的努力付出扩大到十倍百倍吗?就如我喜欢的跑步,我之前从没想过我能跑10公里以上。但是我现在能跑15公里,甚至跑过30公里。未来我能跑马拉松吗,我能挑战100公里吗?谁知道呢?但我已然在设想。为自己留一个目标真的很棒,然后就将这个目标化做动力,相信自己一定能行。如果人们都在各自的行业里努力去发现自己潜力,付出十倍百倍的努力,更大的成功还会远吗。而那些已然成功的人士无不是努力拼搏的结果。挖掘自己,才能做出真正的自己,而自己才是人生最终的信念。

年初杂谈

自从实施一百天计划以来,除了特殊情况,大部分的下班回家时间推迟了半个小时到一个小时。有的时候,最后一个离开办公室还会有点点的不适应。原本想多出的个把小时用于自己的学习,但大多数时,都是同事在边上走来走去,没有安静下来去学习。个把小时的时间被分解成一小小段,更多的时候都是单位未完工作的延续。晚点下班的好处,坐公交车路上不那堵,回家的时间更快了,同样的,骑车的日子回家也顺畅多了。近来天冷,来回骑车还是有点受不了,但只要武装好自己还是能够坚持的,只是往往天公不做美,很多情况都是公交为主。

女儿回去,在家就显得更没有什么事做,不需要讲故事,不需要等女儿睡了再玩会游戏。早上也不必各种等待,早点也可以自己快速解决,但却一时还不适应。早上早早的上班去,也不在家里多待片刻,生活真有回到两点一线的状态,更多的往工作靠近了。晚上天气晴好的话,就去江边散散步。最近的一两个月跑的少了,好的消息是天亮的越来越早,可以准备起晨跑了,为春跑准备起来了,想想都是很振奋的事。冬天懒了,没怎么跑,但体重应该没怎么上升吧,这点自信总还是有的。就像人们常说的那样,跑步运动的人,也许怎么吃都不会胖,因为身体习惯了快速的代谢。

有点喜欢上了现在的工作感觉。每天试着学习一点东西,去解决一些问题。即使有些困难的,也会变着法子去解决。碰到自己熟悉的概念会试着说出来大家分享,工作上的问题也会尽力去讨论,去分析,提出自己的问题。不会去回避问题,提出自己的困难后也会尽力去想办法解决。自己熟悉的负责的部分总是尽可能的理解掌握清楚。试着听听和领会别人的工作,不主动加入,但也是在慢慢的获取他们的知识吧。

真想学点新的知识,我甚至开始准备从基础的java语言开始下手了。现在是能够写一些简单的java应用程序,但java的很多语言基础,语法规则我都是不清楚的和未接触的。我想去学习一些框架的源代码,想学习代码测试等等。是想把java的基础学扎实后,再去寻求更大的突破。这个是我目前极力想去做的,也是我的一百天计划中的重中之重。就是一百天出一些成绩。我很欣慰我的技术学习有了点不同,我不再追求书本的逐字逐句,更多的是快速的抓住页面的要点,快速的练习,迅速的掌握。而到具体的内容点的时候,才仔细的分析,这加快了学习的进步。之前学习angularjs时我就有这样的体会。理解概念性的东西后,就能快速的入手演练了。

坚持了目标,就好好的努力吧。一百天,希望能有一个不错的成绩和结果。

我的畅唐科技面试

当人问我,我的职业规划是什么的时候,我沉默了好一阵子,甚至都有了一点冷场的感觉。我不敢直视他们的眼睛,因为这个时候我的思想是矛盾的,是无序的。我没敢想去说要当项目经理,要当CTO。片刻之后,我留下了这样一句话:我好像没有具体的职业规划,当个程序员,写写代码挺好。后来,离开了那个场合,自己静下心来细细思考了一番,我仍然不确定我的职业规划是什么。职位的提升是要有机遇的,而个人的性格一时间是无法改变的。即使你不断的提高你的技术技能和业务能力,但没有那个机会,你仍走不上你想要的那个职位。也许,你可以通过跳槽、失败、尝试来达到这个目标。话说回来,我又实在想不出,除了待遇这外,当项目经理的具体好处,不用写代码吗?而最终我得到了这样的结论,我的职业规划很现实,就是提高自己的薪资待遇,跟上技术的潮流。职位规划,可能是理想,也许是自己的一厢情愿。

当人问我时,身边的人都是怎么评价你的,其实真的不确定怎么回答。大部分的同事和同学都不会在我的面前评论我,要有的话也都是私下评论,大体也不会传到你的耳朵。而家人对我的评价放到工作上不一定非常的客观。而我恰恰套用了母亲经常对我的评价:人老实。自然的结果是我和那个人都乐的。这个回答确实不太合适,也许我应该把领导年终给我的考核拿出几个词出来说,比如挺积极,工作勤勉。当然不会说一些不太好的词,甚至即使有一些不太好的词我也会想不起来,因为没在意过。这也让我想起大学的团支书对我的评价:有想法的人。我对这个评价如此的记忆尤新,是因为这是一个会上的直接评价。我很感激,我是有想法,我也是这么认为的。平常不说话的人,并不是说他没有想法,只是从想到说对他来讲有一个隐形的屏障罢了。也许某天,跨过了这个屏障,他可能就是个演说家,因为他比别的人想的更多,悟的更多。

这是两个我在畅唐科技面试时对我而言比较尴尬的问题。因为问题的自由度不太好掌握,也许真诚的回答是最真实的,但也许是不恰当的。你也不可能用“不太确定”或拒绝回答,那样不太礼貌。答案对不同的人来说理解也有好坏之分,在面试的时候个人的评判很重要,关键就是合不合当事人的口味罢了。当然别人问你目前的薪水时其实是可以拒绝的,因为这与你想得到的薪水没有必然的关系,只是他们愿不愿意出罢了。一般在电话里,我是拒绝透露的,我只说我想要的。技术问题这次也不是回答的很好,很多问题把自己套进去了,事后才想起答案,当然这也为之后碰到的问题提供了相同的思路。另外我挺冒昧的问了他们现在使用的技术,而他们的技术人员也只是回复,并没有用最新的技术,适合自己的才是最好的之类。其实我真想说我不同意,很多旧的技术必然会被淘汰,一个技术部门,停留在老的技术而不尝试使用新技术是很危险的,因为他的员工可能会被新技术淘汰,带来的后果就是团队被淘汰,这与XP操作系统被淘汰是一个道理,学技术的就应该与时俱进。

好久没有参加面试了。对我而言不同之处是,我更清楚知道自己想要什么了。我想要更好的待遇,想要一个更多参与项目的机会,一个更能发挥自己才能的舞台。我不甘独自埋头学习,我不希望就这么平淡的混日子,人总要是追求的。不想停留在今天,就要为明天努力准备。人生的困难是选择,一旦选择了,就要努力去追求。

新年的旅行

当我脚踩雪板,拿着雪杖,准备从大明山滑雪场上顶部第一次滑下来的时候,内心是没底的,因为我穿上雪板的时候,就迷糊的上了二层。纵使导游说了摔跤是不可避免的,你仍会不自主去想象到底会是怎么个摔法。看着一拨拨人群从上往下颤巍巍,一路摔下去的时候。我也迈开了步伐,接下去就是不断的摔倒,爬起,再摔倒,任凭雪块倒灌进雪鞋浸湿了袜子,甚至钻进了衣袋,手套,仍要继续去尝试。这也是我上下三趟滑雪的实况。

滑雪是刺激的,但更另我不忘的是滑雪之前的爬山,我们没有选择乘坐上山的索道,也许我挺在意的是那多花的五十元钱。但最终我们的选择是明智的,见到了茫茫的白雾在峡谷升起,雾珠似水滴一样击打着你的面庞和衣裳。山涧不始发出阵阵的咆哮,雨后的峡谷一片迷蒙。视野不宽不远,但我们在越往山顶的时候见到树叶上的雪珠,越往上,越白越厚,真如雪后的景象。令我兴奋不已。空中悬桥,万米岩洞,还有爬山带来的兴奋,都让我们觉得不虚此行。

我曾给自己的每次旅行或是出差定了一个努力完成的活动,就是去这个城市转转,跑跑步。住在临安市区的第二天早上,我便早早的起来跑了一圈。在钱王墓公园及后山跑了一圈。本想跑的更远,时间不等人,最好也只跑了四十多分,五公里多的距离。天很冷,四五度左右,看到咕咚上的轨迹,还有为此而冒出的汗珠,回来后冲了个澡,甚是爽快。只是后面的青山湖未能去成,导游又带我们来这公园一游,我就没了兴趣,只是驻足观望,慢慢等他们回来。

临安之行是单位组织的旅行,自然抵不上家人朋友一起的元旦湖州一行。有小孩的嬉闹和陪伴自然不会寂寞。那个清澈的游泳池就让我们开心兴奋许久。我自然用足了酒店的健身房,跑跑步,出出汗,很爽,很脆。女儿算是对公园里的部分游乐设施有了些畏惧,说了怕怕。这也是好事,有畏惧,才会谨慎,才会努力去想去解决吧。

可惜的是去了湖州,而南浔未能成行。因为同行的朋友和他们的孩子没有去南浔的计划,而我们的女儿却坚决与他们保持一致,坚持不去,只好作罢。朋友们都说南浔美,那也只能等下次了。新年才这么几天,就玩了两个地方,不免对今年的旅行有更多的期待。

Eclipse开发J2EE项目几点需知

接触Java开发没有多久,同样的用Eclipse也没有多久。对各种Java项目的运行环境并不熟悉,项目代码,依赖引用jar包,build路径等,java版本等等让人搞的一团雾水,只有慢慢的接触多了,碰到的问题多了,然后去解决,就慢慢的摸清了这些关系,及各种配置的详情。熟悉Eclipse IDE能加快我们在项目运行调试上的错误排查,快速进行项目结构的转换,环境资源的更新,引入运行现成项目等等。当然这些仅仅是Java语言开发的工具基础,与你的java技术的高低并没有直接的关系。

运行环境需知

环境一般指的是项目运行,或是jar编译需要的基础jar包库,有运行容器的概念。像asp.net需要运行在IIS一样,需要.NET运行环境一样。Java的Web项目可能会用到apache的tomcat服务,当然也需要jre,也有版本的概念。一般地运行什么样的版本的jre就需要什么样的jdk。运行环境的配置在Window->Preferences->Server->Runtime Environemnts里添加。有些时候项目的默认的编译环境并不是我们想到的JDK版本,这时我们需要在项目->Properties->Java Compiler中进行选择,有些时候我们的代码出现很多的“红叉”,很可能就是编译的JDK版本太低的原因造成的。

编译环境需知

包括上面的项目编译版本外,我们的项目可能会用到其它的jar包,或是其它的工程项目。这时候需要在项目->Properties->Java Build Path中编译路径,添加引用的Jars或Library,或是运行环境的Jar包等等。可以选择是否将外部包打进项目的输出结果中,一般情况我们只将项目本身的代码和资源文件打包,而外部引入的资源仍是在运行环境中单独外部引入的。之前碰到过一个问题,Maven配置都是正确的,代码也没有问题错误,Run的时候就是一遍遍的报某个类不存在,加载不到。最后找到的原因就是没有将Maven Dependencies Library添加到Build Path中。开发调试中碰到的问题要从运行环境,编译器版本,编译路径等这个方面逐一排查。Eclipse提供的项目构面面板,是一个与运行环境相关的服务版本选择界面。一个简单的例子就是你可以选择你想要版本的Dynamic Web Module的版本。你的编译环境应该与你的Project Facets中选定的一致。

项目结构转换

有的时候我们在打开别人的Java工程时,往往并不是我们所熟悉的项目结构。Eclipse方便的提供了项目转换的工具。通过项目->Configure->转换成你熟悉的的项目结构,如Maven,Gradle项目结构等等。还可以给将普通的Java项目通过Project Facets界面转换成Web项目,添加Web运行环境等等,这在之前介绍过。当然Maven,Gradle的学习不是本文讨论的范围,但学习这些工具,对项目jar的管理升级及项目的打包等都是极其出色方便的。

小结

工欲善其事必先利其器。Eclispe就是这样一个学习Java进行Java开发非常棒的工具。快速的学习和掌握Eclipse工具能极大的提高工作的效果,解决工作中产生的问题。同样的还有另外一些扩展工具和插件如Maven,Git等等。这几点我也是在Java开发的学习过程中慢慢的学习摸索到的,这些也算是Java开发的基础吧。

再见,2015!

前两天已经写过年终的总结,今天又往前翻了翻,找到了14,13年最后一天的文章。索性15年的这一天也不能被遗忘,该记的,不该记都吐槽一下吧。如果现实中无法说出心中想说的,那么就在这里喷出自己想吐的吧。

几天前领导找我说了说我今年的考核成绩。当然我的本身的预期就中等,我对优秀和良好没有任何的想法。虽然这关系到年终奖的金额,不去争取的确是跟钱过不去。但在这一年,一来我没做过特别突出的项目,二来更高级别的领导根本就不认识我,基本没有打过交道,本身就心虚,更不可能让别人往好的地方评分。中等就中等吧,过的去就行,不要求太多,但如果被评的很差就不可接受,这也是我的底线。虽然没有什么突出的表现,但工作还算敬业,基本的职业道德还是遵守的。当然,在我们公司,好的领导也很关键。一个同事,一年忙到头,什么活都干,年终考核拿了个优秀。领导看到的是他干的活多,而我想说的是,他干的活有多差,程序有多少bug,才会东忙西忙。这不,年后他离职不干了,直接给老板打脸。当然,我这种程序好好,被感觉成整天无所事事,评优秀是不可能的。为啥?我不会叫。

常常观察其他的同事,有的同事从上班到下班基本做在位置上不动,代码,语句充满整个屏幕,感觉事情很多,忙不过来。而有的同事,一会做做工作,一会上上网,看看手机,炒炒股。同样的公司,不同的人,不同的状态,这似乎有点不正常。我属于后面一类,领导任务分配给我,我做好就可以,多余的时间,会看看新闻,也会去学习学习。我一直想去观察同事的工作效率,真有那么多的问题,真有那么全身心的投入吗,只是还没有这样的机会。当然,我也有全身心投入的时刻,有的时候,新的需求来了,在开发的最初几天我是忙碌的,也会努力,连续性的投入到问题,将之解决。以前的我也会常常去看看项目文档,但现在项目多了,就记不太住,也只是等用的时候再去查阅。往往在口头回答人家问题之前快速的查阅资料。当然,可以吹嘘的是,我个人的项目文档还是整理的可以的,查起来也较方便。

公司有很多工作十多年,甚至二十多年的同事,我很困惑他们何以坚持了这么久远?真是待遇福利好,归属感好,同事友情赞吗。而我所困惑的我该怎么办,这里工作稳定,不甚忙碌,但薪水相对不算高,加薪缓慢,且幅度低;项目机会不多,新技术使用少;职位的上升需要花很长的时间与年限,用同事的话就是慢慢熬,过过日子可以。但这种情况与我的现实目标是有强烈矛盾的,我急于改善现有住房条件,不满意缓慢的薪水增长,不满意了了的学习和升职机会。通俗点讲,我有我的目标与追求的。但另一方面,我又会担心找到的工作薪水高点,但可能会离家很远,工作很忙;又或是新工作不够稳定,过些年又得换岗等等。但我本身始终坚信,换不会比这更差,这又给了我一点点勇气。

幸福的生活不是过着安稳无忧虑的日子,而是完成一个个不同阶段不同人生的追求。有一句话说的很好,人生就是一个问题接着另一个问题。人生需要变,也不是大变,而是小变。不奢望我从软件开发跑去做销售,做保险,跑业务,那样就是从头再来,不值得。而是可以做做开发主管,尝试当当项目经理,让自己承担的很多,成长的更好。有些时候也需要给自己一个机会和勇气,证明自己能行,即使一时的不行,也可以让自己找到自己的不足,然后去分析原因,解决它,从而让下一次做的更好。也许,我可能比别人做的更好,至少现在的我有这样的自信。

困惑是说不完的,有些时候想到了一会就忘了。多读读书吧,最近在看《白说》。说是心灵鸡汤,可能我是真的喝少了,所以很多的困惑我都没有去好好的解决,想不明白。也许,真有那些偶尔的提点能让自己豁然开朗。过来的人,别人的经验不一定都准确,但还总是有启发的吧。只要自己收获了,明白了,那不就很好了吗?

Spring的几种不同配置方法

基本概念

理解Spring框架的核心需要知道两个概念:IOC与DI。IOC(控制反转)指的是创建对象实例的控制权从代码控制剥离到IOC容器控制,实际就是通过配置方法如XML文件或配置类来控制,侧重于原理。DI(依赖注入)指的是创建对象实例时,为这个对象注入属性值或其它对象实例,侧重于实现。它们都是Spring核心思想的不同方面的描述。

上面已经讲过Spring的IOC配置可以通过XML文件或是配置类来控制,接下来就分别讲讲如何进行这种方式的配置。

代码方式

将那些需要放到Spring的IOC容器的类注释为@Component。有很多其它的注释也能实际同样的功能,比如:@Repository,@Service,@Controller。只是从注释类的命名上,能清晰的区别出注释类分别对应持久层,业务层和控制层(Web层)。例如:

package soundsystem;

public interface CompactDisc {
	void play();
}
package soundsystem;

import org.springframework.stereotype.Component;

@Component("sgtPeppers")
public class SgtPeppers implements CompactDisc {

	private String title = "Sgt. Pepper's Lonely Hearts Club Band";
	private String artist = "The Beatles";
	
	public void play() {
		System.out.println("Playing " + title + "by" + artist);
	}
}

Spring配置类需要注释当前类是@Configuration,组件扫描注释@ComponentScan,还可在里面指定包含的basePackageClasses类名数组,或是basePackages包名数组等等。

package soundsystem;

@Configuration
@ComponentScan(basePackages={"soundsystem", "video"})
public class CDPlayerConfig {}

最后,就是加载Spring配置,直接获取相应Bean,执行代码即可:

package soundsystem;

import org.springframework.context.annotation.AnnotationConfigApplicationContext;

public class Main {

	public static void main(String[] args) {
		AnnotationConfigApplicationContext ac = new AnnotationConfigApplicationContext(CDPlayerConfig.class);
		SgtPeppers sp = ac.getBean("sgtPeppers", SgtPeppers.class);
		sp.play();
	}	
}

Main程序中先加载Spring应用程序的上下文配置类,Spring会自动为标记为@Component等的类初始化成一个JavaBean,这里就是初始化了一个name是sgtPeppers的SgtPeppers实例。完毕后,在主程序中,可通过上下文ac调用getBean方法去Spring容器获取到这个JavaBean,之后就是可以使用这个对象进行一些操作。在这里,我们没有使用任何的new方法来初始化SgtPeppers实例,类的实例对代码而言是完全隐藏的,是Spring提供了这样一个容器,能帮助我们通过注释方法初始化一些实例。而我们只要在需要使用的时候,把它找出来就行。

XML配置方式

组件的定义方式基本不变,将Config配置类的文件转换成XML配置的方式。首先需要的是Spring认可的配置文件格式。其次,我们在配置类中定义了包或类的扫描范围,同样的也需要在XML配置文件中指定。

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
	
	<bean class="org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor "/>
	<context:component-scan base-package="soundsystem" />
</beans>

在执行的过程中,加载是XML配置,需要初始化一个ClassPathXmlApplicationContext上下文。接下来的方式与上述Main函数过程一致,原理也是一样的。

package soundsystem;

import org.springframework.context.support.ClassPathXmlApplicationContext;

public class Main {

	private static ClassPathXmlApplicationContext ac;

	public static void main(String[] args) {
		ac = new ClassPathXmlApplicationContext("classpath:spring.xml");
		
		SgtPeppers sp = ac.getBean("sgtPeppers", soundsystem.SgtPeppers.class);
		sp.play();
	}
}

总结

Spring的IOC容器是框架的核心之一。IOC与DI实现了类与类之间的松耦合,对象的初始化也由Spring去控制。程序员也可以通过XML配置方式注入类,这对加载外部框架方法是非常简单的,如在Spring框架中可以很简单的注册JDBC等等。通过Spring配置方法的学习,明白了Spring可以怎么去依赖注入。明白为什么会有@Controller,@Component,@Service等。这些也都是学习Spring框架的基础。

2015年年终总结-总篇

翻到2015年的目标(笑:这次总算有目标了),这次甚至将其放在博客的导航栏里可以方便查找。终于可以完整的对照年初的目标写写年终的总结了。这个多雨,多霾的暖冬,今夜又是个平安雨夜,女儿在几日的病痛咳嗽中缓慢的恢复,慢慢的入睡。即便寒冷让我没有十足的心情沉寂下来细细去翻看这一年的博客,回味这一些的经历,但我仍想好好的思索一番,琢磨一遍。过了这几日,就不是那个事。有些东西过了点,就没有那个味,就是这个道理。所以还是慢慢的侃吧。

两天前,空间续了费,而也就是上个月,域名也续费了一年,这也意味着博客到少还会继续奋斗半年。半年很快,一年也算不上什么。这一年来,博客陆陆续续写了有五十多篇,每月四到五篇左右,量真的变少了。内容似乎也变的平淡,很少有感情上的文字,以技术,跑步活动类的文字居多。深刻度仍是不够,技术上的文章也不够通俗,并没有很好的指引效果,没有系统与连贯性的技术文章。只是一些自我学习的心得或记实而已。不过这终归是自己的历程,是自己一年来的缩影。就像跑步类的文章多了,也意味着这一年我在跑步上的进步是飞速的。从年初参加的5公里比赛到33公里的为爱同行,到30公里的毅行跑,足以证明这都是进步。

回到年初的目标来看,新技术的学习还没有明显的进步。JAVA的学习还只是在了解阶段,还只能用别人现成的框架做一些简单的应用,还未能清晰的明白Spring框架的原理和使用方法。另外一些流行的JAVA框架也未能很好的学习与掌握。Sites作为工作中的学习产品。后期的学习还是拖了一大截,并没有很多的去理解和掌握那些技术,比如SitePlan,多语言,Filter属性等等。对RestAPI和简单的Tag标签也只是一般的熟悉而已。至于PHP,除了年中接触过一个ThinkPHP项目,并试着更改一些代码之外,并没有很多过多的研究。充其量,算是一个插曲吧。目标上提到的技术文档,新技术应用,移动设备开发等等都是未触及或是完成的目标,是需要去思考原因的。至于专业的书籍,今年看的确实不多,《代码简洁之道》算一本外,其它的不提也罢了。

说到课外读物,文学类的今年的成绩还不错,初初算下来有十本之多,算是这些年阅读最多的一年吧。但自我感觉没有什么特别的提升,空有些自我满足。有一段时间,自己特别特别想写书,写点什么,但过了那个劲点,后面又慢慢的淡了,也许真得没有到那个时候。下半年女儿在杭州,晚上自己的时间也少了,在家很少看书学习,年末还玩起了LOL。这似乎又有些不对了,需要去克服吧。周末有时去培女儿上兴趣班,有时周边逛逛,在周末或是早晨抽点时间出来晨跑,这已是很美的事情了,跑步对我的帮助确实很大。我算是完成了年初制定的体重目标,最低的时候达到过62KG左右,这个重量好些年都没有见了。

改变是我很长时间都在想起的事情,自己需要改变,环境需要改变,生活也需要改变。改变需要勇气,需要时机。而我真得想找准找对那个时机,然后让自己更好的实现我们的目标。这个目标不会离我们太远,但确实需要我更加努力一点,更加突出一些,更加果敢一些。想到这里,内心又会不免的沉重起来,总说改变,又到底在什么时候呢?有时压力会让你充满动力,有时压力会让你泄气,这时就需要转变观念,转变视角,也许不同的路也能达到同样的目标。

要感谢的人太多,最多的是家人,感谢他们的宽容,宽容我的不足,我的缺点,我的自私。感谢一起走过的同事们,让我们愉快的共事了一年,并期待新的一年能更棒。感谢朋友们的关心与问候,没有朋友,生活同样没有花朵,没有滋味。相信未来会越来越好。

我的ITIL培训

这个周四和周五,我参加了公司两天的ITIL培训,通俗点讲就是IT服务管理的培训。在日常的工作中,我们已是这个服务体系中的一员,但我们似乎并不清楚这个体系的架构,流程和环节,也并不清楚其它角色的功能。作为二线和三线,我们只能处理一些具体的事件,并不与业务或是用户有直接的交道。也不太清楚业务的具体事件或是问题到三级再到修改变更应该经历的步骤。有的时候,我们知道是这么操作,但我们并不清楚这样操作的根源。这也是公司领导和服务团队给我们这次培训的原因与初衷吧。而且领导还特别的强调,这样的培训并不容易,不能请假。

怀着无比敬重的心情慢慢的展开了ITIL服务体系的内容。从ITIL的来源,定义到涉及的具体内容开始,细致的讲述了与我们结合最为紧密的6个功能部分依次是:服务台,事件管理,问题管理,变更管理,发布管理与配置管理。培训的讲师也很细致的讲述了这些功能划分的理由与依旧。服务台提供了与业务或用户的唯一联络点(SPOC)。事件管理能让事件得到迅速的响应与解决,而不致于影响业务。问题管理是找出事件的根本原因,找到深层次的根源,从而减少事件的发生。问题的解决往往会提出变更,这时就需要有变更管理,变更管理会结合业务实际进行变更的评估,审批,协调与评审。变更的过程往往会根据成本与效益确定不同的变更方案。发布管理负责对将导入运行环境的硬件和软件版本进行管理与分发,确定最终软件库,硬件库。发布需要制定发布计划,测试与验收,沟通与培训,分发与安装等。配置管理就是对我们的变更需要定期的记录,确保IT信息是最新的,准确的,为其它服务流程提供参考。

仅仅上面的几句话当然不能总结这两天来的内容与收获。但从深层次上讲,我更清楚的理解了我们日常工作中某些约定和工作了。我们一起约定事件与问题的等级(SLA),对那些优先级高的尽快处理。我们会适时整理知识库,为服务台或是一线同事快速的响应事件解决问题。我们会对问题进行分类和筛选,能让问题准确的定位,或从知识库,或从二三线专家那里快速得到答复。我们会定期的进行灾备演练,保证系统在连续性与可用性。我们会根据事件的解决率,分布率来分析出工作中的问题,给决策着提供变更的策略。我们有很好的各种安全策略,不定期的有安全方面的知识培训。从日常的工作回到培训,才明白这么做的意义。

我更深刻的明白了,IT是一个服务的团队。理解服务台在IT服务中的重要性,也会从不同的角度去考虑工作中与其他角色很好的进行沟通与协作。会去努力的相互学习与改进。第二天的飞机场起降的四轮演练,就是让我们慢慢的从先前的无序运用上述的ITIL理论来服务我们的机场,从而让各种问题出现的时候不再影响我们的业务,达到最终完美的服务。这种收获与进步是有深刻体会的。虽然我们在不同的岗位,但是最终的成功是与每个人的付出分不开的。只有将我们的服务台,事件管理,问题管理,发布管理,变更管理,配置管理,财务管理,安全管理等等都做的更好的时候,我们才能更好的服务我们的企业,才能最大的体现价值。这也是ITIL最高等级的目标。