java - Spring : How to configure tomcat Datasource Programatically in Groovy DAO

标签 java spring spring-mvc tomcat groovy

我在 XML 中配置了我的 tomcat 数据源,如下所示:

<bean id="docDataSource"
    class="org.apache.tomcat.jdbc.pool.DataSource" 
    destroy-method="close"
    p:driverClassName="${doc.database.driver}" 
    p:url="${doc.database.url}"
    p:username="${doc.database.user}" 
    p:password="${doc.database.password}"
    p:validationQuery="select 1" 
    p:testOnBorrow="true" 
    p:minIdle="2" 
    p:maxIdle="4" 
    p:maxActive="6" 
    p:defaultTransactionIsolation="1">
</bean>

我的 customDAO(groovy 类)使用上面的数据源如下

import org.springframework.beans.factory.annotation.Autowired
import org.springframework.beans.factory.annotation.Qualifier
import org.springframework.stereotype.Component
import groovy.sql.Sql
import org.apache.log4j.Level
import javax.sql.DataSource
import java.util.Map
import java.util.Map.Entry
import java.util.ResourceBundle

@Component
public class customDao implements GroovyInterceptable {

    @Autowired
    private Services services

    @Autowired
    @Qualifier("docDataSource")
    private DataSource            dataSource
   // implementation    
}

我想将我的 tomcat 数据源切换为类文件而不是 XML。有人可以帮我怎么做吗?

最佳答案

这是您可以遵循的一段代码(使用 PostgreSQL,但它或多或少应该工作相同):

import org.postgresql.ds.PGPoolingDataSource
import org.springframework.beans.factory.annotation.Value
import org.springframework.context.annotation.Bean
import org.springframework.context.annotation.Configuration

import javax.sql.DataSource

@Configuration
class PostgreSQLDatasourceConfiguration {

  @Bean(name = 'dataSource')
  DataSource ds(@Value('${DATABASE_URL}') String databaseFullUrl) {
    assert databaseFullUrl, 'Database URL is required to start the application'

    URI uri = new URI(databaseFullUrl)
    def (_, dbUsername, dbPassword) = (uri.getUserInfo() =~ /(.*):(.*)/)[0]

    (DataSource) new PGPoolingDataSource().tap {
      url = "jdbc:postgresql://$uri.host:${uri.port}$uri.path"
      password = dbPassword
      user = dbUsername
    }
  }
}

关于java - Spring : How to configure tomcat Datasource Programatically in Groovy DAO,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30679581/

相关文章:

java - 在 MVC 中从 WCF 服务反序列化 Json 时出错

java - 如果使用 Android 后台服务,Flutter 卡在 'waiting for observatory port to be available'

java - Selenium 日历: Months and Dates Selections: What i'm doing wrong

java - 带条件的 Spring Integration header 值路由器

spring - 隐藏 SpringFox 2 中 Spring MVC Controller 的返回值

java - JFrame 不动

java spring无尽的并发工作

java - 如何在spring boot中使用@Bean为抽象类创建bean

java - 如何在登录页面上确定是否有用户已经登录?

java - 我可以在 Spring MVC 的 ModelAndView 中返回两个模型吗