grails框架入門小結(一)—後臺基礎搭建
以下僅僅是個人理解,只記錄自己在開發中的問題:
1,官網下載JDK1.7及以上,配置其系統變數(path):安裝目錄/bin; 安裝目錄/jre/bin;
2,下載grails-2.5.4,或其他版本,配置其系統變數(path):安裝目錄/bin;
3,Intellij IDEA2016.3 ,MySQL免安裝版,apache-maven-3.2.5;
4,開始開發了:
1)在IDEA中新建一個grails工程
2)conf / DataSource.grovy 此配置檔案按照如下方式配置:(我使用的是MySQL資料庫免安裝版,此處另外需要在lib目錄下加入mysql-connector-java-5.1.21-bin.jar(也可以是其他版本...自行配置)這個連線jar包)
dataSource { pooled = true driverClassName = "com.mysql.jdbc.Driver" username = "root" //資料庫的userName password = "123456" //資料庫的密碼,此處不再詳解MySQL免安裝資料庫的使用及配置。可百度搜尋。 } hibernate { cache.use_second_level_cache = true cache.use_query_cache = false cache.region.factory_class = 'org.hibernate.cache.ehcache.EhCacheRegionFactory' } environments { development { dataSource { dbCreate = "update" url = "jdbc:mysql://localhost:3306/grails?useUnicode=true&characterEncoding=utf8" dialect = org.hibernate.dialect.MySQL5InnoDBDialect logSql = true formatSql = true } } test { dataSource { dbCreate = "update" //jdbc:mysql://localhost:埠號/MySQL的database的名字 //此處不再詳解MySQL的資料庫database,推薦使用一款叫做Navicat的資料庫視覺化工具,可以在其中建立資料庫 //以及對資料庫database的資料表進行操作。 url = "jdbc:mysql://localhost:3306/grails" } } production { dataSource { dbCreate = "update" url = "jdbc:mysql://localhost:3306/grails" pooled = true properties { maxActive = -1 minEvictableIdleTimeMillis=1800000 timeBetweenEvictionRunsMillis=1800000 numTestsPerEvictionRun=3 testOnBorrow=true testWhileIdle=true testOnReturn=true validationQuery="SELECT 1" } } } }
連線資料庫成功之後,就可以讓grails自動建立表啦!在domain中建立對應資料表的實體類。可以設定表與表之間的關係。之後在視覺化工具Navicat中對資料庫執行增刪改查操作,或者也可以在BootsStrap.grovy中位資料庫插入初始資料。
MySQL一對一,一對多關係詳情見這篇文件。http://note.youdao.com/share/?id=0b73b72fb5fdec037aee3319da9fb6bc&type=note#/
3).在conf / BuildConfig.grovy中可以配置以下引數:(也可以不配置)
ps:這個地方要改run屬性
grails.project.fork = [
..
run: false,
.. ]
grails.project.dependency.resolver = "maven" //可支援maven,或ivy
grails.server.port.http=9090 //可處理出現埠號重複等問題
4).此時可以建立Controller,要知道在瀏覽器中訪問工程的路徑是:http: // localhost:8080 / 埠號 / Controller名 / 方法名
在controller中可以注入service,此處體現的就是Spring的自動裝配,我們需要在spring的配置檔案中配置service的bean。
注入bean:conf / Spring / resource.xml 如下配置:
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <bean id="simpleService" class="shopapi.SimpleService"></bean> </beans>
5)不同於SSH,Grails不僅僅能幫助我們自動建立資料表,此外還幫我們寫好運算元據庫的方法,例如findAll(),findAllBy..(),我們要做的就是在service層中進行設計。比如在某個方法中,使用實體類去呼叫其增刪改查的方法。然後在controller中呼叫service。這樣就完成了對資料庫的操作。因其ORM層是使用Hibernate,所以我們不需要寫SQL語句。
6)另外很重要的一點,controller跟前端頁面進行JSON資料傳輸。
在Controller中設計方法:如下
class ItemTypeController { SimpleService simpleService def index() { def list = simpleService.getAllItemType() def data = ['data' : list] as JSON render data }}
從這個方法中,可以看出我們是怎麼使用render對資料進行JSON傳輸的用法。另外如果需要,還要對頁面傳輸的資料進行型別轉換。以及params.get()的使用如下。
class ItemListController { SimpleService simpleService def getItemList(){ def id = params.get('id') int typeId = id as Integer def list = simpleService.getItemListById(typeId) def data = ['data' : list] as JSON render data}}
7)解決一個跨域問題:
在conf目錄下,建立一個filter,如下配置一些請求頭的引數:就可以實現JSON資料的跨域傳輸啦~
package com.minstone class CorsFilters { def filters = { all(controller:'*', action:'*') { before = { response.setHeader("Access-Control-Allow-Origin", request.getHeader("Origin")) response.setHeader("Access-Control-Allow-Credentials", "true") response.setHeader("P3P", "CP=CAO PSA OUR") if (request.getHeader("Access-Control-Request-Method") != null && "OPTIONS".equals(request.getMethod())) { response.addHeader("Access-Control-Allow-Methods", "GET,TRACE,OPTIONS") response.addHeader("Access-Control-Allow-Headers", "Content-Type,Origin,Accept") response.addHeader("Access-Control-Max-Age", "120") }} after = { Map model -> } afterView = { Exception e -> }}}
相關文章
- 後臺前端基礎框架搭建前端框架
- 前端學習小結(一)—基礎入門篇前端
- MySQL基礎知識小結(一)MySql
- SSM框架入門和搭建 十部曲SSM框架
- 【WEB基礎】HTML & CSS 基礎入門(5)邊框與背景WebHTMLCSS
- 從零搭建微信小程式後臺微信小程式
- 我入門 Python 後總結的基礎教程Python
- sed基礎用法小結
- ABP框架入門框架
- Flask框架入門Flask框架
- Linux基礎命令小結Linux
- SpringMVC框架入門SpringMVC框架
- Spring框架入門Spring框架
- Play框架入門使用框架
- DWR框架入門例子框架
- Android技能樹 — 樹基礎知識小結(一)Android
- TypeScript 基礎入門(一)TypeScript
- rabbitmq(一)-基礎入門MQ
- MyBatis入門基礎(一)MyBatis
- clojure基礎入門(一)
- 學習mysql之後的一點總結(基礎)MySql
- swift小結01--基礎篇Swift
- swift小結02-基礎篇Swift
- Python基礎-元組小結Python
- 【WEB基礎】HTML & CSS 基礎入門(6)超連結WebHTMLCSS
- BootStrap基礎入門概述總結boot
- Java Mybatis 框架入門教程JavaMyBatis框架
- CppUnit測試框架入門框架
- 小程式開發基礎(一)
- Spring 框架基礎(01):核心元件總結,基礎環境搭建Spring框架元件
- PHP Yii開源框架入門學習(一)薦PHP框架
- 零基礎搭建智慧垃圾分類小程式
- Core + Vue 後臺管理基礎框架9——統一日誌Vue框架
- 前面基礎問題小總結(二)
- Heartbeat基礎知識-運維小結運維
- 網路相關基礎概念小結
- 前端基礎入門一(HTML)前端HTML
- JS基礎入門篇( 一 )JS