Grails下 Membership和全文搜索实战录

最近在维护一个java项目时,接触到grails,这个框架很简洁高效,为了熟悉总体的过程,以常见的Membership为例把总体过程实战一遍。

安装

安装JDK

Grails.org下载包,按照readme的说明建立环境变量,grails –v验证是否正常

可参考 http://www.cnblogs.com/2018/archive/2011/04/17/2010877.html 

建立Membership

在.net中有实现的框架可供使用,grails中也有类似的插件,本文使用的spring security core这个插件为例。

建立项目

$ grails create-app bookstore

$ cd bookstore

建立用户和角色:安装插件,执行插件的脚本建立管理内容

$ grails install-plugin spring-security-core
$ grails s2-quickstart com.testapp User Role

此时grails-app下domain views controllers建立了对应的MVC内容

建立测试的控制器

$ grails create-controller com.testapp.Secure
grails-app/controllers/com/testapp/SecureController.groovy
 
@Secured标注安全,可以对整个控制器和方法标注
grails-app/controllers/SecureController.groovy

import grails.plugins.springsecurity.Secured

@Secured(['ROLE_ADMIN'])

class SecureController {

def index = {

render 'Secure access only'

}

}

加入角色初始化和限制
grails-app/conf/BootStrap.groovy

import com.testapp.Role

import com.testapp.User

import com.testapp.UserRole

class BootStrap {

def springSecurityService

def init = { servletContext ->

def adminRole = new Role(authority: 'ROLE_ADMIN').save(flush: true)

def userRole = new Role(authority: 'ROLE_USER').save(flush: true)

String password = springSecurityService.encodePassword('password')

def testUser = new User(username: 'me', enabled: true, password: password)

testUser.save(flush: true)

UserRole.create testUser, adminRole, true

assert User.count() == 1

assert Role.count() == 2

assert UserRole.count() == 1

}

}

 
运行
grails run-app

http://localhost:8080/bookstore/secure 此时需要登录,输入me/password这个即可看到显示的内容

MemberShip管理

执行grails generate-all 可以生成User Role这些界面和控制器,下面使用一个插件spring security ui集成Membership的管理

spring security ui的安装: 先将依赖的插件安装好 

grails install-plugin mail 0.9

grails install-plugin jquery

grails install-plugin jquery-ui

grails install-plugin famfamfam

grails install-plugin spring-security-ui

0.9表示安装某个版本

下面grails run-app运行后的截图:

主界面

用户管理搜索界面

用户编辑界面

以上配置完后grails项目的配置目录

集成搜索

Searchable插件安装

全文检索一般使用的是lucene,searchable这个插件更方便的集成了lucene

0.6-SNAPSHOT缺少包运行会出错,grails install-plugin searchable直接安装不行,执行如下的安装步骤

1、下载searchable https://svn.codehaus.org/grails-plugins/grails-searchable/branches/0_5_5_1/grails-searchable-0.5.5.1.zip
2、安装: grails install-plugin ../grails-searchable-0.5.5.1.zip
建立搜索的内容

grails create-domain-class book

package bookstore

class Book {

static searchable = true

String isbn

String title

String content

Date createdAt

static constraints = {

isbn blank: false, unique: true

title blank: false

}

}

生成页面和控制器
grails generate-all bookstore.Book
运行

Grails run-app

Book内容的建立

http://localhost:8080/bookstore/book/list

Book内容的搜索

修改主页

grails-app\conf\ UrlMappings.groovy

"/"(view:"/index") 映射的是views\ index.gsp这个文件,如果需要改变,把这个内容修改一下即可

打包

以上的执行都是使用基于内存中的数据库,实际部署环境一般使用的都是mysql等数据库,此时需要

Ø 在Conf\DataSource.groovy中配置数据库

Ø 将jdbc驱动放到lib目录下

执行Grails war 打包应用,将bookstore\target\bookstore-0.1.war部署到tomcat即可

运行的效果和上面类似

参考

官方参考

http://grails.org/

http://grails.org/plugins/ 插件的目录

Searchable 参考

http://grails.org/plugin/searchable

https://svn.codehaus.org/grails-plugins/grails-searchable/trunk/ http://grails.org/Searchable+Plugin+-+Quick+start

总结

grails基于约定的形式,简化了程序的结构和组织,加上动态语言的特性,大大的提高了效率和方便性,希望在Java世界中能够更好的发展。

时间: 2024-09-28 19:36:21

Grails下 Membership和全文搜索实战录的相关文章

对JavaScript的全文搜索实现相关度评分的功能的方法

  这篇文章主要介绍了对JavaScript的全文搜索实现相关度评分的功能的方法,采用了一个名为Okapi BM25的算法,文中亦有介绍,需要的朋友可以参考下 全文搜索,与机器学习领域其他大多数问题不同,是一个 Web 程序员在日常工作中经常遇到的问题.客户可能要求你在某个地方提供一个搜索框,然后你会写一个类似 WHERE title LIKE %:query% 的 SQL 语句实现搜索功能.一开始,这是没问题,直到有一天,客户找到你跟你说,"搜索出错啦!" 当然,实际上搜索并没有&q

PHP在innodb引擎下快速代建全文搜索功能简明教程【基于xunsearch】_php技巧

本文实例讲述了PHP在innodb引擎下快速代建全文搜索功能的方法.分享给大家供大家参考,具体如下: 需要准备的设备:Liunx(Centos)操作系统(只支持Linux),PHP环境. 这里介绍一个国人开发的搜索引擎开源项目-讯搜(xunsearch),它分为:索引服务器和搜索服务器. 在CentOS下面愉快的代建服务器 wget http://www.xunsearch.com/download/xunsearch-full-latest.tar.bz2 tar -xjf xunsearch

Windows8 RTM下Visual Studio 2003全文搜索未响应解决办法

最近换了Win8 RTM用2003的时候发现又不能全文搜索了,一搜就未响应.想照Win7的做法结果发现右键-属性没有兼容性那个选项,没办法禁用视觉主题.Google百度未果遂自行研究最后果然发现方法了,记在此处方便同是程序的童鞋. 第一步在安装目录找到这个,大概在 X:\Program Files\Microsoft Visual Studio .NET 2003\Common7\IDE 第二步右键-兼容性疑难解答 第三步选择疑难解答程序 第四步第二个打钩-下一步 第五步前两个打钩 第六步要点测

使用Oracle Text构建全文搜索应用程序

Oracle Text 是一种功能强大的搜索技术,它内置于 Oracle 数据库的所有版本(包括免费提供的快捷版 (XE))中.它所提供的开发 API 使软件开发人员能够轻松实现功能齐备的内容搜索应用程序. Oracle Text 可用于搜索结构化和非结构化文档,是对 SQL 通配符匹配的补充.Oracle Text 支持使用基本的布尔运算符(AND.OR.NOT.NEAR 等)将多个搜索条目组合到一起,此外,它还具有更高级的功能,如 soundex 和模糊搜索,以及结果排序等.该技术支持数百种

如何在Python的Flask框架中实现全文搜索?

  这篇文章主要介绍了在Python的Flask框架中实现全文搜索功能,这个基本的web功能实现起来非常简单,需要的朋友可以参考下 全文检索引擎入门 灰常不幸的是,关系型数据库对全文检索的支持没有被标准化.不同的数据库通过它们自己的方式来实现全文检索,而且SQLAlchemy在全文检索上也没有提供一个好的抽象. 我们现在使用SQLite作为我们的数据库,所以我们可以绕开SQLAlchemy而使用SQLite提供的工具来创建一个全文检索索引.但这么做不怎么好,因为如果有一天我们换用别的数据库,那么

使用 Microsoft SQL Server 2000 的全文搜索功能构建 Web 搜索应用程序

server|web|程序|全文搜索 使用 Microsoft SQL Server 2000 的全文搜索功能构建 Web 搜索应用程序 Andrew B. CenciniMicrosoft Corporation 2002年12月 适用于:    Microsoft SQL Server 2000摘要:学习如何充分利用 SQL Server 2000 的全文搜索功能.本文包含有关实现最大吞吐率和最佳性能的几点提示和技巧. 目录简介 全文搜索功能简介 配置全文搜索功能 全文查询 排位和优化 其他

SQL SERVICE 2000的全文搜索的整理

全文搜索 全文搜索的整理: 1.启动 Microsoft Search 服务   开始菜单-->SQL程序组-->服务管理器-->下拉筐-->Microsoft Search 服务-->启动它   ---通常在服务的中已经启动了. 2.  ..\Microsoft SQL Server\MSSQL\FTDATA QLServer\Config\目录里建一个非空noise.chs文件  非空noise.chs文件,也有人说是空的noise.chs文件.   --通常当该文件夹下

MySQL 4.1.0 中文参考手册 --- 6.8 MySQL 全文搜索

mysql|参考|参考手册|全文搜索|中文 MySQL 4.1.0 中文参考手册 --- 犬犬(心帆)翻译 MySQL Reference Manual for version 4.1.0-alpha. 6.8 MySQL 全文搜索 到 3.23.23 时,MySQL 开始支持全文索引和搜索.全文索引在 MySQL 中是一个 FULLTEXT 类型索引.FULLTEXT 索引用于 MyISAM 表,可以在 CREATE TABLE 时或之后使用 ALTER TABLE 或 CREATE INDE

Sql Server全文搜索中文出错的问题

server|全文搜索|问题|中文 解决中文字符出错问题: 方法一:把文件复制到...\Microsoft SQL Server\MSSQL\FTDATA\SQLServer\Config\目录下(该路径为全文目录路径,可以全文目录属性中查看) 方法二:编辑...\Microsoft SQL Server\MSSQL\FTDATA\SQLServer\Config\目录下的noise.chs文件,清空文档,输入'@'(其他的偏僻符号也可以) 最后,重新进行全文完全填充!