grails学习笔记-5、conf下的配置文件
来源:互联网 发布:c语言判断是否是素数 编辑:程序博客网 时间:2024/05/29 14:16
配置文件结构如下图:
大体说说每个文件的作用:
1、resources.groovy:Spring的bean在这里便配置。
// Place your Spring DSL code hereimport org.springframework.cache.ehcache.EhCacheManagerFactoryBeanimport org.springframework.cache.ehcache.EhCacheFactoryBeanbeans = {//----------------------EhCache配置---------------------------begin//EhCacheManagerFactoryBean创建的cacheManager是单例模式的cacheManager (EhCacheManagerFactoryBean){bean->shared=trueconfigLocation="/WEB-INF/ehcache.xml"}//EhCacheManagerFactoryBean是一个FactoryBean,用来产生CacheManageradvertismentCache(EhCacheFactoryBean){//EhCacheFactoryBean是一个FactoryBean,用来产生CachecacheManager = ref("cacheManager")cacheName = "advertisementCache"}clientVersionCache(EhCacheFactoryBean){//EhCacheFactoryBean是一个FactoryBean,用来产生CachecacheManager = ref("cacheManager")cacheName = "clientVersionCache"}//---------------------EhCache配置---------------------------end}
上边是我一个项目中的。以前要在applicationContext.xml中配置的bean你可以挪到这里来。凡是这里定义的bean,你都可以直接注入到controller和service中使用。
例如这样
class BookController { def reportCache//在resource文件中有定义
def getElement(){
Element element=reportCache.get(xx)
}
}
service中也是一样。
2、ApplicationResources.groovy:这个在项目中基本没用到。不熟悉。
3、BootStrap.groovy。如果你要在程序启动后/程序结束时自动做一些工作,就在这里。
import com.eternal.photomanage.system.SysRoleimport com.eternal.photomanage.system.SysUserimport com.eternal.photomanage.bussiness.Advertisementimport net.sf.ehcache.Cache;import net.sf.ehcache.Elementimport org.apache.shiro.crypto.hash.Sha256Hashclass BootStrap {def advertisementServicedef clientVersionServiceCache advertismentCache//缓存发布的广告 def init = { servletContext ->//建立超级管理员用户//Create the admin role def adminRole = SysRole.findByName('ROLE_ADMIN') ?: new SysRole(name: 'ROLE_ADMIN').save(flush: true, failOnError: true) // Create an admin SysUser def adminUser = SysUser.findByUsername('admin') ?: new SysUser(username: "admin", passwordHash: new Sha256Hash('password').toHex(), type:SysUser.SysUserType.SysUser.value) .save(flush: true, failOnError: true) // Add roles to the admin SysUser assert adminUser.addToRoles(adminRole) .save(flush: true, failOnError: true) //Add permission to the role ROLE_ADMIN assert adminRole.addToPermissions("*:*") .save(flush: true, failOnError: true) //查询发布的广告,将广告推送到缓存 advertisementService.pushAdvertisments() // 查询客户端版本信息,将发布的版本信息放到缓存中 clientVersionService.pushNewVersion() } def destroy = { }}上边是我一个项目中的。我在程序启动后往缓存中推送了数据。注意:advertisementService和clientVersionService,这是我定义的两个service,可以直接注入到BootStrap.groovy中使用。两个服务类分别是AdvertisementService.groovy和ClientVersionService.groovy,注入时只要将类名的第一个字母小写就行了。destory一般不用,因为你只有通过命令(比如tomcat:catalina stop)或者停止服务等正常方式来停止服务器,才能调用destory。我们不能保证destory被调用。
4、BuildConfig.groovy。项目build是用到的信息。
grails.servlet.version = "2.5" // Change depending on target container compliance (2.5 or 3.0)grails.project.class.dir = "target/classes"grails.project.test.class.dir = "target/test-classes"grails.project.test.reports.dir = "target/test-reports"grails.project.target.level = 1.6grails.project.source.level = 1.6//grails.project.war.file = "target/${appName}-${appVersion}.war"grails.project.dependency.resolution = { // inherit Grails' default dependencies inherits("global") { // specify dependency exclusions here; for example, uncomment this to disable ehcache: // excludes 'ehcache' } log "error" // log level of Ivy resolver, either 'error', 'warn', 'info', 'debug' or 'verbose' checksums true // Whether to verify checksums on resolve repositories { inherits true // Whether to inherit repository definitions from plugins grailsPlugins() grailsHome() grailsCentral() mavenLocal() mavenCentral() // uncomment these (or add new ones) to enable remote dependency resolution from public Maven repositories //mavenRepo "http://snapshots.repository.codehaus.org" //mavenRepo "http://repository.codehaus.org" //mavenRepo "http://download.java.net/maven/2/" //mavenRepo "http://repository.jboss.com/maven2/" } dependencies { // specify dependencies here under either 'build', 'compile', 'runtime', 'test' or 'provided' scopes eg. // runtime 'mysql:mysql-connector-java:5.1.20'runtime 'postgresql:postgresql:9.1-902.jdbc4' } plugins { runtime ":hibernate:$grailsVersion" runtime ":jquery:1.8.0" runtime ":resources:1.1.6" // Uncomment these (or add new ones) to enable additional resources capabilities //runtime ":zipped-resources:1.0" //runtime ":cached-resources:1.0" //runtime ":yui-minify-resources:0.1.4" build ":tomcat:$grailsVersion" runtime ":database-migration:1.1" compile ':cache:1.0.0'compile(':shiro:1.1.4'){//加上这句话后,安装插件和打包时也就不再引入shiro1.1.4所依赖的quartz-1.6.2.jarexcludes "quartz"} }}grails.war.resources = { stagingDir, args ->copy(todir: "${stagingDir}/WEB-INF/classes"){fileset(dir:"grails-app/conf",includes:"log4jConf.groovy")}copy(todir: "${stagingDir}/WEB-INF/classes"){fileset(dir:"grails-app/conf",includes:"QuartzConfig.groovy")}}
上边是我一个项目中的。详细说明看官方文档。我就不说了。我说要我曾遇到的问题。
(1)数据库驱动jar。我在lib中引入jar包,add to build path,refresh dependencies。开发中没遇到问题,编译也正常。单在运行时报"数据库驱动包找不着"。在上边的文件的dependencies中添加 runtime 'postgresql:postgresql:9.1-902.jdbc4'后解决。
(2)插件安装时遇到的问题。我在一个项目中引入了两个插件shiro和quartz2。shiro依赖quartz-1.6.2.jar,而quartz2依赖quartz-2.0.0。两者冲突导致quartz2插件无法运行。卸载插件shiro,在上边文件的plugins中添加:
compile(':shiro:1.1.4'){//加上这句话后,安装插件和打包时也就不再引入shiro1.1.4所依赖的quartz-1.6.2.jar
excludes "quartz"
}
重新安装shiro,解决问题。
可以看到,dependencies中你可以添加对jar包的依赖。grails会自动通过maven在定义好的库(repositories {}中定义)中找到并下载下来使用。插件对jar包依赖则定义在plugins中。
(3)我要在打包时往war包中添加一些文件。可以通过
grails.war.resources = { stagingDir, args ->copy(todir: "${stagingDir}/WEB-INF/classes"){fileset(dir:"grails-app/conf",includes:"log4jConf.groovy")}copy(todir: "${stagingDir}/WEB-INF/classes"){fileset(dir:"grails-app/conf",includes:"QuartzConfig.groovy")}}来实现。这里为什么要拷贝这两个文件也是有原因的,以后会说明。
(4)Config.groovy。主要的配置文件。具体说明看官方文档。我遇到很多问题跟这个文件有关,后边会专门说明。
(5)DataSource.groovy:数据库配置文件。具体说明看官方文档。我遇到很多问题跟这个文件有关,后边会专门说明。
(6)UrlMapping.groovy:定义了grails项目中url的格式。我们一般不用动它。
- grails学习笔记-5、conf下的配置文件
- grails学习笔记-6、conf配置文件-你让我该怎样部署
- grails 配置文件的读取
- Grails学习笔记1
- Grails学习笔记2
- Grails学习笔记3
- Grails学习笔记4
- grails学习笔记
- grails学习笔记
- play framework学习笔记之 conf/routes file 路径配置文件
- play framework学习笔记之 conf/routes file 路径配置文件
- [学习笔记7]Apache及配置文件httpd.conf
- 【学习笔记】redis配置文件redis.conf参数说明
- Redis学习笔记(6)-redis.conf配置文件详解
- Redis 学习笔记2:redis.conf配置文件详解
- grails学习笔记-1、grails概述
- Linux下的samba服务器配置文件详解 smb.conf
- Linux下DNS域名解析的配置文件 resolv.conf
- myeclipse 优化
- python函数修饰器
- 常用命令 sed awk 总结
- ie浏览器debug调试方法
- ARM嵌入式开发中的GCC内联汇编简介
- grails学习笔记-5、conf下的配置文件
- HDU(1753)
- Virtualbox利用双网卡实现宿主与虚拟机互联并能访问internet
- 烦人的IE弹窗:设置Windows Internet Explorer
- Oracle临时表的使用
- Ubuntu 命令
- 软件模块化
- CodeSmith基础教程
- 2.学习本体-Property