在Eclipse下建立项目myNews,并配置Spring和Hibernate。
(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项目的目录结构
在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>
建立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/下。