Jhipster 在何处以及如何定义应用程序属性?-杰普斯特
在Spring引导中,可以在application.properties文件中定义应用程序属性。例如,Rest的前缀可以定义为Jhipster 在何处以及如何定义应用程序属性?-杰普斯特,jhipster,Jhipster,在Spring引导中,可以在application.properties文件中定义应用程序属性。例如,Rest的前缀可以定义为 spring.data.rest.basePath=api 对于基于Spring Boot的JHipster,我想可以在application.yml文件中定义应用程序属性。但以下方法对我都不起作用:404错误 spring.data.rest.basePath: api spring: data: rest: bas
spring.data.rest.basePath=api
对于基于Spring Boot的JHipster,我想可以在application.yml文件中定义应用程序属性。但以下方法对我都不起作用:404错误
spring.data.rest.basePath: api
spring:
data:
rest:
basePath: api
另一种可能是配置本身不起作用 应用程序.yml应该有空格而不是制表符 试着这样做:
spring:
data:
rest:
basePath: api
在我的应用程序中,文件位于以下路径中:
src\main\resources\config\application.yml
我也有同样的问题,终于解决了 引自Jhipster网站: 生成的应用程序也可以有自己的Spring引导属性。这是强烈建议的,因为它允许应用程序的类型安全配置,以及IDE中的自动完成和文档 JHipster已经在配置包中生成了一个ApplicationProperties类,该类已经预配置,并且已经在底部的application.yml、application-dev.yml和application-prod.yml文件中记录了该类。您只需编写自己的特定属性代码 在我的例子中,我已经在applicationon-prod.yml中设置了属性
application:
redis:
host: vnode1
pool:
max-active: 8
max-idle: 8
max-wait: -1
min-idle: 0
port: 6379
在ApplicationProperties类中:
@ConfigurationProperties(prefix = "application", ignoreUnknownFields = false)
public class ApplicationProperties {
public final Redis redis = new Redis();
public Redis getRedis() {
return redis;
}
public static class Redis {
private String host = "127.0.0.1";
private int port = 0;
public String getHost() {
return host;
}
public void setHost(String host) {
this.host = host;
}
public int getPort() {
return port;
}
public void setPort(int port) {
this.port = port;
}
private Pool pool = new Pool();
public void setPool(Pool pool) {
this.pool = pool;
}
public Pool getPool() {
return this.pool;
}
public static class Pool {
private int maxActive = 8;
private int maxWait = -1;
public int getMaxIdle() {
return maxIdle;
}
public void setMaxIdle(int maxIdle) {
this.maxIdle = maxIdle;
}
private int maxIdle = 8;
private int minIdle = 0;
public void setMaxActive(int maxActive) {
this.maxActive = maxActive;
}
public int getMaxActive() {
return maxActive;
}
public int getMinIdle() {
return minIdle;
}
public void setMinIdle(int minIdle) {
this.minIdle = minIdle;
}
public int getMaxWait() {
return maxWait;
}
public void setMaxWait(int maxWait) {
this.maxWait = maxWait;
}
}
}
}
然后我将其用作:
private final ApplicationProperties.Redis redis;
public RedisConfiguration(ApplicationProperties applicationProperties){
redis = applicationProperties.getRedis();
}
例如,使用max wait
和host
:
this.redis.getPool().getMaxWait();
this.redis.getHost();
希望能有帮助。在尝试了几十次如何处理这个问题后,我终于想出了如何让它工作。也许它会对某些人有用 要为控制器使用前缀(比如说
jh
),我们需要使用server.servlet.context path
,而不是spring.data.rest.basePath
链接到文档
因此,application.yml
应该如下所示:
server:
servlet:
context-path: /jh
session:
cookie:
http-only: true
此链接中的信息也有助于解决此问题 按照上面的海丰张答案构建应用程序配置类后,您可以通过以下方式在任何位置访问这些属性: @自动连线 私有应用程序属性redis 然后访问属性
int myEnvironmentPort=redis.getPort() 你是说另一行下面的一行应该以空格开头,而不是制表符?application.yml中生成的行看起来像pre,为我增加了一个选项卡空间。我正在处理另一个问题,将返回测试这个问题。感谢您的输入。是什么让您认为OP使用了制表符,而不是空格?我注意到application.yml文件中有多少空格。我曾尝试在新行前面多放一个空格,在新行前面多放四个空格,但运气不好。如果您所指的位置是application.yml文件的目录,那么我只使用src\main\resources\config\application.yml目录中的文件。我正在尝试将其用于应该为上载路径提供一些配置的服务中。在服务中,我使用私有的final ApplicationProperties.Redis;public RedisConfiguration(ApplicationProperties ApplicationProperties){redis=ApplicationProperties.getRedis();}我得到一个错误:变量可能尚未配置。因为我想这是决赛。嘿。您找到在jHipster spring引导中设置基本路径的解决方案了吗?我也面临同样的问题。