vue项目接口域名动态的获取方法
225
2023-06-03
Spring集成Struts与Hibernate入门详解
前言
最近将Spring,Struts,Hiberbate基础已经学习完成。想自己把这三个框架集成一下,然后再写一个后台管理网站练练手。Spring的作用是依赖注入,而Struts是显示层的东西,这两个框架集成后是什么样子。一边学习,一边记录。上车。
Spring集成所需jar包
首先,Spring集成Struts,那么applicationContext.xml和struts.xml,web.xml肯定是不能少的。前面两个是Spring和Struts的配置文件,后面一个是整个web的全局配置文件。在每个配置文件中应该怎么配置,怎么相互关联呢。其实就是将Struts中指定的Action 类为Spring注入的类。
三大框架集成开发并不难,难的地方在于各个包的依赖要搞清楚,版本之间的差异也是一点。下面列出Spring集成Struts所依赖的包:
依赖包
此处所有依赖为Struts2.0和Spring3.0。版本有点老,我用最新版的始终集成不正确。等搞好了再升级版本。
Number
Package
Platform
Function
1
commons-fileupload-1.2.2.jar
common
文件上传功能
2
commons-io-2.0.1.jar
common
3
commons-lang-2.5.jar
common
4
commons-logging-1.1.1.jar
common
日志
5
freemarker-2.3.16.jar
Struts
模版引擎
6
javassist-3.11.0.GA.jar
common
动态编程
7
ognl-3.0.1.jar
common
表达式语言,提供属性,方法调用
8
org.springframework.asm-3.1.1.RELEASE.jar
spring
Spring独立的asm程序,Spring2.5.6的时候需要asmJar 包3.0.6开始提供他自己独立的asmJar。暂时我自己也不懂这事干嘛的。
9
org.springframework.beans-3.1.1.RELEASE.jar
spring
Spring IOC实现
10
org.springframework.context-3.1.1.RELEASE.jar
spring
Spring提供在基础IoC功能上的扩展服务,此外还提供许多企业级服务的支持,如邮件服务、任务调度、JNDI定位、EJB集成、远程访问、缓存以及各种视图层框架的封装等
org.springframework.context.support-3.1.1.RELEASE.jar
spring
Spring-context的扩展支持,用于MVC方面
12
org.springframework.core-3.1.1.RELEASE.jar
spring
Spring 核心工具包
13
org.springframework.expression-3.1.1.RELEASE.jar
spring
Spring表达式语言
14
org.springframework.web-3.1.1.RELEASE.jar
spring
Spring Web工具包
15
org.springframework.web.servlet-3.1.1.RELEASE.jar
spring
基于servlet的MVC实现
16
struts2-core-2.2.3.1.jar
struts
Struts核心库
17
xwork-core-2.2.3.1.jar
struts
xwork核心库
18
struts2-spring-plugin-2.2.3.1.jar
struts
Spring与Struts相互集成
19
antlr-2.7.2.jar
common
语言语法分析器
20
aopalliance-1.0.jar
common
面向切面编程接口
21
commons-dbcp.jar
common
DBCP数据库连接池
22
commons-pool.jar
common
DBCP数据库连接池
23
dom4j-1.6.1.jar
hibernate
灵活的xml框架
24
hibernate-jpa-2.0-api-1.0.1.Final.jar
hibernate
注解使用类
25
hibernate3.jar
hibernate
数据库核心包
26
jta-1.1.jar
hibernate
分布式事务处理
27
mysql-connector-java-5.1.18-bin.jar
hibernate
jdbc连接器
28
org.springframework.jdbc-3.1.1.RELEASE.jar
hibernate
spring与jdbc集成
29
org.springframework.orm-3.1.1.RELEASE.jar
hibernate
数据库集成
30
org.springframework.transaction-3.1.1.RELEASE.jar
hibernate
事务集成
31
slf4j-api-1.6.1.jar
common
日志系统
集成
model层
新建Usermodel,如下:
package com.action;
import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
@Entity
@javax.persistence.Table(name="user")
public class User implements Serializable{
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue
@Column(name="id")
public int id;
@Column(name="name")
public String name;
@Column(name="password")
public String password;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
@Override
public String toString() {
return "User [name=" + name + ", password=" + password + "]";
}
}
dao层
新建dao接口:
package com.dao.impl;
import java.util.List;
import com.action.User;
import com.action.UserAction;
public interface UserDao {
public void save(User action);
public User getUser(int id);
public void update(User action);
public void delete(User userAction);
public List
}
实现dao接口
package com.dao.impl;
import java.util.List;
import org.hibernate.SessionFactory;
import org.springframework.orm.hibernate3.HibernateTemplate;
import com.action.User;
import com.action.UserAction;
public class UserDaoImpl implements UserDao {
private SessionFactory sessionFactory;
private HibernateTemplate mHibernateTemplate;
public SessionFactory getSessionFactory() {
return sessionFactory;
}
public void setSessionFactory(SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
}
public HibernateTemplate getHbernateTemplate() {
if (mHibernateTemplate==null) {
mHibernateTemplate = new HibernateTemplate(sessionFactory);
}
return mHibernateTemplate;
}
public void save(User action) {
// TODO Auto-generated method stub
getHbernateTemplate().save(action);
}
public User getUser(int id) {
// TODO Auto-generated method stub
User userAction = getHbernateTemplate().get(User.class, new Integer(id));
return userAction;
}
public void update(User action) {
// TODO AutoTCDlTKo-generated method stub
getHbernateTemplate().update(action);
}
public void delete(User userAction) {
// TODO Auto-generated method stub
getHbernateTemplate().delete(userAction);
}
@SuppressWarnings("unchecked")
public List
// TODO Auto-generated method stub
String queryString = "from User u where u.name like ?";
return getHbernateTemplate().find(queryString);
}
}
view层
显示以及action
/**
*
*/
package com.action;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts2.ServletActionContext;
import com.dao.impl.UserDaoImpl;
import com.opensymphony.xwork2.ActionSupport;
/**
* @author kevin
*
*/
public class UserAction extends ActionSupport {
public String name;
public String password;
private UserDaoImpl userDao;
public String getName() {
return name;
}
public void setUserDao(UserDaoImpl userDao) {
this.userDao = userDao;
}
public UserDaoImpl getUserDao() {
return userDao;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
@Override
public String execute() throws Exception {
// 不能直接new 得从applicationContext中获取
HttpServletResponse response = ServletActionContext.getResponse();
response.setContentType("text/xml;charset=UTF-8");
User user = new User();
user.name = name;
user.password = password;
userDao.save(user);
response.getWriter().write(user.toString());
return "success";
}
}
第一个页面
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@taglib prefix="s" uri="/struts-tags"%>
第二个页面
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
${name}
${password}
配置文件
添加全局web配置文件
Spring配置文件
xmlns:xsi="http://w3.org/2001/XMLSchema-instance" xmlns:p="http://springframework.org/schema/p" xmlns:aop="http://springframework.org/schema/aop" xsi:schemaLocation="http://springframework.org/schema/beans http://springframework.org/schema/beans/spring-beans-3.0.xsd http://springframework.org/schema/aop http://springframework.org/schema/aop/spring-aop-3.0.xsd">
xmlns:xsi="http://w3.org/2001/XMLSchema-instance"
xmlns:p="http://springframework.org/schema/p"
xmlns:aop="http://springframework.org/schema/aop"
xsi:schemaLocation="http://springframework.org/schema/beans
http://springframework.org/schema/beans/spring-beans-3.0.xsd
http://springframework.org/schema/aop
http://springframework.org/schema/aop/spring-aop-3.0.xsd">
Struts配置文件
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
结果显示
输入页面
结果页面
数据库
最后看起来,还是不难的嘛。其实UserDao可以抽象出来,只需要单次注入,等以后再完善。
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对我们的支持。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~