【发布时间】:2015-08-28 05:00:23
【问题描述】:
在开发 Grails 3.0 插件时:
- 应如何定义域以便应用程序可以使用插件对其进行扩展?
- 插件如何引用扩展类的实例?
例如,一个安全插件可以有如下类:
User.groovy
package com.example.plugins.security
class User {
String email
String hash
Boolean enabled = true
}
SecurityService.groovy
package com.example.plugins.security
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder
class SecurityService {
def authenticate(String email, String password) {
def user = User.findByEmail(email) //instance of BookstoreUser???
def encoder = new BCryptPasswordEncoder()
return user && encoder.matches(password, user.hash) ? user : null
}
}
应用程序将具有如下域:
grails-app/domain/com/example/bookstore/BookstoreUser.groovy
package org.example.bookstore
import org.bson.types.ObjectId
import org.example.plugins.security.User
class BookstoreUser extends User {
ObjectId id
String firstName
String lastName
static mapWith = "mongo"
}
【问题讨论】:
标签: grails groovy grails-plugin grails-domain-class grails-3.0