当前位置: 首页 > 知识库问答 >
问题:

未设置Spring Boot配置属性

邓建柏
2023-03-14

我试图在Spring Boot环境中设置一个clamav病毒扫描程序。因此,我想在属性文件clamav.properties中设置主机和端口,该文件与application.properties文件一起位于我的resources目录中。看起来是这样的:

clamav.host=localhost
clamav.port=3310
clamav.timeout=1000

我有这门课:

@ConfigurationProperties("clamav.properties")
public class ClamAvClient {

static final Logger logger = LoggerFactory.getLogger(ClamAvClient.class);

@Value("${clamav.host}")
private String clamHost;

@Value("${clamav.port}")
private int clamPort;

@Value("${clamav.timeout}")
private int clamTimeout;

 public boolean ping() throws IOException {
     logger.debug("Host:"+clamHost+" Port:"+clamPort);
     blah.....
 }

private static byte[] asBytes(String s) {
    return s.getBytes(StandardCharsets.US_ASCII);
}   

public String getClamHost() {
    return clamHost;
}

public void setClamHost(String clamHost) {
    this.clamHost = clamHost;
}

public int getClamPort() {
    return clamPort;
}

public void setClamPort(int clamPort) {
    this.clamPort = clamPort;
}

public int getClamTimeout() {
    return clamTimeout;
}

public void setClamTimeout(int clamTimeout) {
    this.clamTimeout = clamTimeout;
}

}

它没有连接,在日志中我得到这个:

2017-09-23 20:39:45.947 DEBUG 28857 --- [http-nio-8080-exec-2] xxx.ClamAvClient  : Host:null Port:0

因此,这些值显然没有设置。我做错了什么?我使用的是spring boot starter web的托管版本,我的Eclipse称其为1.4.3版本

有什么想法吗?

共有1个答案

呼延高超
2023-03-14

使用@ConfigurationProperties将属性组映射到使用配置处理器的类。

@ConfigurationProperties中使用@Value看起来不正确。

要将属性映射到类,您只需:

@Configuration
@ConfigurationProperties(prefix="clamav")
public class ClamAvClient {

static final Logger logger = LoggerFactory.getLogger(ClamAvClient.class);


private String host;


private int port;


private int timeout;

//getters and setters

}

< code>prefix ="clamav"匹配属性文件中的前缀。

host,port,timeout 与类的属性匹配。

 类似资料:
  • 我需要从正在运行的实例中转储springboot应用程序属性,可以吗?我需要它的原因:我正在使用链接配置文件,但其中一个属性设置不正确。谢谢

  • <dependencyManagement> <dependencies> <dependency> <!--Import dependency management from SpringBoot--> <groupId>org.springframework.boot</groupId>

  • 更改Queue的属性 方法参数SetQueueAttributeRequest queueName : String : required 更改属性的Queue的名称 queueAttribute : QueueAttribute : optional 设置的Queue的属性,具体字段的含义请参见createQueue()中的解释 对于用户自定义属性userAttributes中的每个keyVal

  • 问题内容: 在控制台上运行演示JSF应用程序时出现以下错误 问题答案: 这不是错误。这是一个警告。差异非常大。该特定警告基本上意味着中的元素包含未知属性,并且Tomcat不知道如何处理该属性,因此将忽略它​​。 Eclipse WTP将自定义属性添加source到Tomcat中与项目相关的元素,该属性标识上下文的源(工作空间中的实际项目,该项目已部署到特定服务器)。这样,Eclipse可以将部署的

  • Settings(配置设置) 是影响FreeMarker行为的已被命名的值。配置设置有很多, 例如:locale,number_format, default_encoding, template_exception_handler。可以参考 Configuration.setSetting(...)的Java API 文档 来查看配置设置的完整列表。 配置设置存储在 Configuration

  • 我有教育问题: 存在具有windows server 2003(AD)的虚拟机,其中包含用户及其密码。已建立与机器的连接(ip:192.168.56.101:389)。 Web应用程序的目的是使用户能够在AD中更改他的密码。 问题:无法配置到windws server 2003的连接。 我从这个教程开始https://spring.io/guides/gs/authenticating-ldap/