很早的时候我就在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
分享到:
相关推荐
Google App Engine 是一个由 Google 提供的平台,允许开发者构建并运行基于 Web 的应用程序。这个平台提供了服务器、数据库和其他服务,使得开发者无需关心底层基础设施的管理,而专注于应用的开发。本文档将详细...
3. **项目结构**:解释一个典型的GAE Java项目的目录结构,包括`war`目录、`src`目录、`appengine-web.xml`和`web.xml`等关键文件的作用。 4. **开发第一个应用**:展示如何创建一个简单的Guestbook应用,这可能...
Google App Engine(GAE)是一个基于云的平台,用于构建和运行Web应用程序,而Flex是一种用于创建富互联网应用程序(RIA)的客户端技术。本教程将深入探讨如何将这两者结合,以创建出交互性强大的Web应用。 首先,...
Google App Engine 是一个由 Google 提供的平台,用于开发和托管 web 应用程序。它是一种基于云计算的服务,允许开发者使用 Python、Java、Go 或 PHP 等多种编程语言构建应用,并在 Google 的大规模基础设施上运行。...
- **示例应用**:在第三部分的文章中,作者会指导读者创建一个联系人管理应用程序,利用App Engine for Java的Java持久性支持来存储和管理联系人数据。 #### 五、总结 Google App Engine for Java为Java开发者提供...
总的来说,"google_appengine_1.9.50.7z"是一个包含Python SDK的压缩包,为开发者提供了在Google云上构建、测试和部署Python应用程序的工具。通过使用这个SDK,开发者可以创建从简单的网站到复杂的实时通信应用(如...
在“Google App Engine入门”中,你会学习到如何创建你的第一个GAE应用。这通常涉及到以下几个步骤: 1. **安装和配置**: 首先,你需要下载并安装Google App Engine SDK,它包含了开发和部署应用所需的工具。然后,...
除此之外,书中的内容还会涉及如何将App Engine应用与Salesforce.com和Google Wave等第三方服务集成,扩展应用的功能和影响力。 最后,对于运行中的应用程序,书中也会讲解监控、管理和维护的方法。这包括性能分析...
Google App Engine 是一个...总之,"google_appengine_1.9.38" 版本是用于搭建 WebRTC 房间服务器的一个可靠平台,结合 Google App Engine 的优势和 WebRTC 的实时通信能力,可以构建出高性能、可扩展的在线协作应用。
一旦注册完成,你可以创建一个新的application,这将赋予你的应用一个特定的appid,例如在示例中是"hello"。你的应用可以通过`yourid.appspot.com`的形式被访问。 为了在本地开发,你需要下载并安装Google App ...
本书首先介绍了GAE的基础知识,包括如何创建第一个项目,设置开发环境,以及使用SDK进行本地测试。接着,它详细讲解了GAE的数据存储系统——Datastore,这是一个非关系型数据库,支持高可用性和可扩展性。书中会讨论...
1. **安装SDK**:下载并安装appengine-java-sdk-1.3.0_d9soft-part1压缩包,解压后配置环境变量,确保开发工具能够找到SDK路径。 2. **创建项目**:使用SDK提供的命令行工具或集成开发环境(IDE,如Eclipse或...
《Programming Google App Engine, 2nd Edition》是关于开发Google App Engine应用的权威指南,针对的是第二版内容,提供高清的epub和pdf两种格式。这本书深入探讨了如何利用Google的云计算平台构建高性能、可扩展的...
登录到 Google App Engine 控制台 (http://appengine.google.com/),创建一个新的应用并填写必要的信息,比如 Application Identifier 和 Application Title。接下来,下载并安装 Google App Engine SDK 以及 Python...
#### 四、编写第一个App Engine应用 1. **选择编程语言**:根据个人喜好或项目需求选择一种支持的语言,如Python。 2. **编写Hello World应用**: - 在本地文件系统上创建一个新的目录作为项目根目录。 - 创建一...
- **概述**:本书的第一章简要介绍了GAE的基本概念及其与其他云服务的关系,并通过示例引导读者逐步搭建开发环境并完成第一个应用。 #### 三、深入探索SDK - **创建首个项目**:本书第二章详细介绍了如何使用GAE ...
总之,"google_appengine_1.9.40.zip" 是一个包含了 Google App Engine SDK 的压缩包,它为开发者提供了在 Google 基础设施上构建和部署 web 应用的全部工具。通过使用这个 SDK,你可以开发出高效、可扩展的应用,并...
Google App Engine 是谷歌推出的一个云计算平台,它允许开发者构建和托管网络应用程序。作为一款免费的虚拟主机服务,它不仅提供了存储空间、带宽和计算资源,还运行在谷歌庞大的全球服务器集群上,确保高可用性和...
而Google App Engine则是一个平台即服务(PaaS)的云环境,用于部署Web应用程序。这个模板项目意味着开发者可以利用Django的强大功能在Google App Engine上构建和运行Web应用。 **描述解析:** 虽然描述信息是空的...