Grails3.2项目配置

Grails3.2项目配置

1. 基本配置

Grails中的配置通常分为两个方面:构建配置运行时配置
构建配置通常通过Gradle和build.gradle文件完成。运行时配置默认在grails-app/conf/application.yml文件中的YAML中指定。

application.yml 是Grails 3.0中引入了配置任务的替代格式。

2. dataSource配置

driverClassName - JDBC驱动程序的类名称
username - 用于建立JDBC连接的用户名
password - 用于建立JDBC连接的密码
url - 数据库的JDBC URL
dbCreate - 是否从领域模型自动生成数据库 - “创建 - 删除”,“创建”,“更新”或“验证”
pooled - 是否使用连接池(默认为true)
logSql - 启用SQL日志记录到标准输出
formatSql - 格式化记录的SQL
dialect - 表示用于与数据库通信的Hibernate方言的字符串或类。有关可用方言,请参阅org.hibernate.dialect包。
readOnly- 如果true使DataSource为只读,这会导致setReadOnly(true)每个连接池都调用它Connection
transactional- 如果false将DataSource的transactionManager bean留在链式BE1PC事务管理器实现之外。这仅适用于其他数据源。
persistenceInterceptor - 默认数据源自动连接到持久性拦截器,其他数据源不会自动连接,除非设置为 true
properties - 在DataSource bean上设置的额外属性。请参阅Tomcat池文档。还有一个属性的Javadoc格式文档。
jmxExport- 如果false将禁用所有数据源的JMX MBean注册。默认情况下,JMX MBean通过jmxEnabled = true属性添加到DataSources 中。

3. properties 属性

jmxEnabled: true(注册池JMX)
initialSize: 5(初始化连接数)
maxActive: 50(连接池处于活动状态的数据库连接的最大数目,0表示不限制,表示最大并发)
minIdle: 5(连接池处于空闲状态的数据库连接的最小数目,低于此数值将会创建所欠缺的连接,设0无限制)
maxIdle: 25(连接池处于空闲状态的数据库连接的最大数目,取非正整数表示不受限制,超过此数值时多余的空闲连接将会被释放)
maxWait: 10000(连接池中连接用完时,新的请求的等待时间(即等待别的连接空闲),超时返回异常,毫秒)
maxAge: 600000()保持连接的最大毫秒数。当一个连接被归还时,连接池将检查是否满足:现在时间-连接时长>maxAge,如果条件满足,连接将被关闭而不是回到池中。默认值为0,标识禁用该功能)
timeBetweenEvictionRunsMillis: 5000(以毫秒表示空闲对象驱逐进程由休眠状态进入运行状态的数值,值为非正整时表示不运行任何空闲对象驱逐进程运行判断连接超时任务的时间间隔)
minEvictableIdleTimeMillis: 60000(以毫秒表示连接被空闲对象驱逐进程驱逐前在池中保持空闲状态的最小时间,连接的超时时间,默认为半小时)
validationQuery: SELECT 1(在连接返回给调用者前用于校验连接是否有效的SQL语句,如果指定了SQL语句,则必须为一个SELECT语句,且至少有一行结果)
validationQueryTimeout: 3
validationInterval: 15000(检查连接死活的时间间隔,单位:毫秒)
testOnBorrow: true(指定连接被调用时是否经过校验,如果校验未通过,则该连接被连接池断掉,并由连接池尝试调用另一个连接值为true,则validationQuery参数必须为一个非空字)
testWhileIdle: true(指定连接进入空闲状态时是否经过空闲对象驱逐进程的校验,如果校验未通过,则该连接被连接池断掉值为true,则validationQuery参数必须为一个非空字串)
testOnReturn: false(指定连接返回到池中是时是否经过校验值为true,则validationQuery参数必须为一个非空字串)
jdbcInterceptors: ConnectionState(设置 tomcat jdbc 连接池的拦截器。
内置的拦截器: org.apache.tomcat.jdbc.pool.interceptor.ConnectionState
追踪自动提交、只读状态、catalog和事务隔离等级等状态)
defaultTransactionIsolation: 2 (指定由连接池所创建的连接的事务级别——TransactionIsolation。可用值为下列之一:详情可见javadoc
NONE, READ_COMMITTED, READ_UNCOMMITTED, REPEATABLE_READ, SERIALIZABLE)

dataSource {
    pooled = true
    dbCreate = "update"
    url = "jdbc:mysql://localhost:3306/my_database"
    driverClassName = "com.mysql.jdbc.Driver"
    dialect = org.hibernate.dialect.MySQL5InnoDBDialect
    username = "username"
    password = "password"
    properties {
       // Documentation for Tomcat JDBC Pool
       // http://tomcat.apache.org/tomcat-7.0-doc/jdbc-pool.html#Common_Attributes
       // https://tomcat.apache.org/tomcat-7.0-doc/api/org/apache/tomcat/jdbc/pool/PoolConfiguration.html
       jmxEnabled = true
       initialSize = 5
       maxActive = 50
       minIdle = 5
       maxIdle = 25
       maxWait = 10000
       maxAge = 10 * 60000
       timeBetweenEvictionRunsMillis = 5000
       minEvictableIdleTimeMillis = 60000
       validationQuery = "SELECT 1"
       validationQueryTimeout = 3
       validationInterval = 15000
       testOnBorrow = true
       testWhileIdle = true
       testOnReturn = false
       ignoreExceptionOnPreLoad = true
       // http://tomcat.apache.org/tomcat-7.0-doc/jdbc-pool.html#JDBC_interceptors
       jdbcInterceptors = "ConnectionState;StatementCache(max=200)"
       defaultTransactionIsolation = java.sql.Connection.TRANSACTION_READ_COMMITTED // safe default
       // controls for leaked connections
       abandonWhenPercentageFull = 100 // settings are active only when pool is full
       removeAbandonedTimeout = 120
       removeAbandoned = true
       // use JMX console to change this setting at runtime
       logAbandoned = false // causes stacktrace recording overhead, use only for debugging
       // JDBC driver properties
       // Mysql as example
       dbProperties {
           // Mysql specific driver properties
           // http://dev.mysql.com/doc/connector-j/en/connector-j-reference-configuration-properties.html
           // let Tomcat JDBC Pool handle reconnecting
           autoReconnect=false
           // truncation behaviour
           jdbcCompliantTruncation=false
           // mysql 0-date conversion
           zeroDateTimeBehavior='convertToNull'
           // Tomcat JDBC Pool's StatementCache is used instead, so disable mysql driver's cache
           cachePrepStmts=false
           cacheCallableStmts=false
           // Tomcat JDBC Pool's StatementFinalizer keeps track
           dontTrackOpenResources=true
           // performance optimization: reduce number of SQLExceptions thrown in mysql driver code
           holdResultsOpenOverStatementClose=true
           // enable MySQL query cache - using server prep stmts will disable query caching
           useServerPrepStmts=false
           // metadata caching
           cacheServerConfiguration=true
           cacheResultSetMetadata=true
           metadataCacheSize=100
           // timeouts for TCP/IP
           connectTimeout=15000
           socketTimeout=120000
           // timer tuning (disable)
           maintainTimeStats=false
           enableQueryTimeouts=false
           // misc tuning
           noDatetimeStringSync=true
       }
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值