14.3 在Eclipse下建立項目myNews
在Eclipse下建立項目myNews,並配置Spring和Hibernate。
14.3.1 在Eclipse下建立項目
(1)運行Eclipse,選擇File→New→Project命令,Eclipse將彈出New Project對話方塊,14.4所示。
(2)挑選清單框中Java下的Tomcat Project,然後單擊Next按鈕,彈出New Tomcat Project對話方塊,14.5所示。
圖14.4 New Project對話方塊 圖14.5 New Tomcat Project對話方塊
(3)在New Tomcat Project對話方塊中的Project name文字框中輸入“myNews”,然後單擊Finish按鈕,項目即建立成功。myNews的目錄結構14.6所示。
(4)把log4j-1.2.9.jar、commons-logging.jar、spring.jar、antlr.jar、asm.jar、spring-hibernate3.jar、asm-attrs.jar、cglib.jar、commons-collections.jar、dom4j.jar、ehcache.jar、jta.jar、mysql-connector-java-
5.0.0-beta-bin.jar、hibernate3.jar這14個jar放在/WEB-INF/lib/下以將其複製到myNews/WEB-INF/lib目錄下,即CLASSPATH中。
(5)用Windows內建的文字編輯器建立一個檔案log4j.properties,把log4j.properties放到myNews/
WEB-INF/src目錄下。
(6)編輯log4j.properties檔案。內容如下:
log4j.rootLogger=DEBUG,stdout,R
log4j.logger.org=ERROR, A1
log4j.logger.com.gd =DEBUG,A2
log4j.appender.A1=org.apache.log4j.RollingFileAppender
log4j.appender.A1.File=org.log
log4j.appender.A1.MaxFileSize=500KB
log4j.appender.A1.MaxBackupIndex=50
log4j.appender.A1.Append=true
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%d{ISO8601} - [%p] [%C{1}] - %m%n
log4j.appender.A2=org.apache.log4j.RollingFileAppender
log4j.appender.A2.File=gc.log
log4j.appender.A2.MaxFileSize=500KB
log4j.appender.A2.MaxBackupIndex=50
log4j.appender.A2.Append=true
log4j.appender.A2.layout=org.apache.log4j.PatternLayout
log4j.appender.A2.layout.ConversionPattern=%d{ISO8601} - [%p] [%C{1}] - %m%n
#--------------------stdout--------------------------------
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
# Pattern to output the caller's file name and line number.
log4j.appender.stdout.layout.ConversionPattern=[%-5p] %d{yyyy-MM-dd HH:mm:ss} %c - %m%n
#--------------------R--------------------------------
#log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R=org.apache.log4j.DailyRollingFileAppender
#this log file will be stored in web server's /bin directory,modify to your path which want to store.
log4j.appender.R.File=gf.log
#log4j.appender.R.datePattern='.'yyyy-MM-dd-HH-mm
log4j.appender.R.datePattern='.'yyyy-MM-dd
log4j.appender.R.append=true
## Keep one backup file
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=[%-5p] %d{yyyy-MM-dd HH:mm:ss} %c - %m%n
#[%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n
(7)在myNews上單擊滑鼠右鍵,在彈出的捷徑功能表中選擇Properties命令,彈出Properties for myNews對話方塊,14.7所示。
(8)在Properties for myNews對話方塊中,選擇對話方塊左邊列表框中的Java Build Path。
(9)在Libraries選項卡中,單擊Add JARs…按鈕,彈出JAR Selection對話方塊,14.8所示。
圖14.7 Properties for myNews對話方塊 圖14.8 JAR Selection對話方塊
(10)在JAR Selection對話方塊中,開啟列表框中的myNews一直到lib目錄下出現14個jar:log4j-1.2.9.jar、commons-logging.jar、spring.jar、antlr.jar、spring-hibernate3.jar、asm.jar、asm-attrs.jar、cglib.jar、commons-collections.jar、dom4j.jar、ehcache.jar、jta.jar、mysql-connector-java-5.0.0-beta-bin.jar、hibernate3.jar。
(11)按住Ctrl鍵,選中這14個jar,然後單擊OK按鈕返回到Properties for myNews對話方塊,14.9所示。
圖14.9 Properties for myNews對話方塊
(12)在Properties for myNews對話方塊中單擊OK按鈕,即可完成對Spring和Hibernate的配置。
(13)再次在myNews上單擊滑鼠右鍵,在彈出的捷徑功能表中選擇New→Package命令,將彈出New Java Package對話方塊,14.10所示。
%注意:在spring.jar中,沒有包含對Hibernate的支援。如果需要使用Hibernate,則需要把spring-framework-2.0-m1/dist/extmodules/spring-hibernate3.jar也包含進CLASSPATH中。
(14)在New Java Package對話方塊的Name文字框中輸入“com.gd.action”,然後單擊Finish按鈕,即可建立com.gd.action包。
(15)用同樣的方法建立com.gd.service包、com.gd.service.impl包、com.gd.dao包、com.gd.dao.impl包和com.gd.vo包、com.gd.po包。
(16)在WEB-INF目錄下建立jsp檔案夾。
(17)最終配置好Spring和Hibernate的myNews項目的目錄結構14.11所示。
圖14.10 New Java Package對話方塊 圖14.11 配置好Spring和Hibernate的myNews項目的目錄結構
14.3.2 編寫Ant build檔案
在myNews目錄下建立一個Ant檔案build.xml。範例程式碼如下:
<?xml version="1.0"?>
<project name="myNews" default="init" basedir=".">
<property name="myNews.home" value="." />
<property name="myNews.lib" value="${myNews.home}/WEB-INF/lib" />
<property name="myNews.jar" value="${myNews.home}/WEB-INF/lib" />
<property name="myNews.classes" value="${myNews.home}/WEB-INF/classes" />
<property name="tomcat.home" value="D/:/jakarta-tomcat-5.5.5" />
<!--<property file="build.properties" />以上內容還可以定義在build.properties中-->
<target name="init">
<path id="all">
<fileset dir="${myNews.lib}">
<include name="**/*.jar" />
</fileset>
/*用來定義所包含的jar*/
<fileset dir="${tomcat.home}/common/lib">
<include name="*.jar" />
</fileset>
</path>
<mkdir dir="${myNews.classes}" />
</target>
<target name="clean">
<delete dir="${myNews.classes}">
</delete>
</target>
<target name="compile" depends="init">
/*用來定義要編譯的源檔案和編譯後的路徑*/
<javac srcdir="${myNews.home}/WEB-INF/src" destdir="${myNews.classes}" target="1.5">
<classpath refid="all" />
</javac>
</target>
<target name="jar" depends="compile">
/*用來定義打包後jar的名字和路徑*/
<jar jarfile="${myNews.jar}/gd.jar" basedir="${myNews.classes}" includes="com/gd/**">
</jar>
</target>
<!--將myNews項目打包成war檔案-->
<target name="war" depends="jar">
<war destfile="${myNews.home}/myNews.war" webxml="${myNews.home}/WEB-INF/web.xml">
<fileset dir="${myNews.home}" casesensitive="yes">
<include name="WEB-INF/**" />
<exclude name="*.war" />
</fileset>
<lib dir="${myNews.home}/WEB-INF/lib">
<include name="*.jar" />
</lib>
</war>
</target>
</project>
14.3.3 配置web.xml檔案
建立web.xml檔案,放在myNews/WEB-INF目錄下。web.xml的範例程式碼如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN" "http://java.sun.com/j2ee/dtds/web-app_2_2.dtd">
<web-app>
……
<servlet>
<servlet-name>dispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/conf/dispatcherServlet-servlet.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcherServlet </servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<taglib>
<taglib-uri>/spring</taglib-uri>
<taglib-location>/WEB-INF/tld/spring.tld</taglib-location>
</taglib>
……
</web-app>
代碼說明:
● /WEB-INF/conf/dispatcherServlet-servlet.xml,為了統一管理,在WEB-INF下建立一個檔案夾conf,把設定檔放在/WEB-INF/conf/下。
● /WEB-INF/tld/spring.tld,為了統一管理,在WEB-INF下建立一個檔案夾tld,把自訂標籤檔案放在/WEB-INF/tld/下。