- 浏览: 1247383 次
- 性别:
- 来自: 杭州
文章分类
- 全部博客 (193)
- ant/maven (6)
- algorithm (5)
- tomcat/weblogic/jboss (6)
- javascript/jquery (13)
- java (33)
- flex/flash (0)
- JPA/Hibernate/myBatis (18)
- java concurrent (7)
- test (2)
- windows/linux (6)
- java collection (7)
- design pattern (2)
- life/health (3)
- database (12)
- IDE (4)
- spring/ejb (20)
- html/css/ckeditor (7)
- jsp/servlet (3)
- java io (13)
- java security (4)
- jni (0)
- svn/git (2)
- english (2)
- java jmx (1)
- xml (1)
- struts/springmvc (9)
- middleware (2)
- cache (1)
- cglib (3)
最新评论
-
jlotusYo:
博主,真感谢。
Java 密码扩展无限制权限策略文件 -
senninha:
这个。。是api说明吧。。
ScheduledExecutorService 源码分析 -
zoutao2008:
请问大文件如何处理?按你这种方式的话,文件超过200M时就会报 ...
hessian系列之二:上传文件 -
lwj1113:
lwj1113 写道谢谢博主这么细致的demo;在系列五中通过 ...
myBatis系列之五:与Spring3集成 -
lwj1113:
谢谢博主这么细致的demo;在系列五中通过testng测试类跑 ...
myBatis系列之五:与Spring3集成
一. spring JPA struts 整合开发(1) - spring集成JPA
二. spring JPA struts 整合开发(2) - spring集成struts
这里的JPA实现是hibernate。
1. 在IDE中新建一个web工程,Resource设置成utf-8
2. 导入以下的jar包到/WEB-INF/lib目录下:
Hibernate 3安装包下的:
hibernate3.jar
lib\required\*.jar
lib\test\slf4j-log4j12.jar
spring 2.5 安装包下的:
dist\spring.jar
dist\modules\spring-webmvc-struts.jar
lib\jakarta-commons\common-logging.jar commons-dbcp.jar commons-pool.jar
lib\aspectj\aspectjweaver.jar aspectjrt.jar
lib\cglib\cglib-nodep-2.1_3.jar
lib\j2ee\common-annotations.jar
lib\log4j\log4j-1.2.15.jar
下载struts-1.3.8-lib.zip,解压目录下的所有jar
3. spring配置文件:
拷贝一个beans.xml的模板到src目录下,
beans.xml内容:
4. JPA配置文件
在src目录下创建META-INF子目录并新建persistence.xml文件:
5. 实体bean
创建com.john.bean.Person类
6. 业务bean
创建com.john.service.PersonServiceBean类
抽取PersonService接口。
7. junit test
新建junit.test.PersonServiceTest测试类:
整理自:传智播客spring教程
二. spring JPA struts 整合开发(2) - spring集成struts
这里的JPA实现是hibernate。
1. 在IDE中新建一个web工程,Resource设置成utf-8
2. 导入以下的jar包到/WEB-INF/lib目录下:
Hibernate 3安装包下的:
hibernate3.jar
lib\required\*.jar
lib\test\slf4j-log4j12.jar
spring 2.5 安装包下的:
dist\spring.jar
dist\modules\spring-webmvc-struts.jar
lib\jakarta-commons\common-logging.jar commons-dbcp.jar commons-pool.jar
lib\aspectj\aspectjweaver.jar aspectjrt.jar
lib\cglib\cglib-nodep-2.1_3.jar
lib\j2ee\common-annotations.jar
lib\log4j\log4j-1.2.15.jar
下载struts-1.3.8-lib.zip,解压目录下的所有jar
3. spring配置文件:
拷贝一个beans.xml的模板到src目录下,
beans.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:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd" > <context:annotation-config/> <!-- JPA entity manager factory bean, like the session factory of hibernate --> <bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalEntityManagerFactoryBean"> <!-- Retrieved the persistence information from persistence.xml --> <property name="persistenceUnitName" value="sparkle" /> </bean> <!-- Transaction manager --> <bean id="txManager" class="org.springframework.orm.jpa.JpaTransactionManager"> <property name="entityManagerFactory" ref="entityManagerFactory" /> </bean> <tx:annotation-driven transaction-manager="txManager"/> </beans>
4. JPA配置文件
在src目录下创建META-INF子目录并新建persistence.xml文件:
<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_2_0.xsd" version="2.0"> <persistence-unit name="sparkle" transaction-type="RESOURCE_LOCAL"> <properties> <property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver"/> <property name="hibernate.connection.url" value="jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8"/> <property name="hibernate.connection.username" value="root"/> <property name="hibernate.connection.password" value="123456"/> <property name="hibernate.max_fetch_depth" value="3"/> <property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect"/> <property name="hibernate.hbm2ddl.auto" value="update"/> <property name="hibernate.show_sql" value="true"/> </properties> </persistence-unit> </persistence>
5. 实体bean
创建com.john.bean.Person类
// It is recommended to let the bean implement Serializable interface and override equals and hashCode methods @Entity public class Person implements { private Integer id; private String name; public Person() { } public Person(String name) { this.name = name; } @Id @GeneratedValue public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } @Column(length=30, nullable=false) public String getName() { return name; } public void setName(String name) { this.name = name; } }
6. 业务bean
创建com.john.service.PersonServiceBean类
@Transactional public class PersonSeriveBean { @PersistenceContext EntityManager em; public void save(Person person) { em.persist(person); } public void update(Person person) { em.merge(person); } public void delete(Integer id) { em.remove(em.getReference(Person.class, id)); } @Transactional(propagation=Propagation.NOT_SUPPORTED, readOnly=true) public Person getPerson(Integer id) { return em.find(Person.class, id); } @Override @Transactional(propagation=Propagation.NOT_SUPPORTED, readOnly=true) public List<Person> getPersons() { return em.createQuery("select p FROM Person p").getResultList(); }
抽取PersonService接口。
7. junit test
新建junit.test.PersonServiceTest测试类:
public class PersonServiceTest { private static PersonService personService; @BeforeClass public static void setUpBeforeClass() throws Exception { try { AbstractApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml"); personService = (PersonService)ctx.getBean("personService"); } catch (Exception e) { e.printStackTrace(); } } @Test public void testSave() { personService.save(new Person("John")); } // Other test methods are omitted }
整理自:传智播客spring教程
发表评论
-
本地事务系列之五:使用Transactional注解
2014-08-02 18:16 2831AOP的配置稍显复杂,通过@Transactional注解,同 ... -
本地事务系列之四:使用AOP
2014-08-02 17:08 903Spring AOP通过在文件中配置来管理事务,好处是对代码侵 ... -
本地事务系列之三:使用TransactionTemplate
2014-07-17 22:15 6773TransactionTemplate的灵活性好,可以给代码块 ... -
本地事务系列之二:使用PlatformTransactionManager
2014-07-17 21:37 5395Spring的事务管理器接口: public interf ... -
本地事务系列之一:JDBC操作
2014-07-08 23:04 1233本地事务即对一个数据源进行操作。大多数数据库支持事务。 先看 ... -
Spring AOP 源码系列:ProxyFactoryBean
2014-04-21 18:01 0public class ProxyFactoryBean ... -
Spring AOP 源码系列
2014-04-21 09:22 0Spring AOP通过JDK的正则表达式对Pointcut表 ... -
Spring AOP系列之五:后置通知
2014-04-14 08:59 1674和前置通知类似, 通过实现org.springframewor ... -
Spring AOP系列之四:前置通知
2014-04-13 21:28 1829通过实现org.springframework.aop.M ... -
Spring AOP系列之三:环绕代理
2014-04-13 18:20 1422通过实现org.aopalliance.intercept.M ... -
Spring AOP系列之二:Java代理
2014-04-13 18:00 1051通过Java代理的方式: 汽车的代理,需要实现java.la ... -
Spring AOP系列之一:手动方式
2014-04-13 17:44 1390AOP (Aspect Oriented Progra ... -
HibernateTemplate 使用
2014-03-03 22:09 01. queryListBySql hibernateTe ... -
Spring的组件扫描
2017-09-16 21:58 1066Spring2.0以后的版本中,引入了基于注解(Annotat ... -
ContextLoaderListener和ContextCleanupListener源码分析
2013-12-18 15:55 0public class ContextLoaderLis ... -
Cglib2AopProxy 源码分析
2013-12-05 14:30 0final class Cglib2AopProxy im ... -
Spring生命周期方法的调用顺序
2013-11-19 22:04 0Spring的几个接口: BeanFactoryAware: ... -
一、Spring AOP的简单实例
2013-11-06 23:31 17751. 往pom.xml文件添加以下依赖: <depe ... -
Spring配置中的bean引用其它bean的属性值
2013-01-23 15:24 4227这项功能在spring的3.0版本以上才支持,如果使用较早的版 ... -
spring JPA struts 整合开发(2) - spring集成struts
2012-05-20 20:55 1432一. spring JPA struts 整合开发(1) - ...
相关推荐
Struts2整合Spring和JPA是企业级Java应用开发中常见的技术组合,它们分别负责不同的职责:Struts2作为一款成熟的MVC框架,主要用于处理Web层的请求与响应;Spring作为一个全面的轻量级框架,提供了依赖注入(DI)和...
在Java Web开发领域,JPA(Java Persistence API)、Spring框架和Struts框架的整合是常见的技术栈,它们各自扮演着不同的角色,共同构建出高效、灵活的Web应用程序。下面将详细介绍这三个关键技术及其整合过程。 **...
总之,这个整合项目为学习者提供了一个基础的SSH(Struts2 + Spring + Hibernate)和JPA的集成示例,有助于理解这些框架如何协同工作,为更复杂的Java Web应用程序开发打下基础。通过逐步研究和实践,开发者可以深入...
"hibernate+spring+struts整合开发jar文件"提供了这些框架所需的库文件,帮助开发者快速搭建开发环境,避免了因版本不兼容或缺失jar文件导致的问题。 1. Hibernate:作为Java领域的一个ORM(Object-Relational ...
Struts2、Spring和JPA是Java开发中常用的三大框架,它们在企业级应用开发中发挥着关键作用。Struts2作为MVC框架,负责控制应用程序的流程;Spring框架则是一个全面的后端解决方案,提供了依赖注入(DI)、面向切面...
**Spring+Struts2+JPA 整合详解** 在Java Web开发中,Spring、Struts2和JPA是三个非常重要的框架。Spring作为一个全面的轻量级框架,提供了依赖注入(DI)和面向切面编程(AOP)等功能;Struts2是一个强大的MVC框架...
Struts2、Hibernate3和Spring是Java开发中常用的三大框架,它们各自负责不同的职责:Struts2用于控制应用程序的流程,Hibernate3则是优秀的对象关系映射(ORM)框架,Spring则提供全面的依赖注入(DI)和面向切面...
在"spring+struts+mysql-conn"项目中,MySQL是数据存储和管理的关键组件,Spring可能通过JDBC或JPA来与之交互,实现数据的增删改查操作。 项目中的"jar包整理"标签暗示了这个压缩包可能包含了这三者集成所需的库...
在企业级Java开发中,Struts2、JPA(Java Persistence API)和Spring框架的整合是常见的技术栈选择,它们各自扮演着不同的角色,共同构建出强大的MVC(Model-View-Controller)架构应用。Struts2作为表现层框架,...
Struts2、Spring2.5和JPA的整合提供了强大的Web应用开发能力,涵盖了MVC、依赖注入、事务管理和ORM等功能。结合Spring Security进行权限管理,可以确保系统的安全性。这样的整合方案在大型企业级项目中非常常见,有...
Struts、JPA和Spring是Java开发中三个非常重要的框架,它们各自负责应用程序的不同层面:Struts用于控制层,Spring提供了全面的框架支持,包括依赖注入和面向切面编程,而JPA则是Java持久化规范,用于管理数据库操作...
4. **Struts集成**:如果使用了spring-webmvc-struts.jar,需要了解如何在Struts和Spring之间进行交互,如使用Spring的Bean管理Struts的动作(Action)类。 5. **Web开发**:掌握如何创建RESTful API,处理HTTP请求...
**JPA+Spring+Struts整合实例** 在Java企业级应用开发中,Spring、Struts和JPA(Java Persistence API)是三个非常重要的框架。它们分别负责不同的职责:Spring作为一个全能型框架,提供了依赖注入(DI)和面向切面...
Spring、Struts2和JPA是Java开发中常用的三大框架,它们各自负责应用程序的不同层面:Spring作为基础架构框架,提供依赖注入(DI)和面向切面编程(AOP)等功能;Struts2是一个用于构建MVC(Model-View-Controller)...
struts2_spring_jpa整合实例实现数据添加
"Spring+JPA+Struts1的整合"就是一个典型的示例,它将三个强大的Java技术结合在一起,用于开发企业级Web应用。下面我们将深入探讨这三个组件以及它们如何协同工作。 **Spring框架** Spring是一个全面的企业级应用...
在Java Web开发中,JPA(Java Persistence API)、Spring框架和Struts框架是常见的三大组件,它们分别负责数据持久化、依赖注入与控制层管理。将这三个组件集成在一起可以构建出高效、稳定的企业级应用。下面,我们...
"Struts+Spring+Jpa(hibernate)整合"这个主题意味着我们要将这三个框架进行集成,以实现更强大的功能。在实际项目中,这种整合能够帮助开发者更好地管理业务逻辑、持久化数据以及处理用户请求。 1. **Struts**:...
在学习jpa时候做的一个struts2+spring+jpa整合的完整例子 包含分页,一个简单的 资产入库系统 并实现了登陆等。
标题“Spring Struts2 JPA集成”涉及到的是Java企业级开发中的三大框架——Spring、Struts2和JPA(Java Persistence API)的整合应用。这是一个常见的技术栈组合,用于构建可扩展且高效的Web应用程序。 首先,...