今天上午师兄抽出了时间讲了一下java web开发的整体流程和开发工具等东西,虽然绝大部分都已经用过了,但是感觉没有这样整体的流程过一下,并且在其中有一部非常不错的闪光点,所以我觉得有必要回顾一下,并将这些东西记下来,以防以后忘记了.

一.java

  java的讲解主要涉及到两点,JDK搭建和eclipse 编码格式ini配置  

  1.JDK搭建

    深受师兄影响和在实际上也的确遇到了很多的类似的麻烦,我同样支持在安装java JDK的时候采用非安装包的方式,直接配置环境变量搭建JDK环境.

  a.下载JDK免安装版压缩文件,具体的路径地址百度一下应该很多

  b.

     在免安装版的JDK文件中包含如下的两个文件,其中JDK是开发者使用的jar包等,配置环境的时候就是配置到这下面,开发者在开发的过程中使用到的就是这里;另外jre7是运行时的环境.

  下面说一下环境变量的配置:

    (1)JAVA_HOME:指向上图中JDK下的目录,我这里是D:\java\jdk1.7.0_21;

    (2)CLASSPATH:类文件,也就是说java程序编译的时候会去寻找jar包的地方,这里配置应该是jdk下的lib文件夹,我这里是D:\java\jdk1.7.0_21\lib;但是值得注意的是这里还要加一个东西:.;D:\java\jdk1.7.0_21\lib;这里的.代表着项目当前目录,我们在开发的过程中常常会引用这样那样的jar包放到项目中,所以这里会先到当前项目的lib包中寻找jar包,如果不存在才会去CLASSPATH配置下的路径去寻找jar包.

    (3)path:最后需要配置的是指向JDK启动的文件,在jdk路径的bin目录下有个javaw.exe的应用程序,需要在path环境变量中配置到这里,java运行过程中才会去这个路径寻找到javaw.exe应用程序.

    (4)最后是验证,启动cmd,输入java,如果有输出则代表配置完成.

  2.eclipse 编码格式ini配置

    在程序的编写过程中经常会出现各式各样的乱码问题这是因为各个程序采用了不同的编码格式,比方说在mysql中的编码格式是iso,而在eclipse中的编码格式是utf-8则会出现乱码;

    所以不论是前台的展示页面比如html,jsp,freemarker,还是后台的数据库,最后是eclipse的逻辑处理层都需要采用相同的编码格式,而在绝大部分程序中都是采用的UTF-8;所以eclipse中一般是采用UTF-8的编码格式,但是为避免在创建项目的时候忘记设置导致乱码,所以一般都采用在eclipse的配置文件eclipse.ini中进行配置.

    在eclipse.ini最后一行加上:-Dfile.encoding=UTF-8

二.MAVEN

  1.maven的配置

    在maven的使用过程中,涉及到如下的几个步骤:

      (1)eclipse中下载maven插件,在现在的eclipse版本中一般情况是不需要下载maven插件的,因为大多已经集成了maven,这个时候是可以不需要下载maven的,但是一般情况下我们还是愿意下载maven,因为这样的话我们可以修改maven中另外一个非常重要的文件settings.xml在这里面可以配置maven的仓库地址等较为重要的东西,下载地址:maven.apache.org

      (2)下载完maven后需要做的是在eclipse中集成maven插件,同样的在部分eclipse是集成了maven插件的,但是如果没有集成的情况下,进入help->Eclipse Marketplace,在其中输入maven,选择m2eclipse-wtp进行安装eclipse maven IDE集成器

      (3)配置完成过后,需要修改一些maven的配置:进入window->preferences->maven->Installations中新增maven,在这里本身可能存在eclipse自带的maven,但是最好是在这里点击add加入你自身下载过得maven.

      进入window->preferences->maven->User Settings 选择你自身配置的settings.xml,这里关于settings.xml的配置和设置在我的博客有相关的文章讲述.

  2.maven的使用

     maven的主要作用就是在建立项目的过程中可以统一标准和节省大量的人力物力,存在这样的一种情况,各种项目依赖于各种不同的包,而这些jar包的版本是不同的,如果将一个项目从一个地方移动到另外一个地方的时候,会存在jar包过大的情况,另外也可能存在各种依赖的jar包版本不相同导致在项目的开发过程中,如果不同版本的jar包引入可能导致程序未知名的错误.

    而使用maven就不会存在这样的情况,maven采用依赖机制的方式,决定了项目的jar包依赖是根据不同的环境去maven官网或者私服下载jar包,这样就不会导致项目过于负责的情况;另外采用pom和settings进行配置让项目的开发更加轻便简洁化.

    (1)项目的创建:

      a.首先创建一个maven Project作为一个父亲项目,项目格式maven-archetype-site,该项目可以为空.

(<packaging>pom</packaging>作为父项目的iteam-parent,其pom.xml<packaging>格式必须为pom,另外默认是为jar)

      b.创建maven Module格式的项目,分别创建maven-archetype-quickstart的工具module(iteam-commons)<packaging>jar</packaging>,maven-archetype-webapp的webmodule(iteam-app,iteam-admin)<packaging>war</packaging>

      c.到这里maven的项目基本上建立完成,下面要做的是利用maven引用jar包:search.maven.org,这是maven的官方网站.

这里实际上真没什么好说的,o(╯□╰)o.

      d.建立完成后,maven项目之中是可以互相引用的,比方我希望在iteam-admin中引入iteam-commons的jar包,只需要在iteam-admin的pom.xml文件中加入对iteam-commons的依赖.

<dependency>
			<groupId>org.iteam</groupId>
			<artifactId>iteam-commos</artifactId>
			<version>0.0.1-SNAPSHOT</version>
		</dependency>

  最后对iteam-parent的主项目,run as -> maven build...对maven进行打包,这个时候前面的依赖就会产生jar包放到iteam-admin中方便程序员的使用了.

三.测试工具

  在创建maven-archetype-quickstart的工具module(iteam-commons)的jar包的时候,不可能将未经过测试的java工具类直接放入程序中进行测试,因为这样会是一个比较繁琐的过程,这个时候就需要编写测试工具了,实用测试工具验证编写的工具类是否可以正常的完成相应的功能,在这里maven会自带一个叫做junit的依赖,下载相应的junit jar包进行使用,但是今天开会的时候师兄推荐了一个TESTNG的工具,没试用过暂时无法写这段测试工具的文章,所以暂时先放在这里.

四.版本控制工具

  以前一直使用的svn在师兄嘴里不行了,哎,跟着社会的脚步走,只有开始学习新的了---git,好在以前尝试着学习了一下,虽然还未掌握到真正的精华,但是基础的使用已经了解了一部分,在这里进行不详细的讲解,以后学习之后会逐渐完善:

  在这里主要阐述一下两个观点和GIT安装使用

  1.就我目前的接触而言我认为较为重要需要阐述的两个观点分别是:分支和冲突解决.

    分支的理念是这样的,在版本控制器的管理过程中,会有较多的人对版本控制器的代码进行更新,但是现实社会中项目是由多个功能实现的,这里就可以想到高中时候学到的电路图中的并联,每个功能代表一条线路,从一个点会分出多个线路出来,对于点之前的东西是大家共同拥有的东西,那么大家都会约定俗成的去使用它,但是对于线路上的东西来说,每个人走的线路是不尽相同的,如果每个人都向串联那样你先完成我在完成明显的是会降低效率的,在这种情况下,分支的好处就在于从分支的那个点开始,给你们每个人一条线路去完成你需要独立完成的任务,最后在合成的地方直接进行合成.这样效率提高了,也不会存在代码覆盖的问题.

    冲突解决:存在这样的一种情况,A,B两人下载了1项目,然后A,B分别对1项目进行了修改,然后分别提交,那么服务器是接收A还是接收B提交的项目呢?这就是冲突产生的原因.

    冲突解决的方式很简单,也很复杂.同样针对1项目A,B两人去修改,A先修改完了于是他提交,然后现在服务器的1项目就变成2了(这里是假设实质上是版本号增加了),B想要进行提交他所修改的东西的时候发现了,哇.1项目编程2了,那还怎么提交呢?于是B只能将2项目下载下来覆盖了1项目才针对2项目修改,然后提交,于是1项目变成3项目了...

  2.git的安装与使用

    git的安装http://msysgit.github.io/下载后一路默认即可.

 

  先写到这里,后面会逐步完善,这次主要是想给同学们看看,希望能与同学们共同进步,如果有不好的地方或者错误的地方希望大家指出,我会尽快改正和完善,谢谢大家.