实现to-do list服务端
上篇Part 1部分我们描述了使用flex-mojos构建和配置一个典型的Flex应用模块全过程,在这一部分,在这一部分,我会继续完善的范例项目(to-do list application),并描述如何应用Spring,Hibernate和MySQL创建后端模块。在第三部分我会描述如何使用BlazeDS连接前后端应用。
预备条件
有Spring,Hibernate和MySQL经验,熟悉MySQL的数据库,Java和XML会加快学习步伐。
创建WAR模块
本节我们开始建立示例应用to-do list的后端程序。首先,打开命令行中并定位到第一篇文件建立的todolist目录,运行如下命令:
mvn archetype:create -DgroupId=cn.org.pomer.samples -DartifactId=todolist-web -DarchetypeArtifactId=maven-archetype-webapp
上述命令在根模块todolist中创建一个新的todolist子模块。下一步,编辑新建模块的POM,添加如下的dependencies:
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring</artifactId>
<version>2.5.2</version>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjrt</artifactId>
<version>1.5.4</version>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>1.5.4</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate</artifactId>
<version>3.2.6.ga</version>
</dependency>
以上加入的是Spring和Hibernate的依赖包。
最后,更新上面的POM Java编译器plug-in为1.5,添加以下plug-in配置到POM的project/build/plugins节点:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.5</source>
<target>1.5</target>
</configuration>
</plugin>
运行命令mvn install安装jar,安装成功后,运行命令mvn eclispe:eclipse为todolist-web构建eclipse工程。构建好eclipse工程后,导入todolist-web项目,配置M2_REPO这个Classpath Variables,配置步骤:window >> preferences >> Java >> Build Path >> Classpath Variables,新建一个 M2_REPO 的变量,变量值指向你系统的Maven2的数据仓库位置。如我的位置是C:/Documents and Settings/HeQing/.m2/repository。
至此,我们已经为进一步开发建立好了服务端模块雏形。接下来,我们建立可以在eclipse环境中为to-do list编写Java代码。
编写java接口
前面,我们建立了to-do list应用模块,现在编写服务接口。在项目路径src/main/java中新建cn.org.pomer.samples.todolist.business包,接建TodoService接口,代码如下:
package cn.org.pomer.samples.todolist.business;
import java.util.List;
import cn.org.pomer.samples.todolist.domain.TodoItem;
public interface TodoService {
void remove(TodoItem todoItem) throws Exception;
TodoItem save(TodoItem todoItem) throws Exception;
TodoItem findById(TodoItem todoItem) throws Exception;
List<TodoItem> getList() throws Exception;
}
TodoService接口实现:
package cn.org.pomer.samples.todolist.business;
import java.util.List;
import cn.org.pomer.samples.todolist.domain.TodoItem;
import cn.org.pomer.samples.todolist.domain.TodoItemRepository;
public class TodoServiceImpl implements TodoService {
private TodoItemRepository todoItemRepository;
public void setTodoItemRepository(TodoItemRepository todoItemRepository) {
this.todoItemRepository = todoItemRepository;
}
public TodoItem save(TodoItem item) throws Exception {
try {
this.todoItemRepository.save(item);
return item;
} catch (Exception e) {
throw new Exception("Could not save item because: " + e.getCause());
}
}
public void remove(TodoItem item) throws Exception {
try {
this.todoItemRepository.remove(item);
} catch (Exception e) {
throw new Exception("Could not delete item because " + e.getMessage());
}
}
public TodoItem findById(TodoItem item) throws Exception {
try {
return this.todoItemRepository.findById(item);
} catch (Exception e) {
throw new Exception("Could not find item because " + e.getMessage());
}
}
public List<TodoItem> getList() throws Exception {
try {
return this.todoItemRepository.getList();
} catch (Exception e) {
throw new Exception("Could not list items because " + e.getMessage());
}
}
}
TodoServiceImpl实现访问了包cn.org.pomer.samples.todolist.domain下的TodoItemRepository,以下是其接口代码:
package cn.org.pomer.samples.todolist.domain;
import java.util.List;
public interface TodoItemRepository {
void remove(TodoItem todoItem);
TodoItem save(TodoItem todoItem);
TodoItem findById(TodoItem todoItem) throws Exception;
List<TodoItem> getList();
}
如下是基于spring HibernateDaoSupport的hibernate持久层框架的实现:
package cn.org.pomer.samples.todolist.domain.hibernate;
import java.util.List;
import cn.org.pomer.samples.todolist.domain.TodoItem;
import cn.org.pomer.samples.todolist.domain.TodoItemRepository;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
public class TodoItemHibernateDao extends HibernateDaoSupport implements TodoItemRepository {
public TodoItem save(TodoItem todoItem) {
getHibernateTemplate().saveOrUpdate(todoItem);
return todoItem;
}
public void remove(TodoItem todoItem) {
getHibernateTemplate().delete(todoItem);
}
public TodoItem findById(TodoItem todoItem) throws Exception {
long id = todoItem.getId();
todoItem = (TodoItem) getHibernateTemplate().get(TodoItem.class, todoItem.getId());
if (todoItem == null)
throw new Exception("Could not find an item with id " + id);
return todoItem;
}
@SuppressWarnings("unchecked")
public List<TodoItem> getList() {
return (List<TodoItem>) getHibernateTemplate().loadAll(TodoItem.class);
}
}
最后,建立以上用到的TodoItem POJO:
package cn.org.pomer.samples.todolist.domain;
public class TodoItem {
private long id;
private String title;
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
}
下一章节,我们将为to-do list建立MySQL数据库。
- todolist.rar (6.6 KB)
- 描述: 包括Part1和Part2所讲内容maven项目构建块和Part2前半部分源码,下载后,在命令行进入todolist-web目录运行mvn eclipse:eclipse构建eclipse项目。
- 下载次数: 34
分享到:
相关推荐
【Flex Spring JAVA BLAZEDS整合】是一种技术实践,它将Adobe Flex的前端展示层与Spring框架的后端业务逻辑层紧密结合,利用BlazeDS作为中间件进行数据传输。Flex作为一个强大的RIA(富互联网应用程序)开发平台,常...
Flex Spring BlazeDS整个web工程,其中FlexServer是整合后的myeclipse web project工程,FlexText是Flex测试工程。在tomcat中运行测试无误。
《Flex-Spring-BlazeDS整合应用探索》 在当今的Web开发领域,富互联网应用程序(Rich Internet Applications,简称RIA)已经成为提升用户体验的重要手段。Flex作为Adobe提供的RIA开发框架,以其强大的图形用户界面...
标题中的“flex+spring+blazeds消息推送”是指在开发富互联网应用程序(RIA)时,采用Adobe Flex作为前端UI框架,Spring作为后端服务层框架,BlazeDS作为数据通信中间件,实现服务器到客户端的消息实时推送功能。...
《Spring、BlazeDS与Flex4的整合应用详解》 在现代Web开发中,构建交互性强、用户体验良好的富互联网应用程序(Rich Internet Applications, RIA)是开发者追求的目标。Spring、BlazeDS和Flex4的结合,正是实现这一...
Flex blazeds-spring Flex blazeds-spring Flex blazeds-spring Flex blazeds-spring Flex blazeds-spring Flex blazeds-spring
2. 配置MessageBroker:在Spring上下文中,通过<flex:message-broker>标签配置BlazeDS的MessageBroker,使Spring Bean可以通过AMF与Flex客户端通信。 五、Flex客户端开发 1. 创建Flex项目:使用Flex Builder或...
标题“flex+blazeds+spring”表明我们要探讨的是如何将Flex前端与BlazeDS中继层和Spring后端框架结合起来,实现完整的数据交互和应用程序逻辑。 在Flex与Spring集成的环境中,Flex作为用户界面展示层,负责与用户...
Spring BlazeDS Integration是Spring框架的一个组件,它提供了与Adobe Flex的无缝集成,允许后端Java服务与前端Flex客户端进行通信。这个项目demo提供了实际操作的例子,帮助开发者理解和实现Spring与Flex的结合。 ...
【集成Flex3+BlazeDS3.2+Spring2.5.6的另一种方式】\n\n在上一讲中,我们介绍了如何将Flex3、BlazeDS3.2和Spring2.5.6集成在一起,构建一个强大的WEB项目。本讲我们将探讨集成方式二,该方法采用Spring的侦听配置...
标题中的“Flex-Spring-JAVA-BLAZEDS.rar”提到了三个关键技术:Flex、Spring和BlazeDS,这在IT行业中是关于前端与后端交互的重要技术组合。Flex是Adobe开发的一种用于创建富互联网应用(RIA)的开源框架,主要用于...
flex+spring+blazeds在MyEclipse下非常详细的结合配置
Flex4+Blazeds4.0+Spring3.0+hibernate2.5.2整合笔记 本篇笔记主要介绍了如何将 Flex4、Blazeds4.0、Spring3.0 和 hibernate2.5.2 进行整合,实现一个完整的富互联网应用程序。下面是对笔记中关键部分的详细解释: ...
**Spring BlazeDS Integration** 是一个强大的技术组合,它允许开发者使用Spring框架在后端服务器上进行业务逻辑处理,同时利用Adobe Flex在前端构建富互联网应用程序(RIA)。BlazeDS是Adobe提供的一种开源服务器端...
《Flex4+Spring+BlazeDS整合技术详解》 在当今的Web开发中,富互联网应用程序(Rich Internet Applications,简称RIA)已经成为一种趋势,而Flex作为Adobe提供的RIA开发框架,结合Spring的优秀企业级服务管理和...
标题中的“Spring BlazeDS 整合实例”是指在Java开发环境中,使用Spring框架与BlazeDS进行集成,以便实现富互联网应用(RIA)的后台数据交互。BlazeDS是Adobe提供的一个开源项目,它允许Flex客户端与Java服务器之间...
使用flex 4.5 + Spring 3.0 + Hibernate 3.3 + Cairngorm 2.2.1 + BlazeDS 3.3.0 + Spring BlazeDS Integration 1.0.3整合出的一个登录的小demo·
Flex Spring框架与BlazeDS的整合是Web开发中一个重要的技术组合,主要用于构建富互联网应用程序(Rich Internet Applications,RIA)。Flex作为Adobe推出的基于Flash Player或Adobe AIR运行时的客户端开发框架,提供...