`
反求诸己
  • 浏览: 543148 次
  • 性别: Icon_minigender_1
  • 来自: 湖南娄底
社区版块
存档分类
最新评论

Struts 2 + Spring 2 + JPA + AJAX[篇1]

 
阅读更多


【IT168 技术文档】

Tomcat

    首先要安装好Tomcat,如果在安装的时候遇到任何问题,请查看Tomcat的安装指南

MySql

    安装并配置MySQL。创建一个名为“quickstart”的数据库,并运行下面脚本来创建“Person”表。后面在applicationContext.xml里,我们将使用"root"数据库用户名和密码,记得用你自己的数据库设置来替换它们。


CREATE TABLE 'quickstart'.'Person'
(  
'id' INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
'firstName' VARCHAR(45) NOT NULL,
'lastName' VARCHAR(45) NOT NULL,
PRIMARY KEY('id')
)
ENGINE = InnoDB;

 

 注:上面的DDL需要保存在文件中,然后在MySQL中导入。我直接复制然后在查询分析器中执行失败

创建Eclipse项目

  1. 打开Eclipse,我是认真的,你必须打开Eclipse
  2. 点击File -> New -> Project. 选择"Dynamic Web Project"并点击下一步(注:如果使用MyEclipse,这里不太一样)
  3. 输入项目名,这里我使用"quickstart"。这个项目将要在Tomcat中运行,所以我们需要为它创建应用服务器 配置
    1. 在"Target Runtime"下面点击"New",选择"Apache Tomcat5.5"并点击下一步
    2. 输入Tomcat的安装路径并选择一下已安装的JRE(需要1.5)
  4. 现在你应该回到了项目创建向导,并且Tomcat是你的Target Runtime。点击下一步,选择"Dynamic Web Module"和"Java"facets,最后点"finish"。

(上面讲的都是Eclipse WTP中的配置,如果使用MyEclipse请自行修正)

库依赖关系

    你的项目应该包含"src","build"和"WebContent"目录。我们把所有必需的jar文件放在"/WebContent/WEB-INF /lib"目录下。请复制它们到${workspace}\quickstart\WebContent\WEB-INF\lib目录。jar文件名的版 本号已经被去除了!

JarFrom
xwork.jar Struts 2
struts2-api.jar Struts 2
struts2-core.jar Struts 2
struts2-Spring-plugin.jar Struts 2
ognl.jar Struts 2
freemarker-2.3.4.jar Struts 2
mysql-connector-java.jar MySql JDBC Driver
spring.jar Sping 2.0
antlr.jar Hibernate Core
asm.jar Hibernate Core
asm-attrs.jar Hibernate Core
cglib.jar Hibernate Core
dom4j.jar Hibernate Core
jdbc2_0-stdext.jar Hibernate Core
ehcache.jar Hibernate Core
hibernate3.jar Hibernate Core
xml-apis.jar Hibernate Core
commons-collections.jar Hibernate Core
ejb3-persistence.jar Hibernate Annotations
jta.jar Hibernate Annotations
hibernate-annotations.jar Hibernate Annotations
hibernate-entitymanager.jar Hibernate Entity Manager
javassist.jar Hibernate Entity Manager
jboss-archive-browsing.jar Hibernate Entity Manager

右击项目点“刷新”,通知Eclipse我们加入了很多的jar文件。

我使用Struts2.0.6, Spring2.0.3, Hibernate3.2。struts2-api.jar找不到,没有也可以运行成功;Hibernate Annotations和Hibernate Entity Manager需要在Hibernate的主页上下载,不包括在Core里面;另外jta.jar和javassist.jar在Hibernate Tools里面,同样要下载;最后,上面列表并缺少一个包,因为Hibernate3.2对此有一点小小的修改,你需要把Hibernate Annotations里面的hibernate-commons-annotations.jar拷贝进来。

领域模型

我们的领域模型只有一个简单的"Person"类,它包含少量的实例变量。

  1. 创建一个新类并命名为"Person",然后输入"quickstart.model"作为包名。
  2. 添加"id"(int), "firstName"(String)和"lastName"(String)三个实例变量,并为它们加上setter/getter方法。
  3. 为你的类加上"@Entity"annotation,给"id" 加上 "@Id"和"@GeneratedValue" 注解

你的类如下:

Person.java

package quickstart.model;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
@Entitypublic
class Person
{
@Id
@GeneratedValue
private Integer id;
private String lastName;
private String firstName;
public String getFirstName()
{
    return firstName;
}
public void setFirstName(String firstName)
{
    this.firstName = firstName;
}
public String getLastName()
{
    return lastName;
}
public void setLastName(String lastName)
{
    this.lastName = lastName;
}
public Integer getId()
{
    return id;
}
public void setId(Integer id)
{
    this.id = id;
}
}


  @Entity让JPA服务Provider知道这个类可以被持久化。@Id标识"id"域为这个类的主键,@GeneratedValue使id域被提供者(Hibernate)自动生成。类和实例变量默认都被映射到同名的表和列上,详细情况请查看JPA文档。



Person service.

我们现在来写对"Person"对象进行CRUD操作的类。

  1. 创建一个接口,命名为"PersonService",包名为"quickstart.service"
PersonService.java

package quickstart.service;
import java.util.List;
import quickstart.model.Person;
 public interface PersonService {
       public List<Person> findAll(); 
       public void save(Person person); 
       public void remove(int id); 
       public Person find(int id);
}
      2.  创建一个类,命名为"PersonServiceImpl",包名为"quickstart.service"

PersonServiceImpl.java
package quickstart.service;
import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;
import org.springframework.transaction.annotation.Transactional;
import quickstart.model.Person;
@Transactional
public class PersonServiceImpl implements PersonService {
private EntityManager em;
@PersistenceContext
public void setEntityManager(EntityManager em) {
this.em = em;
}
@SuppressWarnings("unchecked")
public List<Person> findAll() {
Query query = getEntityManager().createQuery("select p FROM Person p");
return query.getResultList();
}
public void save(Person person) {
if (person.getId() == null) {
// new
            em.persist(person);
} else {
// update
            em.merge(person);
}
}
public void remove(int id) {
Person person = find(id);
if (person != null) {
em.remove(person);
}
}
private EntityManager getEntityManager() {
return em;
}
public Person find(int id) {
return em.find(Person.class, id);
}
}
    @PersistenceContext会让Spring在实例化的时候给服务注入一个EntityManager。 @PersistenceContext注解可以放在实例变量,或者setter方法前面。如果一个类被注解为 @Transactional,Spring将会确保类的方法在运行在一个事务中。



  


  
分享到:
评论

相关推荐

    struts2+spring2+jpa+ajax

    Struts2、Spring2、JPA(Java Persistence API)和Ajax是Java Web开发中的四大关键技术,它们共同构建了一个高效、灵活且功能强大的应用程序框架。在这个项目中,这四者的组合运用旨在实现一个前后端分离、数据持久...

    Struts 2 + Spring 2 + JPA + AJAX 示例

    Struts 2、Spring 2、JPA 和 AJAX 是企业级 Web 应用开发中的四大核心技术,它们在构建高效、可扩展的系统中扮演着重要角色。本示例结合这四种技术,提供了一个完整的应用实例,帮助开发者了解如何将它们整合在一起...

    Struts 2 + Spring 2 + JPA + AJAX

    Struts 2、Spring 2、JPA 和 AJAX 是四个在企业级 Java 开发中非常重要的技术组件。这个项目组合提供了全面的解决方案,用于构建高效、可扩展且易于维护的 Web 应用程序。 **Struts 2** 是一个基于 MVC(Model-View...

    ssh2(struts2+spring2.5+hibernate3.3+ajax)带进度条文件上传(封装成标签)

    标题 "ssh2(struts2+spring2.5+hibernate3.3+ajax)带进度条文件上传(封装成标签)" 涉及到的是一个基于Java Web的项目,利用了Struts2、Spring2.5、Hibernate3.3和Ajax技术,实现了文件上传并带有进度条显示的功能...

    help\Struts 2 + Spring 2 + JPA + AJAX.

    ### Struts 2 + Spring 2 + JPA + AJAX 技术栈详解 #### 一、技术背景与介绍 在企业级应用开发中,选择合适的技术栈是非常重要的一步。Struts 2 + Spring 2 + JPA + AJAX 这个组合是早期非常流行的一个Java Web...

    整合 Struts 2 + Spring 2 + JPA + AJAX

    **整合 Struts 2 + Spring 2 + JPA + AJAX** 在现代Web应用程序开发中,Struts 2、Spring、JPA 和 AJAX 是四个非常重要的技术组件。它们各自扮演着关键角色,共同构建了一个功能强大且灵活的后端架构。 **Struts 2...

    struts2+spring+hibernate 整合的jar包

    1. **配置环境**:确保所有必需的jar包都在项目类路径中,包括Struts2、Spring、Hibernate及相关依赖库。 2. **创建Spring配置文件**:配置Spring的ApplicationContext,定义Bean,包括DAO、Service以及事务管理器...

    网上购物struts2+spring+jpa+ajax

    该项目是一个基于Struts2、Spring、JPA和Ajax技术实现的网上购物系统。这个系统的主要目的是为了演示如何在实际开发中整合这些技术,提供一个功能完善的电商应用框架。以下是对这些关键技术点的详细解释: **Struts...

    Struts2+Spring2.5+Hibernate3(JPA)+ExtJS3基本后台

    Struts2、Spring2.5、Hibernate3(JPA)和ExtJS3是构建现代企业级Web应用的四大核心技术,它们各自在应用架构中扮演着关键角色。下面将详细阐述这些技术及其组合使用时的基本概念和功能。 1. **Struts2**:Struts2...

    Eclipse开发 Struts 2 + Spring 2 + JPA + AJAX

    在本文中,我们将深入探讨如何使用Eclipse进行Java企业级应用开发,具体涉及Struts 2、Spring 2、JPA以及AJAX技术的集成。这些框架和技术的结合提供了强大的功能,包括MVC架构、依赖注入、持久化管理和异步通信。 ...

    经典的Struts2+Spring 2+JPA+AJAX学习项目

    Struts2+Spring 2+JPA+AJAX学习项目是一个经典的Java Web开发组合,用于构建高效、可扩展的应用程序。这个项目的核心组件包括: 1. **Struts2**: Struts2是一个基于MVC(Model-View-Controller)设计模式的Java Web...

    Struts2+AJAX+JPA+Spring合集(英文版)

    本篇文章将深入探讨Struts2、AJAX、JPA与Spring这四种技术的结合使用,以及它们如何共同构建出强大的企业级应用。 #### 一、Struts2:灵活的MVC框架 Struts2是Apache基金会下的一个开源项目,它是基于MVC(Model-...

    Struts 2 + Spring 2 + JPA + AJAX示例

    1. **配置文件**:如`struts.xml`(Struts 2的配置)、`spring-context.xml`(Spring的配置)和`persistence.xml`(JPA的配置),这些文件定义了框架的设置和组件间的依赖。 2. **源代码**:可能包含Action类...

    Struts2 + Spring2.5 + JPA(hibernate) + AJAX+ 实例

    Struts2、Spring2.5、JPA(Hibernate)以及AJAX是构建高效、模块化且可维护的企业级Web应用程序的常用技术栈。这个实例项目整合了这些技术,旨在提供一个全面的开发环境,帮助开发者理解和掌握它们的协同工作方式。 ...

    struts2+spring3+hibernate4整合所用jar包

    1. **配置Struts2**:设置Struts2的核心配置文件(struts.xml),定义Action类及其对应的视图,以及使用Spring插件进行依赖注入。 2. **配置Spring**:创建Spring的配置文件(如applicationContext.xml),定义bean...

Global site tag (gtag.js) - Google Analytics