开始使用Grails Java框架
近年来,许多开发人员在开发网站时都会使用框架。框架有助于使应用程序的部署更加快速,并确保代码质量。Java提供多平台支持,这包括桌面应用、网络应用、移动应用开发等。
网络应用可以嵌入JavaScript、HTML、CSS和许多前端应用。
架构介绍
Grails是Java和Groovy框架,在开发敏捷的Web应用时使用。Grails实现了MVCS(模型、视图和控制器)设计模式。
Grails是极好的,因为它允许开发者更专注于实际的应用需求,而花更少的时间来配置框架。Grails提供了开发的工具,它是基于以下工具建立的。Quarts、Hibernate、Spring,以及用于库管理的Gradle。
有许多Grails框架版本正在建立,它们支持不同的库和工具。
前提条件
- 拥有一个[IntelliJ]集成开发环境(IDE)。
- 有一些[Java]开发的基本知识。
- 在你的计算机/笔记本电脑中安装有[Java开发工具包(JDK)],以帮助应用程序的开发。在这种情况下,我们将使用Java 11。
安装Grails
- 按照教程下载[Grails框架],我们的版本是4.0.6,其中你会得到一个压缩文件。
- 解压缩文件并把它放在你保存开发工具的地方。这就是我们如何进行Windows[解压]。Ubuntu[解压缩]。
- 设置环境变量
GRAILS_HOME,指向Grails安装目录所在的位置。[设置windows环境变量]。
开始使用
Grails提供了一套支持应用开发的命令。集成开发环境也简化了命令的使用,并提供了一种用户可以点击菜单快速开发应用程序的方式。
要在Grails框架中创建一个应用程序,可以在终端或Windows CMD中执行create-app 命令,参数为应用程序的名称。
下面的命令显示了如何通过终端或CMD创建一个应用程序。在你想保存应用程序的目录中打开终端或CMD。
在本例中,我们在文档夹中有一个名为Projects 的文件夹。
通过终端导航到Projects 文件夹。
#Ubuntu
cd C:\Users\user\Documents\Projects
#Windows
cd C:\Users\user\Documents\Projects
用以下命令创建第一个应用程序。
grails create-app Firstapp

Grails应用程序在Firstapp 目录下形成,人们可以执行许多其他grails命令。
要运行该应用程序,请运行以下命令。
grails run-app
该命令将通过浏览器运行网络应用。你可以在浏览器中输入高亮的命令。
文件夹结构和目录
grails应用程序有以下文件夹结构。
├── .gradle
├── build
├── gradle
├── grails-app
├── src
├── .gitignore.txt
├── build.gradle
├── gradle
├── gradlew
├── gradlew.bat
├── grailsw
├── grailsw.bat
└── grails-wrapper
grails-app ,有以下几个目录。
├── assets
├── conf
├── Controllers
├── domain
├── i18n
├── init
├── services
├── taglib
├── utils
└── views
assets文件夹
这个文件夹是存放所有静态文件夹的地方,如Javascript、图片、CSS和其他静态多媒体内容。
conf文件夹
这是配置文件所在的地方,包括resources.groovy、application.yml、logback.groovy以及来自插件的任何其他配置。
controller文件夹
该文件夹包含控制请求的控制器,默认为UrlMapping.groovy。
domain文件夹
这是保存模型类的文件夹,这些模型类类似于数据库表。
i18n文件夹
该文件夹有用于翻译的资源。
init文件夹
该文件夹包含与你需要启动Web应用程序时有关的文件。
services文件夹
所有的业务逻辑通常都放在service文件夹下。
taglib文件夹
这个文件夹包含标签,开发者可以添加自己的标签。标签有助于压缩GSP代码,因为它们在重复使用代码时有帮助。
utils文件夹
在这个文件夹中,我们可以放置实用的Groovy类。
views文件夹
它包含GSP文件,其中保存有HTML代码。
GRAILS MVC
MVC设计模式有助于在应用程序中划分责任,以简化架构。模型类代表系统中的领域对象。
控制器类控制你的应用程序的流程。服务类处理应用程序中的业务逻辑。视图工件被用来以所需的方式呈现信息。
创建一个域类
下面的命令添加了一个空的域类。
grails create-domain-class Student
package firstapp
class Student {
static constraints = {
}
}
我们可以添加属性。
package firstapp
class Student {
String name
String gender
Date dateOfBirth
Integer position
static constraints = {
}
}
创建控制器类
下面的命令添加了一个空的控制器类。
grails create-controller Student
package firstapp
class StudentController {
def index() { }
}
配置数据库
数据库的配置是在application.yml中完成的,以任何需要的凭证连接任何数据库。在该文件中,任何数据库都可以被连接,只要它有一个JDBC驱动。
dataSource:
pooled: true
jmxExport: true
driverClassName: org.h2.Driver
username: sa
password: ''
environments:
development:
dataSource:
dbCreate: create-drop
url: jdbc:h2:mem:devDb;MVCC=TRUE;LOCK_TIMEOUT=10000;DB_CLOSE_ON_EXIT=FALSE
test:
dataSource:
dbCreate: update
url: jdbc:h2:mem:testDb;MVCC=TRUE;LOCK_TIMEOUT=10000;DB_CLOSE_ON_EXIT=FALSE
production:
dataSource:
dbCreate: none
url: jdbc:h2:./prodDb;MVCC=TRUE;LOCK_TIMEOUT=10000;DB_CLOSE_ON_EXIT=FALSE
properties:
jmxEnabled: true
initialSize: 5
maxActive: 50
minIdle: 5
maxIdle: 25
maxWait: 10000
maxAge: 600000
timeBetweenEvictionRunsMillis: 5000
minEvictableIdleTimeMillis: 60000
validationQuery: SELECT 1
validationQueryTimeout: 3
validationInterval: 15000
testOnBorrow: true
testWhileIdle: true
testOnReturn: false
jdbcInterceptors: ConnectionState
defaultTransactionIsolation: 2 # TRANSACTION_READ_COMMITTED
生成视图
下面的命令可以生成GSP视图。
grails generate-all Student
学生控制器类中会有许多其他功能。运行grails应用程序,在浏览器中访问以下链接http://localhost:8080/student/index 。
该命令还在同一对象student下的views文件夹中创建视图。
以下视图被创建。
├── show.gsp
├── index.gsp
├── create.gsp
└── edit.gsp
每个视图都有其功能。show.gsp用于显示所选的单个对象,index.gsp用于显示数据库中的项目列表,create.gsp在添加新项目时提供一个表单,edit.gsp用于编辑任何现有数据。
浏览器中的新视图将看起来像下面这样。
.
同样的文件夹可以在Intellij中打开,继续进行快速编码。对于任何Class的添加,开发者需要右键点击给定的文件夹,并根据该文件夹创建一个Grails Class。
任何不存在的库都可以通过build.gradle添加。就像CMD/Terminal一样,Grails有一个终端窗口,人们可以在那里执行Grails命令,而不需要到主CMD/Terminal去。
它在IntelliJ中是这样的。
.
总结
恭喜你,你的快速Grail应用已经成功运行。Grails框架通过利用几种工具的优势并将它们结合在一起来提供帮助。