Eclipse下搭建Spring MVC + Hibernate开发环境
这里主要讲在Eclipse下如何搭配SpringMVC+Hibernate框架进行Web开发,至于Eclipse以及JDK以及MyEclipse等的安装不在此列,也不使用MyEclipse来搭建,只是手工搭建的方式。
1.版本
JDK1.50;Eclipse3.2;MyEclipse5.0;Tomcat5.0;Spring2.0;Hibernate3.2。
2.准备
安装好Eclipse和JDK环境,由于不使用MyEclipse,需要自行准备两个主要的包:Spring.jar包、Hibernate3.jar,还有commons-dbcp.jar,commons-pool.jar,spring-orm.jar等这些包;这些表都可以在相应的项目网站中下载到,或者网上搜索。
安装好后Lib下包会有:
activation.jar
antlr-2.7.6.jar
asm.jar
cglib-2.1.3.jar
commons-beanutils.jar
commons-collections.jar
commons-collections-2.1.1.jar
commons-digester.jar
commons-fileupload.jar
commons-logging.jar
commons-logging-1.0.4.jar
commons-validator.jar
dom4j-1.6.1.jar
ehcache-1.2.jar
jakarta-oro.jar
jstl.jar
jta.jar
log4j-1.2.11.jar
mail.jar
ojdbc14.jar
standard.jar
以下几个是比较重要的:
commons-dbcp.jar
commons-pool.jar
hibernate3.jar
spring.jar
spring-orm.jar
如果要用到Struts,会有一个struts.jar包。
3.搭建:
首先在"File"菜单下"new"一个"Project",选择"Other"下的MyEclipse下的"WebProject",把上面的包放到WebRoot/WEB-INF/lib下;
建立好工程后,我们在项目下的WebRoot/WEB-INF/下新建两个.xml文件,名字可以随便起(也可新建一个,内容和两个文件里面的内容一样即可),在这里命名为web-config.xml和model-config.xml,顾名思义,web-config.xml下配置和servlet以及控制逻辑等与WEB相关的bean,model-config.xml下配置与数据模型层相关的Bean,如数据访问的bean。
以下是model-config.xml内容:
<?xmlversion="1.0"encoding="UTF-8"?>
<beansxmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
<!--设定数据库连接池相关参数,这里使用的是Oracel的数据库-->
<beanid="dataSource"
class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<propertyname="driverClassName">
<value>oracle.jdbc.driver.OracleDriver</value>
</property>
<propertyname="url">
<value>jdbc:oracle:thin:@192.168.6.4:1521:database</value>
</property>
<propertyname="username">
<value>username</value>
</property>
<propertyname="password">
<value>password</value>
</property>
</bean>
<!--定义HibernatesessionFactory和Hibernate映射文件,所有的Hibernate映射文件统一在这里定义-->
<beanid="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"
destroy-method="destroy">
<propertyname="dataSource"ref="dataSource"/>
<propertyname="mappingResources">
<list>
<!--Hibernate映射文件把Hibernate的配置文件在这里映射,这里定义了一个UUser类的持久化类映射文件-->
<value>com/yondor/yuejiao/orm/UUser.hbm.xml</value>
</list>
</property>
<propertyname="hibernateProperties">
<props>
<propkey="hibernate.dialect">
org.hibernate.dialect.Oracle9Dialect
</prop>
</props>
</property>
</bean>
<!--SpringhibernateTemplate模板定义-->
<beanid="hibernateTemplate"
class="org.springframework.orm.hibernate3.HibernateTemplate">
<propertyname="sessionFactory"ref="sessionFactory"/>
</bean>
<!--Hibernate数据模型Bean定义-->
<beanid="dbDAO"
class="com.yondor.yuejiao.model.common.DbDAO">
<propertyname="hibernateTemplate"ref="hibernateTemplate"/>
</bean>
<!--以下是业务逻辑Bean的定义-->
<!--User模块开始定义的bean可以在web-config.xml配置文件中使用-->
<beanid="userDAO"
class="com.yondor.yuejiao.model.example.UserDAO">
<propertyname="dbDAO"ref="dbDAO"/>
</bean>
<!--User模块结束-->
</beans>
以下是web-config.xml的内容:
<?xmlversion="1.0"encoding="UTF-8"?>
<beansxmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
<!--Controller方法调用规则定义-->
<beanid="paraMethodResolver"
class="org.springframework.web.servlet.mvc.multiaction.ParameterMethodNameResolver">
<propertyname="paramName"value="action"/>
<propertyname="defaultMethodName"value="list"/>
</bean>
<!--页面View层基本信息设定-->
<beanid="viewResolver"
class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<propertyname="viewClass"
value="org.springframework.web.servlet.view.JstlView"/>
<propertyname="prefix"value="/yuejiao/"/>
<propertyname="suffix"value=".jsp"/>
</bean>
<!--servlet映射列表,所有控制层Controller的servlet在这里定义-->
<beanid="urlMapping"
class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<propertyname="mappings">
<props>
<propkey="example.do">userController</prop>
</props>
</property>
</bean>
<!--以下控制层ControllerBean定义开始-->
<!--User模块开始-->
<!--一共注入了7个属性(Bean),其中userDAO为业务逻辑Bean,该Bean定义在model-config.xml相应的模块中-->
<beanid="userController"
class="com.yondor.yuejiao.controller.example.UserController">
<propertyname="methodNameResolver"ref="paraMethodResolver"/>
<!--使用了在model-config.xml文件里定义userDAO-->
<propertyname="userDAO"ref="userDAO"/>
<!--以下的属性与处理后的跳转有有关-->
<propertyname="login_success"value="example/login_success"/>
<propertyname="login_failure"value="example/login"/>
<propertyname="register_success"value="example/register_success"/>
<propertyname="register_failure"value="example/register"/>
<propertyname="userInfoList"value="example/list"/>
</bean>
<!--User模块结束-->
</beans>
最后,还需要配置一下web.xml文件,内容如下:
<?xmlversion="1.0"encoding="UTF-8"?>
<web-appxmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2eehttp://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
version="2.4">
<session-config>
<session-timeout>
30
</session-timeout>
</session-config>
<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/model-config.xml,/WEB-INF/web-config.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>
</web-app>