1.新建web project,选择javaEE6.0:
2.在新建的项目上右击,在弹出菜单中选择“add spring capabilities".
选择srping3.0版本;选择 Spring 3.0 AOP Libraries;Spring 3.0 Core Libraries;Spring 3.0 Persistence Core Libraries;Spring 3.0 Persistence JDBC Libraries 以及 Spring 3.0 Web Libraries(图中未显示)五个类库,选择Copy checked Library contents to project folder(TLds always copied),将类库添加到lib目录中。点击Next。(如果选择添加spring3.1,生成反式映射的时候,会出现DAO类没有注入sessionFactory的问题。如果要使用spring 3.1的包,可以选择添加spring 3.0,在选择类库的时候不选择任何一个类库,然后手动添加spring 3.1的包)
3.选择specify new or existing...单选框选择New,Folder选择WebRoot/WEB-INF,点击finish完成spring框架的添加(完成后spring框架添加后的WebRoot和WEB-INF文件夹上会有一个s图标)。
4.下面添加hibernate3.3框架,在添加hibernate3.3框架之前,先创建一个新的数据库连接驱动:选择界面右上角的MyEclipse Database Explorer persispective,进入数据库视图.
5.在左边的DB Browser视图中,点击右键,在弹出菜单中选择new。
6.填入数据库的url、用户名、密码,点击add jars加入Java连接MySQL的驱动jar包,点击finish完成。
7.然后添加hibernate3.3框架:右键选择项目名,在弹出菜单中选择MyEclipse->Add Hibernate Capabilities。
8.选择hibernate3.3;选择Copy checked Library Jars to project folder and add to build-path,将类库复制到到lib目录中。其他选择默认配置,点击next。
9.选择Spring configuration file,由spring托管hibernate。点击next。
10.选择Exisisting Spring configuration file,点击next.
11.DB Driver选择刚才建立的ssh驱动,其他选择默认配置,点击next。
12.取消勾选 Create SessionFactory class,点击finish完成hibernate3.3框架的添加。
13.这时spring MVC+hibernate框架已经全部添加完,但是还需要导入jackson包,才能实现spring servlet直接返回json的功能,但是导入前要将冲突的包先删除:右键点击项目,选择build-path——》configure build path ,选择library标签,选择com.springsource.org.codehaus.jackson.mapper-1.0.0.jar,点击remove,点击ok;然后在web-inf的lib目录下,删除com.springsource.org.codehaus.jackson.mapper-1.0.0.jar包。然后直接把jackson-all-x.x.x.jar包复制到lib目录下。(其实也可以在第2步添加spring框架的时候少选择几个类库,只要不选择 Spring 3.0 Web Libraries,就不会添加com.springsource.org.codehaus.jackson.mapper-1.0.0.jar包,然后再导入所有需要的包即可,如果有重复就选择覆盖。可以只选择前四个spring类库,然后再导入所有需要的包;也可以只选择Spring 3.0 Core Libraries,再导入包,但是这种情况下由于缺少包,添加完hibernate框架后applicationContext.xml文件会报错,需要在导入所有包后,删除applicationContext.xml中错误的语句然后再撤销、保存,才能消除错误。 )
14.配置web.xml文件:
<?xml version="1.0" encoding="UTF-8"?> <web-app version="3.0" <span style="white-space:pre"> </span>xmlns="http://java.sun.com/xml/ns/javaee" <span style="white-space:pre"> </span>xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" <span style="white-space:pre"> </span>xsi:schemaLocation="http://java.sun.com/xml/ns/javaee <span style="white-space:pre"> </span>http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"> <display-name></display-name><span style="white-space:pre"> </span> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> <listener> <listener-class> org.springframework.web.context.ContextLoaderListener </listener-class> </listener> <span style="white-space:pre"> </span><servlet> <servlet-name>spring</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>spring</servlet-name> <url-pattern>/mvc/*</url-pattern> </servlet-mapping> <span style="white-space:pre"> </span> </web-app>
14.配置spring-servlet.xml文件:
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc" xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd"> <!-- 自动扫描的包名 --> <context:component-scan base-package="controller"></context:component-scan> <!-- 默认的注解映射的支持 --> <mvc:annotation-driven /> <!-- 视图解释类 --> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/" /> <!--可为空,方便实现自已的依据扩展名来选择视图解释类的逻辑 --> <property name="suffix" value=".jsp" /> </bean> </beans>
建立名为“controller”的包,在该包中新建类"Hello":
package controller; import javax.annotation.Resource; import model.User; import model.UserDAO; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @Controller public class Hello { @Resource UserDAO ud; @RequestMapping(value = "/hello") public String hello(int id,String pwd) { User user = ud.findById(id); if (user.getPwd().equals(pwd)) { return "success"; }else { return "error"; } } }
在index.jsp中添加一个表单,代码如下:
<form action="login.action" method="post">
<input type="text" name="id">
<input type="password" name="password">
<input type="submit" value="提交">
</form>
17.在webroot目录下新建两个代表登录成功和失败的页面,分别为“success.jsp”和"error.jsp";
18.启动服务器,在浏览器中打开首页,输入用户名和密码,如果正确则跳转到success.jsp,如果错误则跳转到error.jsp。
至此,一个spring mvc+hibernate框架的例子就完成了。