Getting started with Spring MVC

Categories: Java; Tagged with: ; @ August 11th, 2013 12:00

1. Config pom.xml

2. Add mvc-dispatcher in web.xml

3. Config dispatcher xml, i.e.

        <context:component-scan base-package="com.liguoliang.jee.web" />
 
        <bean
            class="org.springframework.web.servlet.view.InternalResourceViewResolver">
            <property name="prefix">
                <value>/WEB-INF/pages/</value>
            </property>
            <property name="suffix">
                <value>.jsp</value>
            </property>
        </bean>

4. Controler:

package com.liguoliang.jee.web;


@Controller
@RequestMapping("/OrgMgt")
public class OrgMgtController {
	@RequestMapping(method=RequestMethod.GET, value={"", "view"})
	public String listOrgs(ModelMap modelMap) {
		return "OrgsList"; // JSP
	}
	
	@RequestMapping(value="new", method=RequestMethod.GET)
	public String createOrg(ModelMap modle) {
		Org initOrg = … // init new Org object.
		modle.addAttribute("newOrg", initOrg);
		return "NewOrg";
	}
	
	@RequestMapping(method=RequestMethod.POST)
	public String onSubmit(@ModelAttribute("org") Org org, BindingResult result) {
		OrgValidator validator = new OrgValidator();
		validator.validate(org, result);
		if(result.hasErrors()) {
			return "NewOrg";
		}
		
		return "redirect: OrgMgt";
	}
	

	@RequestMapping(value="view/{id}", method=RequestMethod.GET)
	public String viewOrg(ModelMap modelMap, @PathVariable Integer id) {
		modelMap.addAttribute("id", id);
		return "OrgDetails";
	}
}

马勒戈壁: 神华+绿色和平

Categories: Ugly; Tagged with: ; @ July 25th, 2013 13:33

转发:

 

 

10年前:内蒙古鄂尔多斯草原:一个名叫神华的大公司为了他的煤制油项目,在这里埋下100公里长的输水管,将沙漠湿地中的珍贵水源抢走……

2013年上半年:绿色和平的团队11次进入内蒙古鄂尔多斯的乌兰木伦和浩勒报吉农牧区等地,对大型央企神华集团位于鄂尔多斯的煤制油项目在该地区造成的生态和民生影响进行了实地调查。实地考察中,草原上的居民给我们展示了这个地方十几年前水草丰美的照片(上图右,与现在的干旱形成鲜明对比)。
2013年7月23日上午:绿色和平召开新闻发布会,公开了高度耗水的神华鄂尔多斯煤制油项目多年来掠夺地下水资源导致严重生态退化的调查结果:《噬水之煤——神华鄂尔多斯煤制油项目超采地下水和违法排污调查报告》,同时发布了当地人争取水资源的调查报道:《十年抗争——鄂尔多斯草原上的人物故事》。
2013年7月23至24日:平面媒体、网站收到通知不刊载、删除关于此新闻的相关报导和图片专题;绿色和平微博及其他人微博发布的相关内容被删帖;微博搜索“神华+绿色和平”无信息;绿色和平简体中文网站部分页面无法打开。
绿色和平被屏蔽了,你可以帮助草原发声。我们通过本邮件向你公开所有能够帮助你了解本次调研、和传播这个的故事和视频资料。请你与我们站在一起,要求神华立即正视超采地下水、污染造成的环境问题,停止对浩勒报吉地区的破坏。请把调查报告分享给相关专家,把宣传材料转载到媒体、微博和论坛。

我想了解数据与调查:

我想帮忙发图片视频等做宣传:

Maven hello world

Categories: Java; Tagged with: ; @ July 21st, 2013 11:45

Use maven to create, test, build project.

Steps:

  1. Create new project:
    mvn archetype:generate -DgroupId=com.liguoliang.app -DartifactId=my-app -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
  2. init Eclipse project:
    mvn eclipse:eclipse
  3. import the project into eclipse. (or you can directly create maven project in Eclipse using the Eclipse maven plugin)
  4. build the package:
    mvn package

 

life cycle:

  • validate: validate the project is correct and all necessary information is available
  • compile: compile the source code of the project
  • test: test the compiled source code using a suitable unit testing framework. These tests should not require the code be packaged or deployed
  • package: take the compiled code and package it in its distributable format, such as a JAR.
  • integration-test: process and deploy the package if necessary into an environment where integration tests can be run
  • verify: run any checks to verify the package is valid and meets quality criteria
  • install: install the package into the local repository, for use as a dependency in other projects locally
  • deploy: done in an integration or release environment, copies the final package to the remote repository for sharing with other developers and projects.

Trouble shooting

Error: Caused by: java.lang.UnsupportedClassVersionError:Unsupported major.minor version 51.0

Check the JVM which is using by Maven:

mvn –version can get a summary:

C:\Users\Guoliang>mvn -version
Apache Maven 3.0.4 (r1232337; 2012-01-17 16:44:56+0800)
Maven home: C:\Tools\sts\apache-maven-3.0.4\bin\..
Java version: 1.7.0_17, vendor: Oracle Corporation
Java home: C:\Tools\jdk7\jre
Default locale: en_SG, platform encoding: GBK
OS name: "windows 7", version: "6.1", arch: "x86", family: "windows"

You can edit the Java Home path or specify the JVM for maven.

AWS Summit – Singapore

Categories: Uncategorized; Tagged with: ; @ July 20th, 2013 22:13

1374468334

 

周四请了年假, 9点多才到.

Hands-On Labs一直有人排队, 等我11点多去拍的时候发现已经遥不可及了…最后拿了一长token卡片,  没有吃饭就闪了.

 

眼看token马上就要过去, 于是今天去https://aws.qwiklab.com 自学了一把. 输入token之后就可以setup EC2, EBS, RDS等等,  非常流畅的体验!

image

我所了解的西门子(SSME)

Categories: 垃圾山 July 13th, 2013 0:19

离开西门子(SSME)一年多了, 写一点无关紧要的细节.  纯粹是个人的看法.

 

面试

11年春天,  我开始换工作. 行情好, 猎头推的也很积极. 唯独西门子是自己从51Job上投的简历. 自己投简历之后第二天, 一个猎头转发给我邮件,  内容是西门子的这个职位, 备注是”靠谱”.

本以为自己网申并不会有很快反馈, 不想几天之后就收到HR电话约面试时间. 

两个面试官, 一个是未来的直接上司, 另一个是未来的同事.
技术面试谈了很多, Flex, Java, 数据库等等,  考了一个简单的算法题, 计算小于某整数的所有整数的和. for loop描了一下, 老板说, 写个recursive吧, 于是又写了个recursive.  快结束时, 老板告诉我, 下一轮是美国的电话面试, 让我回去把我简历中学院的翻译改正一下, 再把简历发给他.

电话面试在两周之后的某个晚上, 美国的三个同事, 还有前面见过的老板. 在等待其他人的时候, 他用中文问我, 用英文沟通的机会多不多, 告诉我不要紧张, 慢慢说, 表达清楚就好.  这是我第一次参加电话会议, 也是我第一次在电话会议里跟这么多人面试.  战战兢兢的度过了1个小时, 中间我不时皱起眉头 希望面试快点结束… 由于HR发邮件时copy给了这些面试官, 所以我有机会在后面发邮件道谢. 当晚收到回复:  “you did very well during interview. So, don’t worry about it, and wish to work with you soon.”

第三轮是大Boss, 约好时间之后, 他直接打电话给我, 聊了半个小时的技术, 之后用中文随便聊了一下, 算是结束.

之后便是我不太喜欢的环节: 谈薪水. (碰到过不少HR, 谈薪水跟在市场买白菜一样砍价)

HR给我开了一个不错的Offer, 象征性的挣扎了一下, 我就接受了.

 

关于西门子

面试时, 老板问我, 对西门子了解有多少, 我一时紧张, 只想起来西门子的手机(真是哪壶不开提哪壶啊), 然后还有西门子的厨房, 冰箱…后来还说了个地铁车厢跟CT.  后来我知道, 西门子有医疗, 有轨道交通,  工业, 有新能源, 水处理, 还有明西, 诺西, 博西…

 

老板

先说说我的直接上司, 技术经理(Engineering manager):

公司在浦东郊县, 所以都是每天都要坐班车从浦西到浦东, 某天早晨堵车, 九点多了, 班车还在徐浦大桥上卡着, 发信息给老板, 老板回复: be patient, take care. 

入职后不久就是我的生日,  当时我们team散在不同的楼里, 老板打电话, 让我去会议室review performance, 我有点懵(当时还没过试用期), 结果进去之后发现桌子上有蜡烛, 还有贺卡.

有一段时间几乎所有的同事都去了美国, 只剩下我跟另外一个哥们, 某天我们感觉需要多加一会儿班, 于是在下班后我们继续留在公司, 结果6点多老板开完会出来看到我俩还在公司, 非常诧异甚至有些责备的说:  “为什么还不回家, 是谁允许你们加班的?! 赶紧回家. “

再说说我的GM:

公司有很多班车, 碰到下雨天, 班车挤在一起下人的时候,  排在后头的就会不小踩到水里甚至是泥里, 某天吃完的时候, 我跟同事抱怨, GM听到后, 很认真的告诉我他会处理. 几周后水泥地修好, 老板指着水泥地笑着跟大家说, 这里有我的功劳.

 

团队

我们本地team有20个人左右(我是学历最低, 学校最烂的一个), 只要大家在公司, 大家都会坐在一起吃饭.   

某天, 我不小心把一个数据库清空了— 这个数据库存了很多PM录进去的meta data,  幸亏有一个备份. 但是我不太懂数据库, 所以几个同事留下来帮我恢复, 但是备份有问题, 弄到很晚还是以失败告终, 但大家能够留下来做跟自己不相干的事情, 这让我很费解 也很感动.

有一段时间我们很忙, 中国team自己维护一个SVN, 我负责Continuous integration,  有时候发现有些同事在晚上11点甚至0点submit代码! 他们没有加班, 但他们却电脑回家修bug!!!  自觉地回家无偿为公司加班, 很多人会觉得这很傻, 其实大家只是不想拖team的后腿.

后来, 由于很多原因, 大家需要分开. 回美国的回美国, 移民的移民, 有留下的, 也有离开的.  但还是经常的邮件来往, 像大学同学一样.

 

工程师文化

我觉得在SSME, 作为一名工程师, 是值得自我肯定的.  而周围的环境也让我感觉到, 我可以稳定在这个岗位上, 持续的做一名工程师. 并且, 获得认可与尊重.

 

培训

西门子管理学院有很多课程可供选择,  很早选了一门课.  结果课程安排到我离职前两周, 老板还是很支持我去上课, 我并不认为所有的公司/老板都能这样.

 

技术

对于一个程序员来说,  选择技术就像挑选股票.  风险大的地方才有高回报.

坦白说, 当时我的Java并不够强,  至少不足以加入到这个团队里. 但是, 所幸我的Flex还行,  碰巧的是, 通Flex跟Java的人并不多.  所以, Flex + Java, 让我加入到了一流的团队中.

半年后, Adobe宣布要把Flex捐献给Apache, 到现在, 几乎很难再找到靠谱的Flex工作.  所以, 我是幸运的.

 

之后

在过去的一年中, 我时常回想起在西门子的时光, 我觉得有很多值得留恋并且不容易再遇到的东西:

  • 技术出身的老板, 年轻时写过程序, 从心底理解程序员, 在必要的时候甚至会捡起代码修bug;
  • 管理层认可并尊重创新与质量控制, 重视工程师;
  • 有情有义的团队.

Newer Posts <-> Older Posts



// Proudly powered by Apache, PHP, MySQL, WordPress, Bootstrap, etc,.