首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从分级、弹簧和DB2开始的挑战

从分级、弹簧和DB2开始的挑战
EN

Stack Overflow用户
提问于 2014-09-30 21:08:32
回答 1查看 4.7K关注 0票数 4

我的项目想法是使用Gradle编写一个简单的Spring纯java应用程序,该应用程序将连接到DB2数据库,并在控制台上提取一些数据和打印。

首先,我使用Eclipse露娜创建了一个Gradle项目。

我的挑战:

  1. 如何在具有database.properties、db.url、db.username和db.password的src/main/resources中读取该文件?
  2. 我如何告诉Gradle为驱动程序拿起db2cc4.jar?我不能使用Gradle依赖项来管理它,因为它是一个专有的jar。

这是我的build.gradle

代码语言:javascript
复制
apply plugin: 'java'
apply plugin: 'eclipse'

repositories {
    mavenCentral()
 }

jar {
    baseName = 'QueryExecutor'
    version =  '0.1.0'
 }

dependencies {
    compile 'org.springframework:spring-context:4.1.0.RELEASE'
    compile 'org.springframework:spring-jdbc:4.1.0.RELEASE'
    runtime files('lib/db2cc4.jar') 
    testCompile 'junit:junit:4.+'
  }

task wrapper(type: Wrapper) {
    gradleVersion = '2.1'
}

这是我的ApplicationConfig.java

代码语言:javascript
复制
import javax.annotation.Resource;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
import org.springframework.context.annotation.PropertySource;
import org.springframework.core.env.Environment;

import org.shrinathk.queryexecutor.persistence.QueryExecutorDAO;

@Configuration
@Import({DatabaseConfig.class})
@PropertySource("classpath:application.properties")
@PropertySource("classpath:database.properties")
public class ApplicationConfig
{
    @Resource
    private Environment env;

    @Bean
    public QueryExecutorDAO queryExecutor()
    {
    return new org.shrinathk.queryexecutor.persistence.QueryExecutorDAO();
    }
}

这是我的DatabaseConfig.java

代码语言:javascript
复制
import javax.annotation.Resource;
import javax.sql.DataSource;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.env.Environment;
import org.springframework.jdbc.datasource.DriverManagerDataSource;
import org.springframework.transaction.annotation.EnableTransactionManagement;

@Configuration
@EnableTransactionManagement
public class DatabaseConfig
{

    private static final String PROPERTY_NAME_DATABASE_DRIVER   = "db.driver";
    private static final String PROPERTY_NAME_DATABASE_URL      = "db.url";
    private static final String PROPERTY_NAME_DATABASE_USERNAME = "db.username";
    private static final String PROPERTY_NAME_DATABASE_PASSWORD = "db.password";

    @Resource
    private Environment env;

    @Bean
    public DataSource dataSource()
    {
    DriverManagerDataSource dataSource = new DriverManagerDataSource();

    dataSource.setDriverClassName(env.getRequiredProperty(PROPERTY_NAME_DATABASE_DRIVER));
    dataSource.setUrl(env.getRequiredProperty(PROPERTY_NAME_DATABASE_URL));
    dataSource.setUsername(env.getRequiredProperty(PROPERTY_NAME_DATABASE_USERNAME));
    dataSource.setPassword(env.getRequiredProperty(PROPERTY_NAME_DATABASE_PASSWORD));

    return dataSource;
    }
}

database.properties文件

代码语言:javascript
复制
db.driver=com.ibm.db2.jcc.DB2Driver
db.url=jdbc:db2://localhost:50000/SAMPLE
db.username=db2admin
db.password=db2admin

以下是我的项目结构:

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-09-30 21:13:49

  1. 项目的结构(例如,src/main/resources)与maven中的结构相同。当您准备部署工件时,应该自动将其移动到适当的位置。
  2. 在添加db2jcc.ar依赖项时,您需要的是一个flatDir,或者在dependencies部分下添加以下代码: compile fileTree(dir: 'lib', include: '*.jar')
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26130148

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档