Eclipse 中 SSH 项目搭建图文教程(三)
来源:互联网 发布:正规淘宝刷客平台 编辑:程序博客网 时间:2024/05/16 15:20
这一篇是承接上一篇文章《Eclipse 中 SSH 项目搭建图文教程(二)》写的,在前一篇文章搭建的环境及新建项目的基础上,主要说一说整合 Spring 部分。
第一步,重构代码。
在说 Spring 整合之前,我们先整理一下我们的代码,其实这部应该在 Hibernate 整合部分就应该弄好,可当时没整理,那么就在这里整理一下吧。
我们在工程中新建几个包:dao、dao.impl、service、service.impl,新建两个保存用户的方法,把原来 LoginAction 中保存用户的部分代码放到 UserDAOImpl 类中,代码结构如下:
代码如下:
LoginAction.java:
package com.menglanglang.ssh.demo.action;import com.menglanglang.ssh.demo.dto.UserDto;import com.menglanglang.ssh.demo.service.UserService;import com.opensymphony.xwork2.ActionSupport;public class LoginAction extends ActionSupport { private static final long serialVersionUID = 1L; private UserDto user; @Override public String execute() throws Exception { UserService userService = new UserService(); userService.add(user); return SUCCESS; } public UserDto getUser() { return user; } public void setUser(UserDto user) { this.user = user; }}
UserService.java:
package com.menglanglang.ssh.demo.service;import com.menglanglang.ssh.demo.dao.UserDAO;import com.menglanglang.ssh.demo.dao.impl.UserDAOImpl;import com.menglanglang.ssh.demo.dto.UserDto;public class UserService { private UserDAO userDAO = new UserDAOImpl(); public UserDAO getUserDAO() { return userDAO; } public void setUserDAO(UserDAO userDAO) { this.userDAO = userDAO; } public void add(UserDto u) { userDAO.save(u); }}
UserDAO.java:
package com.menglanglang.ssh.demo.dao;import com.menglanglang.ssh.demo.dto.UserDto;public interface UserDAO { public void save(UserDto u);}
UserDAOImpl.java:
package com.menglanglang.ssh.demo.dao.impl;import org.hibernate.Session;import org.hibernate.SessionFactory;import org.hibernate.cfg.Configuration;import com.menglanglang.ssh.demo.dao.UserDAO;import com.menglanglang.ssh.demo.dto.UserDto;public class UserDAOImpl implements UserDAO { @Override public void save(UserDto u) { Configuration cfg = new Configuration(); SessionFactory sf = cfg.configure().buildSessionFactory(); Session session = sf.openSession(); session.beginTransaction(); session.save(u); session.getTransaction().commit(); session.close(); sf.close(); }}
Dto包下的内容没有变化。
之所以这样改,是因为这种项目结构更加符合面向对象开发,等做的项目多了,自然就会觉得这是最好的代码结构,也是大家开发所公认的最常见的代码结构。
第二步,运行项目。
由于重构了代码,再次重新运行一下项目,看登陆时能否保存用户和密码到数据库,请确保能保存成功后,再请看下一步。
第三步,导入 Spring 所需要的包。
首先需要到官网下载 Spring 框架,下载地址为:http://repo.spring.io/release/org/springframework/spring/4.3.5.RELEASE/
这里下载的版本是 spring-framework-4.3.5.RELEASE-dist,下载后解压到 F 盘下。依次打开 F 盘 -> spring-framework-4.3.5.RELEASE -> libs,先把所有包复制到项目的 WebContent/WEB-INF/lib 下,当然可以把后缀为 -sources.jar 和 -javadoc.jar 的包除外,可以看到这些包都以 spring 打头,总共 20 个。
其实现在用不了这么多包,很多包添加后都是无用的,但是作为初学者,最好是都添加进去,等开发时间长了,自然而然就知道什么情况下该用什么包了。
第四步,编写 spring 配置文件。
在 src 下新建 XML 文件 spring.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" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <bean id="userDAO" class="com.menglanglang.ssh.demo.dao.impl.UserDAOImpl"> </bean> <bean id="userService" class="com.menglanglang.ssh.demo.service.UserService"> <property name="userDAO" ref="userDAO"></property> </bean> <!-- more bean definitions go here --></beans>
第五步,修改代码。
由于添加了 Spring 配置,所以需要修改源代码,让 Spring 帮忙注入 DAO 和 Service,主要修改如下:
LoginAction.java:
package com.menglanglang.ssh.demo.action;import org.springframework.beans.factory.BeanFactory;import org.springframework.context.support.ClassPathXmlApplicationContext;import com.menglanglang.ssh.demo.dto.UserDto;import com.menglanglang.ssh.demo.service.UserService;import com.opensymphony.xwork2.ActionSupport;public class LoginAction extends ActionSupport { private static final long serialVersionUID = 1L; private UserDto user; @Override public String execute() throws Exception { @SuppressWarnings("resource") BeanFactory applicationContext = new ClassPathXmlApplicationContext("spring.xml");// UserService userService = new UserService(); UserService userService = (UserService) applicationContext.getBean("userService"); userService.add(user); return SUCCESS; } public UserDto getUser() { return user; } public void setUser(UserDto user) { this.user = user; }}
UserService.java:
package com.menglanglang.ssh.demo.service;import com.menglanglang.ssh.demo.dao.UserDAO;import com.menglanglang.ssh.demo.dto.UserDto;public class UserService {// private UserDAO userDAO = new UserDAOImpl(); private UserDAO userDAO; public UserDAO getUserDAO() { return userDAO; } public void setUserDAO(UserDAO userDAO) { this.userDAO = userDAO; } public void add(UserDto u) { userDAO.save(u); }}
第六步,运行测试。
再次运行项目,看看加入的 Spring 配置好不好用。
如果报错如下:
ERROR StatusLogger No log4j2 configuration file found. Using default configuration: logging only errors to the console.
则说明少个日志包,从 http://commons.apache.org/proper/commons-logging/download_logging.cgi 下载 commons-logging-1.2.jar,并添加到项目中,再次运行,则错误消失。
到这里,Spring 的已经集成到了搭建的框架中。
但是目前,只是简单的对 Spring 进行了集成,如何用 Spring 管理数据连接,如何管理事务操作,如何把 Hibernate 部分整合到 Spring 中,接下来的文章会一一讲解,敬请关注。
- Eclipse 中 SSH 项目搭建图文教程(三)
- Eclipse 中 SSH 项目搭建图文教程(一)
- Eclipse 中 SSH 项目搭建图文教程(二)
- Eclipse搭建SSH(Struts2+Spring3+Hibernate3)框架项目教程
- Eclipse搭建SSH(Struts2+Spring3+Hibernate3)框架项目教程
- Eclipse搭建SSH(Struts2+Spring3+Hibernate3)框架项目教程
- Eclipse搭建SSH(Struts2+Spring3+Hibernate3)框架项目教程
- Eclipse搭建SSH(Struts2+Spring3+Hibernate3)框架项目教程
- Eclipse搭建SSH(Struts2+Spring3+Hibernate3)框架项目教程
- Eclipse搭建SSH(Struts2+Spring3+Hibernate3)框架项目教程
- Eclipse搭建SSH(Struts2+Spring3+Hibernate3)框架项目教程
- Eclipse搭建SSH(Struts2+Spring3+Hibernate3)框架项目教程
- Eclipse搭建SSH(Struts2+Spring3+Hibernate3)框架项目教程
- Eclipse搭建SSH(Struts2+Spring3+Hibernate3)框架项目教程
- Eclipse搭建SSH(Struts2+Spring3+Hibernate3)框架项目教程
- Eclipse搭建SSH(Struts2+Spring3+Hibernate3)框架项目教程
- Eclipse搭建SSH(Struts2+Spring3+Hibernate3)框架项目教程
- Eclipse搭建SSH(Struts2+Spring3+Hibernate3)框架项目教程
- selenium驱动浏览器IE、Chrome、FireFox
- 最佳加法表达式
- Runnable JAR file spring + mybatis 普通项目(非maven 非springboot)
- word2vec原理推导与代码分析
- 分隔符和定长解码器在netty中的应用
- Eclipse 中 SSH 项目搭建图文教程(三)
- Android文件合并时,打包出错
- POJ 3254 Corn Fields (状压dp)
- combox的change事件触发另一个combox下拉框显示数据清空
- ACM随笔 17.8.31
- www服务器
- C语言实现插入排序
- openstack中API调用源码分析
- 排序算法