Struts+Spring+Hibernate&Struts2+Spring+JPA
来源:互联网 发布:office 2010 for mac 编辑:程序博客网 时间:2024/06/05 20:10
这两个架构SSH&SSJ操作并不相同,之前搞懂经典JAVAEE之后现在农SSH,在数据持久层这里发现了一个框架问题,就是在创建轻量级JAVAEE web项目的时候,可以在创建项目的时候直接指定SSH这三个框架,也可以在SS之后用JPA实现数据持久化,这两个东西目的虽然一样,但是操作不同,关于SSH,很多书上都写了,关于SSJ,我找了一篇文章来说明这个问题
Struts2+Spring+JPA 示例
下面仅列出一些重要的部分:
1.Service.java
package com.zcq.service;
import com.zcq.model.Person;
public interface Service {
public void savePerson(Person p);
2.ServiceImp.java
package com.zcq.serviceImp;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import org.springframework.transaction.annotation.Transactional;
import com.zcq.model.Person;
import com.zcq.service.Service;
@Transactional
public class ServiceImp implements Service {
EntityManager em;
public void savePerson(Person p) {
em.persist(p);
}
public EntityManager getEm() {
return em;
}
@PersistenceContext
public void setEm(EntityManager em) {
this.em = em;
}
3.Person.java
package com.zcq.model;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
@Entity
public class Person {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
private String name;
private int age;
private String sex;//get/set方法
}
4.jdbc.properties
jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/mysql
jdbc.username=root
jdbc.password=123456
5.web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
6.applicationContext.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:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd">
<!-- 基本bean的配置 -->
<bean id="person" class="com.zcq.model.Person" scope="prototype"></bean>
<bean id="serviceImp" class="com.zcq.serviceImp.ServiceImp"></bean>
<!-- struts2 bean 注入 -->
<bean id="personAction" class="com.zcq.action.PersonAction" scope="prototype">
<property name="service" ref="serviceImp"></property>
<property name="person" ref="person"></property>
</bean>
<!-- 属性配置文件 -->
<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>WEB-INF/jdbc.properties</value>
</list>
</property>
</bean>
<!-- c3p0数据源配置 -->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
<property name="driverClass" value="${jdbc.driverClassName}"></property>
<property name="jdbcUrl" value="${jdbc.url}"></property>
<property name="user">
<value>${jdbc.username}</value>
</property>
<property name="password">
<value>${jdbc.password}</value>
</property>
<property name="minPoolSize" value="5"></property>
<property name="maxPoolSize" value="20"></property>
<property name="acquireIncrement" value="5"></property>
</bean>
<!-- JPA 的配置 -->
<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="dataSource" ref="dataSource"></property>
<property name="jpaVendorAdapter">
<bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
<property name="showSql" value="true" />
</bean>
</property>
<property name="jpaProperties">
<props>
<prop key="hibernate.hbm2ddl.auto">update</prop>
</props>
</property>
</bean>
<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
<property name="entityManagerFactory" ref="entityManagerFactory"></property>
</bean>
<!-- spring 注解性事物配置 -->
<tx:annotation-driven transaction-manager="transactionManager" />
<!-- 基于EntityManager的注解配置 -->
<bean class="org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor"></bean>
</beans>
7.struts.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<constant name="struts.objectFactory" value="spring" /><package name="Action" extends="struts-default">
<action name="person_*" method="{1}" class="personAction"><!-- personAction已经在spring中配置了,这里就是id -->
<result name="success">/success.jsp</result>
</action>
</package>
</struts>
8.persistence.xml
<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd" version="1.0">
<persistence-unit name="punit"></persistence-unit>
</persistence>
9.index.jsp
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head> <title>My JSP 'index.jsp' starting page</title>
</head><body> <s:form action="person_save" theme="simple">
name: <s:textfield name="person.name"/> <br/>
age: <s:textfield name="person.age"/> <br/>
sex:<s:textfield name="person.sex"/><br/>
<s:submit></s:submit>
</s:form></body>
</html>
- Struts+Spring+Hibernate&Struts2+Spring+JPA
- struts2+spring+jpa(hibernate)
- Struts2,spring&JPA(Hibernate)的集成
- Spring+Hibernate+Jpa+Struts2整合实例
- SSH 、struts 、struts2、 WebWork 、Spring 、Hibernate
- SPRING JPA 与 Hibernate JPA
- struts2+spring+jpa+ajax
- JPA + Spring + struts2 配置
- spring jpa struts2配置
- 搭建spring、struts、jpa(hibernate)、ibatis框架详解
- jpa+spring+hibernate
- 11.Spring + Hibernate + JPA
- Spring集成JPA(Hibernate)
- Spring + JPA + Hibernate配置
- Spring Boot JPA-Hibernate
- spring+hibernate+jpa配置
- hibernate(jpa)+spring
- spring + jpa + hibernate
- coredata and tableview
- Notification使用详解之二:可更新进度的通知
- 是不是转向GO语言
- air文件打包成exe
- sql个人总结4
- Struts+Spring+Hibernate&Struts2+Spring+JPA
- QString和QJsonObject的相互转化
- Java中static关键字用法总结
- 深入分析java classloader原理
- 【免费直播课】AppCan基础课程之第四讲 界面布局2
- 修改weblogic 端口
- Qt平台编写的五子棋单机版
- Visual Leak Detector内存泄漏工具
- servlet生命周期