Jhipster:获取application-dev属性值

时间:2016-08-18 14:46:16

标签: jhipster

在Java中,我需要在application-dev.yml文件中获取邮件属性(用户名,密码,端口,主机等)的值。 我怎么能这样做?

由于

2 个答案:

答案 0 :(得分:2)

编辑:我重新阅读了您的问题,发现您正在尝试设置/检索邮件属性。这些是常见的Spring Boot属性,您无需处理自定义属性。以下是从应用程序中检索它们的方法:

spring:
    mail:
        username: realUsername

@Service
public class ExampleService {

    @Inject
    private MailProperties mailProperties;

    public void exampleMethod() {
        mailProperties.getUsername();
    }
}

OLD ANSWER:

JHipster为这些名为JHipsterProperties的自定义属性创建了一个类,您可以将其注入到bean中。例如:

@Service
public class ExampleService {

    @Inject
    private JHipsterProperties jHipsterProperties;

    public void exampleMethod() {
        jHipsterProperties.getMail().getFrom();
    }
}

您可以随意扩展JHipsterProperties(及其内部类)。剥离的例子:

jhipster:
    mail:
        username: realUsername

public class JHipsterProperties {

    private final Mail mail = new Mail();

    public static class Mail {

        private String username = "defaultUsername";

        public String getUsername() {
            return username;
        }

        public void setUsername(String username) {
            this.username = username;
        }
    }
}

然后可以在您的bean中使用jHipsterProperties.getMail().getUsername();

但是,我建议您创建自己的属性类并配置Spring以将其用于自定义属性。我更喜欢单独保留JHipster特定的代码,因此在升级JH​​ipster版本时我没有多少工作要做。

答案 1 :(得分:0)

我假设您要在app-dev.yml中设置用户名,密码,端口和主机。

spring:
profiles:
    active: dev
datasource:
    driverClassName: com.nuodb.jdbc.Driver
    dataSourceClassName: com.nuodb.jdbc.DataSource
    url: jdbc:com.nuodb://localhost:48004/test?schema=HOCKEY
    databaseName: test
    serverName: localhost
    username: dba
    password: goalie
    cachePrepStmts: true
    prepStmtCacheSize: 250
    prepStmtCacheSqlLimit: 2048
    useServerPrepStmts: true

jpa:
    database-platform: org.nuodb.hibernate.NuoDBDialect
    database: test
    openInView: false
    show_sql: true
    generate-ddl: false
    hibernate:
        ddl-auto: none
        naming-strategy: org.hibernate.cfg.EJB3NamingStrategy
    properties:
        hibernate.cache.use_second_level_cache: true
        hibernate.cache.use_query_cache: false
        hibernate.generate_statistics: true
        hibernate.cache.region.factory_class: org.hibernate.cache.ehcache.SingletonEhCacheRegionFactory
messages:
    cache-seconds: 1
thymeleaf:
    mode: XHTML
    cache: false

metrics:
    jmx.enabled: true
    graphite:
        enabled: false
        host: localhost
        port: 2003
        prefix: hockey

cache:
    timeToLiveSeconds: 3600
    ehcache:
        maxBytesLocalHeap: 16M

您可以在app-dev.yml中进行更改,并在DatabaseConfiguration类中执行相同的更改。这应该可以解决你的问题。

另外,请告诉我,您是否正在尝试向JHipster添加新数据库?或者请让我知道你实际上想要做什么。