在Java中,我需要在application-dev.yml文件中获取邮件属性(用户名,密码,端口,主机等)的值。 我怎么能这样做?
由于
答案 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特定的代码,因此在升级JHipster版本时我没有多少工作要做。
答案 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添加新数据库?或者请让我知道你实际上想要做什么。