Myeclipse整合ssh实例新建一个web Project,命名为SSHDEMO,下面的Context root URL改为sshdemo,这时最后你访问的路径在刚刚创建的SSH工程上面右击,在弹出的菜单中选择MyEclipse -> Add Struts Capabilities…,添加Struts 支持,选择Struts1.2,修改下面的Base package for new classes的路径,这里定义为org.wuliu.ssh.struts在SSH工程上面右击,在弹出的菜单中选择MyEclipse -> Add Spring Capabilities…,添加Spring的支持。
,在弹出的对话框中选择Spring 2,选择MyEclipse Libraries,按照图示选择相关的库。
由于Spring采取最小化库发布的方式,使得Spring的库文件彼此都是分离的,因而我们需要自己选择需要的库。
这里,AOP需要在添加Hibernate的事务处理时使用,Core是Spring 的核心库,ORM/DAO/Hibernate3库作为Spring持久化的支持,Web允许Spring 和Struts整合,其余保持原状,点击Next。
在这里添加Spring的配置文件,可以将Folder更改为Web-Root/WEB-INF目录。
这是为struts整合准备的。
其实,Spring的配置文件可以放在WEB-INF的任意目录中,具体的位置都需要在web.xml中进行配置。
这里仅仅采用最简便的方法,将配置文件放到WEB-INF下面在Database Driver对话框中按照如下配置选择数据库驱动。
首先选择Driver Template,在这里我们选择MySQL。
Driver Name是以后配置时使用的驱动名字,用以区分驱动,这里使用MySQL即可。
然后根据实际情况填写URL,User name 和Password。
点击Add JARs添加数据库驱动文件。
为方便配置,可以选择Save password保存密码。
配置完毕后Finish即可。
当配置完数据源后,就可以添加Hibernate支持了。
切换到MyEclipse Java Enterprise视图,在SSH工程上面右击,在弹出的菜单中选择MyEclipse -> Add Hibernate Capabilities…,添加Hibernate的支持在对话框中选择Spring configuration file,表示我们希望将Hibernate托管给Spring进行管理。
这是将Hibernate与Spring进行整合的基础在出现的对话框中选择Existing Spring configuration file。
因为我们已经添加了Spring的配置文件,所以这里选择的是已存在的配置文件。
MyEclipse会自动找到存在的那个文件。
然后在SessionFactory ID中输入Hibernate的SessionFactory在Spring配置文件中的Bean ID的名字,这里我们输入sessionFactory即可在出现的对话框中的Bean Id里面输入数据源在Spring中的Bean ID的名字,这里我们输入dataSource。
然后在DB Driver里面选择我们刚刚配置好的MySQL,MyEclipse会将其余的信息自动填写到表格里面在出现的对话框中取消Create SessionFactory class。
至此我们已经完成了SSH的添加,但现在只是将所有需要的文件放到了一起,并没有完成所有的配置。
现在我们要完成的是Hibernate的反向工程。
我们知道,Hibernate提供了ORM(Object Relation Mapping)机制,即将关系型数据库映射为面向对象的实现。
现在要做的是将数据库的表格映射为对象,这里会有大量的配置文档,但MyEclipse可以很方便的完成这些工作。
首先切换到MyEclipse DataBase Explorer视图,在需要使用的数据表格上面点击右键,选择Hibernate Reverse Engineering...。
这里我们使用刚刚建立的ssh数据库中的ssh表。
在打开的对话框中修改Java src folder为我们建立的/SSH/src,这里需要选择到src文件夹,并且需要填写Java package,这是MyEclipse生成的类所在的包,我们将其取名为obj。
然后选择Java Data Object,建立POJO类。
然后选择Java Data Access Object。
其中,POJO类是数据库表格所对应的Java类,JDO类是MyEclipse自动生成的对数据库的一些操作。
这里会封装一些常用的操作,简化我们的编写。
填写完成后点击Next此时SSH项目的目录结构如下所示。
其中的User.Java是MyEclipse生成的POJO 类,是使用面向对象的Java语言对数据库表格进行的抽象,User.hbm.xml是将数据库表格中的字段和POJO类的属性进行映射的定义,UserDAO.java封装了一些MyEclipse自动生成的对数据库的操作。
新建一个接口类IUserDAOpackage org.wuliu.ssh.dao;import java.util.List;import er;public interface IUserDAO {public User findById(Integer id);public List findByName(Object name);public void save(User user);}添加common-pool-1.4包添加service包和impl包,调正文件结构,新建IUserService.java和UserService.javapackage org.wuliu.ssh.service;import er;public interface IUserService {public User getUserById(Integer id);public User getUserByName(String name);public void addUser(User user);}package org.wuliu.ssh.service.impl;import java.util.List;import org.wuliu.ssh.dao.IUserDAO;import er;import org.wuliu.ssh.service.IUserService;public class UserService implements IUserService { private IUserDAO userDAO;public User getUserById(Integer id) {return userDAO.findById(id);}public User getUserByName(String name) { List list = userDAO.findByName(name);if(list.size() == 0) {return null;} else {return (User)list.get(0);}}public void addUser(User user) {userDAO.save(user);}public IUserDAO getUserDAO() {return userDAO;}public void setUserDAO(IUserDAO userDAO) {erDAO = userDAO;}}添加Form, Action and JSP 在弹出的对话框中添加User case,然后点击Add生成Properties代码。
这会由MyEclipse自动生成相应的Form代码。
输入完成后选择JSP选项卡,选上Create JSP form,修改路径这个BaseAction类继承自ActionSupport类,后者是Spring中对应着Struts 的Action的类。
ActionSupport类中提供了访问WebApplicationContext的简便方法,而后者是在web程序中获取Spring托管的类的上下文。
以后我们编写的Struts中的Action继承自这个BaseAction,就可以利用getBean在我们的Action中获取Spring托管的类。
package org.wuliu.ssh.struts.action;import org.springframework.web.context.WebApplicationContext; importorg.springframework.web.context.support.WebApplicationContextUtils; import org.springframework.web.struts.ActionSupport;public class BaseAction extends ActionSupport {protected Object getBean(String id){WebApplicationContext ctx =WebApplicationContextUtils.getWebApplicationContext(this.servlet.getS ervletContext());return ctx.getBean(id);}}为了让Web容器能够初始化Spring,我们需要修改web.xml文件,增加以下内容<context-param><param-name>contextConfigLocation</param-name><param-value>/WEB-INF/applicationContext.xml</param-value></context-param><servlet><servlet-name>SpringContextServlet</servlet-name><servlet-class>org.springframework.web.context.ContextLoaderServlet </servlet-class> <load-on-startup>1</load-on-startup></servlet>修改LoginAction.java/** Generated by MyEclipse Struts* Template path: templates/java/JavaClass.vtl*/package org.wuliu.ssh.struts.action;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.apache.struts.action.Action;import org.apache.struts.action.ActionForm;import org.apache.struts.action.ActionForward;import org.apache.struts.action.ActionMapping;import er;import org.wuliu.ssh.service.IUserService;import org.wuliu.ssh.struts.form.LoginForm;/***MyEclipse Struts*Creation date:06-25-2008**XDoclet definition:*@struts.action path="/login"name="loginForm"input="/login.jsp" scope="request"validate="true"*/public class LoginAction extends BaseAction {/** Generated Methods*//***Method execute*@param mapping*@param form*@param request*@param response*@return ActionForward*/public ActionForward execute(ActionMapping mapping,ActionForm form,HttpServletRequest request,HttpServletResponse response) {LoginForm loginForm = (LoginForm) form;String name = loginForm.getUsername();String password = loginForm.getPassword();String purview = loginForm.getPurview();ActionForward forward = mapping.getInputForward();IUserService service = (IUserService) getBean("UserService");User userFromDB = service.getUserByName(name);if(userFromDB.getPassword().equals(password) &&userFromDB.getPurview().equals(purview)){forward = mapping.findForward("success");}else{forward = mapping.findForward("fail");}return forward;}}添加一个welcome.jsp页面<%@ page contentType="text/html; charset=utf-8" language="java" %> <%@ taglib uri="/tags-html" prefix="html"%><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="/1999/xhtml"><head><title>Seccess</title></head><body> welcome! </body></html>在弹出的对话框中,选择Local Action Forward,通过Browser填写Action Path,然后填写Name和Path,完成后点击Finish即可在spring 的配置文件applicationContext.xml文件中添加<bean id="UserService"class="erService"> <property name="userDAO"><ref bean="UserDAO" /></property></bean>附上文件结构图:附上SSH层次调用说明图s。