首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Java 開發 2.0 實戰:在 Amazon EC2 上部署 Grails 應用

     編輯:Java 相關知識

雲端開發新范式

Java 開發 2.0 核心:開源框架 + 租用基礎設施。本文示範:Grails (Spring+Hibernate) + MySQL + Tomcat 部署至 EC2,全程成本極低、彈性極高。

快速構建 Grails 應用

# 1. 建立專案
grails create-app mytri
cd mytri

# 2. 建立領域類別
grails create-domain-class Triathlon
# 編輯 grails-app/domain/Triathlon.groovy
class Triathlon {
    static constraints = {
        classification(inList:["Sprint","Olympic","1/2 Iron Man","Iron Man"])
    }
    String name, location
    Date eventDate
    String classification
}

# 3. 生成完整 MVC(Controller + Views)
grails generate-all Triathlon

# 4. 本地測試(內嵌 HSQLDB)
grails run-app
# 訪問 https://localhost:8080/mytri 驗證 CRUD 功能

尋找合適 AMI

需求:Java + Tomcat + MySQL。推薦 Java Web Apps in a Box 社群 AMI:ami-aa5abac3(已預裝 Tomcat 6、MySQL、JDK)。

使用 Eclipse AWS 插件:

  1. 開啟 EC2 Management 透視圖 → AMIs 視圖。
  2. 搜尋 ami-aa5abac3 → 右鍵 Launch。
  3. 配置 Key Pair、Security Group(開放 22, 8080, 3306)。
  4. 等待狀態變 running,複製 Public DNS。

遠端配置 MySQL

# SSH 進入實例
mysql -u root --password=root

# 建立 Grails 專用用戶與資料庫
CREATE USER 'grails'@'localhost' IDENTIFIED BY 'groovy';
GRANT ALL ON *.* TO 'grails'@'localhost';
CREATE DATABASE mytri;
USE mytri;

# 執行 schema-export 生成的 DDL
CREATE TABLE triathlon (
    id BIGINT NOT NULL AUTO_INCREMENT,
    version BIGINT NOT NULL,
    classification VARCHAR(12) NOT NULL,
    event_date DATETIME NOT NULL,
    location VARCHAR(255) NOT NULL,
    name VARCHAR(255) NOT NULL,
    PRIMARY KEY (id)
);

配置 Grails 生產環境資料源

# grails-app/conf/DataSource.groovy
production {
    dataSource {
        driverClassName = "com.mysql.jdbc.Driver"
        username = "grails"
        password = "groovy"
        dialect = org.hibernate.dialect.MySQLDialect
        url = "jdbc:mysql://localhost/mytri"
    }
}

將 MySQL JDBC 驅動 (mysql-connector-java.jar) 放入 mytri/lib。

打包與部署

# 本地打包生產 WAR
grails -Dgrails.env=prod war mytri.war

# 方式一:Tomcat Manager 部署(推薦)
# 1. 配置 AMI 上 Tomcat 的 tomcat-users.xml 新增 manager 角色用戶
# 2. 重啟 Tomcat
# 3. 瀏覽器訪問 https://:8080/manager/html
# 4. 上傳 mytri.war → Deploy

# 方式二:SCP 直傳 webapps 目錄
scp -i mykey.pem mytri.war ec2-user@:/usr/local/tomcat/webapps/

驗證與清理

  • 訪問 https://:8080/mytri,功能應與本地一致,數據持久化於 EC2 內部 MySQL。
  • 重要:測試完成後,在 Eclipse EC2 Instances 視圖右鍵 Terminate 實例,避免持續計費。
  • 數據持久化需求可使用 Elastic Block Store (EBS) 掛載卷,實例終止後數據保留。

成本與效能對比

下一站:CouchDB,面向文檔的 NoSQL 資料庫,或許是未來的標準。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
方案硬體成本部署時間擴展性
自建伺服器數萬~數十萬數週受限
EC2 按需實例~$0.10/小時數分鐘彈性無限