`
atit
  • 浏览: 34671 次
  • 性别: Icon_minigender_2
  • 来自: 杭州
社区版块
存档分类
最新评论

开始构建你的第一个Appengine应用 (一)

    博客分类:
  • Java
阅读更多
很早的时候我就在google appengine  上面申请过一个 账号, 一直都没将它用起来觉得非常可惜。在国庆之际,特意为这事申请了个域名,以便在这上面开发一个自己的应用。

好了,根据我自己以前的熟悉程序,将在这上面开发一个超简单的CMS应用(简直就是一个留言本的demo)。

Okay, 开始了。

1. 准备工作

eclipse去 www.eclipse.org 下载
appengine.google.com可以下载到 App Engine的 SDK和 eclipse的 plugin.

安装了appengine插件的eclipse多了三个新按钮,如下:





构建技术:maven和ant, 它们分别可以到 maven.apache.org和ant.apache.org下载。




2. 技术准备
  
   是的,在开发应用之前,需要知道自己要用哪些开源组合来架构自己的应用。不可能任何事情都从头开始。 查阅一下Google App Engine的 文档,觉得采用 SSJ的架构组合正合我意. (SSJ, Struts, Spring, JPA). 这是一个典型的小型应用架构方式。

    这里面有几点要注意:
        尽量用Maven来管理Jar包,这样提交源码的时候,至少Jar包是可以不用提交的。为国家带宽能源节约多做贡献是每个程序员应有的公德。
        应用程序的开发一定要从简到繁,否则很容易还没开发完就已经放弃。
        不要用自己不懂的技术。

3. 新建一个Appengine的应用,我以GWT一点都不通,所以暂时决定不用它(不过它真的很酷,很难讲我下周会不会学一学。)



新建好的代码结构如下:



4. 加入SSJ相应的Jar包,新建一个pom.xml文件,加入Struts,Spring等的dependencies. 这里要注意的是我加入maven的原因是我只想用它的管理jar包,并不想用它来打包或是什么的,因为我根本不知道要怎么的结构才能上传到Appengine正确运行。最好的方式是用Appengine eclipse Plugin.

然后写一个build.xml, 加入如下的代码:

<project name="hznvren" default="copyLib" xmlns:artifact="urn:maven-artifact-ant">

	<target name="copyLib">

		<copy todir="war/WEB-INF/lib/">
			<fileset refid="maven.fileset" />
			<mapper type="flatten" />
		</copy>

	</target>

	<typedef resource="org/apache/maven/artifact/ant/antlib.xml" uri="urn:maven-artifact-ant">
		<classpath>
			<pathelement location="lib/maven-artifact-ant-2.0.2-dep.jar" />
		</classpath>
	</typedef>

	<artifact:dependencies pathId="maven.classpath" filesetId="maven.fileset">
		<artifact:pom file="pom.xml" />
	</artifact:dependencies>


</project>



然后进入项目目录,运行一下ant命令,则jar包就会自动下载到你的lib目录。如果它不能工作,则表示你没有下载让ant与maven一起工作的jar包。这一点我在这里不作详细说明。



5. 加入Struts, Spring的配置文件,我们暂定为各Action由Struts进行控制,Action, 以及Control层的Manager对像由Spring负责创建。Persistence 层负责数据的 CRUD.

struts.action.extension=do,jspa,jspx
struts.objectFactory=spring
struts.enable.DynamicMethodInvocation=false
struts.devMode=true
struts.locale=zh_CN
struts.i18n.encoding=GBK
struts.ui.theme=simple


其中struts.objectFactory=spring 表示对像由Spring来创建。


<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN"
    "http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>

	<package name="default" extends="struts-default">

		<!-- default retun type is freemarker -->
		<result-types>
			<result-type name="freemarker"
				class="org.apache.struts2.views.freemarker.FreemarkerResult"
				default="true" />
		</result-types>

		<!-- when validation failed, return show_error.html -->
		<global-results>
			<result name="input">/WEB-INF/common/show_error.html</result>
		</global-results>

	</package>

	<!-- one admin struts config and one front struts config -->
	<include file="com/yourhz/core/struts-default.xml" />
	<include file="com/yourhz/core/struts-front.xml" />

</struts>



<?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" xmlns:context="http://www.springframework.org/schema/context"
	xmlns:util="http://www.springframework.org/schema/util" xmlns:p="http://www.springframework.org/schema/p"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
           http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
           http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-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/util http://www.springframework.org/schema/util/spring-util-2.5.xsd">


	<!--
		Use annotation auto register beans,and check @Required,@Autowired
	-->
	<context:component-scan base-package="com.yourhz" />

</beans>



这一段表示所有的Beans都由Spring 自动扫进来,而不是一个个来定义。



定义web.xml

<?xml version="1.0" encoding="utf-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
	version="2.5">

	<context-param>
		<param-name>contextConfigLocation</param-name>
		<param-value>
		classpath:com/yourhz/core/applicationContext.xml, 
		classpath:applicationContext.xml
		</param-value>
	</context-param>


	<filter>
		<filter-name>action2</filter-name>
		<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
	</filter>

	<filter-mapping>
		<filter-name>action2</filter-name>
		<url-pattern>*.do</url-pattern>
	</filter-mapping>
	<filter-mapping>
		<filter-name>action2</filter-name>
		<url-pattern>*.jspa</url-pattern>
	</filter-mapping>

	<!-- spring Listener -->
	<listener>
		<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
	</listener>

	<!--GAE for Struts2 Listener-->
	<listener>
		<listener-class>com.yourhz.core.GaeStruts2Listener</listener-class>
	</listener>

	<welcome-file-list>
		<welcome-file>index.do</welcome-file>
	</welcome-file-list>


</web-app>


6. 接下来是设计与代码时间, 很晚了,明天再写代码细节吧。
  • 大小: 2.2 KB
  • 大小: 48.3 KB
  • 大小: 41.9 KB
2
0
分享到:
评论
3 楼 yhjhoo 2010-06-14  
很好,周末试一下
2 楼 atit 2009-10-09  
laitaogood 写道
感觉博主这个例子跟IBM workspace上的差不多啊,嘿嘿

我没看到过IBM workspace上有类似内容,如果有,巧合。 :)
1 楼 laitaogood 2009-10-08  
感觉博主这个例子跟IBM workspace上的差不多啊,嘿嘿

相关推荐

    Google Appengine应用文档

    Google App Engine 是一个由 Google 提供的平台,允许开发者构建并运行基于 Web 的应用程序。这个平台提供了服务器、数据库和其他服务,使得开发者无需关心底层基础设施的管理,而专注于应用的开发。本文档将详细...

    我的第一个Google App Engine 应用 Java 的,庆祝下

    3. **项目结构**:解释一个典型的GAE Java项目的目录结构,包括`war`目录、`src`目录、`appengine-web.xml`和`web.xml`等关键文件的作用。 4. **开发第一个应用**:展示如何创建一个简单的Guestbook应用,这可能...

    在Google App Engine上开发Flex应用(含简单示例源码)

    Google App Engine(GAE)是一个基于云的平台,用于构建和运行Web应用程序,而Flex是一种用于创建富互联网应用程序(RIA)的客户端技术。本教程将深入探讨如何将这两者结合,以创建出交互性强大的Web应用。 首先,...

    google_appengine_1.9.50.zip

    Google App Engine 是一个由 Google 提供的平台,用于开发和托管 web 应用程序。它是一种基于云计算的服务,允许开发者使用 Python、Java、Go 或 PHP 等多种编程语言构建应用,并在 Google 的大规模基础设施上运行。...

    google app Engine for java中文api

    - **示例应用**:在第三部分的文章中,作者会指导读者创建一个联系人管理应用程序,利用App Engine for Java的Java持久性支持来存储和管理联系人数据。 #### 五、总结 Google App Engine for Java为Java开发者提供...

    google_appengine_1.9.50.7z

    总的来说,"google_appengine_1.9.50.7z"是一个包含Python SDK的压缩包,为开发者提供了在Google云上构建、测试和部署Python应用程序的工具。通过使用这个SDK,开发者可以创建从简单的网站到复杂的实时通信应用(如...

    google app engine开发人员文档

    在“Google App Engine入门”中,你会学习到如何创建你的第一个GAE应用。这通常涉及到以下几个步骤: 1. **安装和配置**: 首先,你需要下载并安装Google App Engine SDK,它包含了开发和部署应用所需的工具。然后,...

    Begin Java Google APP Engine

    除此之外,书中的内容还会涉及如何将App Engine应用与Salesforce.com和Google Wave等第三方服务集成,扩展应用的功能和影响力。 最后,对于运行中的应用程序,书中也会讲解监控、管理和维护的方法。这包括性能分析...

    google_appengine_1.9.38

    Google App Engine 是一个...总之,"google_appengine_1.9.38" 版本是用于搭建 WebRTC 房间服务器的一个可靠平台,结合 Google App Engine 的优势和 WebRTC 的实时通信能力,可以构建出高性能、可扩展的在线协作应用。

    app engine初级教程资料.pdf

    一旦注册完成,你可以创建一个新的application,这将赋予你的应用一个特定的appid,例如在示例中是"hello"。你的应用可以通过`yourid.appspot.com`的形式被访问。 为了在本地开发,你需要下载并安装Google App ...

    Programming Google App Engine

    本书首先介绍了GAE的基础知识,包括如何创建第一个项目,设置开发环境,以及使用SDK进行本地测试。接着,它详细讲解了GAE的数据存储系统——Datastore,这是一个非关系型数据库,支持高可用性和可扩展性。书中会讨论...

    Google App Engine1.3.0 java sdk 第一部分

    1. **安装SDK**:下载并安装appengine-java-sdk-1.3.0_d9soft-part1压缩包,解压后配置环境变量,确保开发工具能够找到SDK路径。 2. **创建项目**:使用SDK提供的命令行工具或集成开发环境(IDE,如Eclipse或...

    Programming Google App Engine, 2nd Edition

    《Programming Google App Engine, 2nd Edition》是关于开发Google App Engine应用的权威指南,针对的是第二版内容,提供高清的epub和pdf两种格式。这本书深入探讨了如何利用Google的云计算平台构建高性能、可扩展的...

    Google App Engine搭建Twitter API Proxy

    登录到 Google App Engine 控制台 (http://appengine.google.com/),创建一个新的应用并填写必要的信息,比如 Application Identifier 和 Application Title。接下来,下载并安装 Google App Engine SDK 以及 Python...

    云端代码Google App Engine编程

    #### 四、编写第一个App Engine应用 1. **选择编程语言**:根据个人喜好或项目需求选择一种支持的语言,如Python。 2. **编写Hello World应用**: - 在本地文件系统上创建一个新的目录作为项目根目录。 - 创建一...

    Developing with Google App Engine

    - **概述**:本书的第一章简要介绍了GAE的基本概念及其与其他云服务的关系,并通过示例引导读者逐步搭建开发环境并完成第一个应用。 #### 三、深入探索SDK - **创建首个项目**:本书第二章详细介绍了如何使用GAE ...

    google_appengine_1.9.40.zip

    总之,"google_appengine_1.9.40.zip" 是一个包含了 Google App Engine SDK 的压缩包,它为开发者提供了在 Google 基础设施上构建和部署 web 应用的全部工具。通过使用这个 SDK,你可以开发出高效、可扩展的应用,并...

    使用Google App Engine架设网站.pdf

    Google App Engine 是谷歌推出的一个云计算平台,它允许开发者构建和托管网络应用程序。作为一款免费的虚拟主机服务,它不仅提供了存储空间、带宽和计算资源,还运行在谷歌庞大的全球服务器集群上,确保高可用性和...

    分享:集成了Django1.0 的Google App Engine开发 模板项目

    而Google App Engine则是一个平台即服务(PaaS)的云环境,用于部署Web应用程序。这个模板项目意味着开发者可以利用Django的强大功能在Google App Engine上构建和运行Web应用。 **描述解析:** 虽然描述信息是空的...

Global site tag (gtag.js) - Google Analytics