Java Spring属性注入@Value实例Null

Java Spring属性注入@Value实例Null,java,spring,Java,Spring,我有一个类来加载属性,但是当我创建一个实例时,这个类总是空的 import lombok.Getter; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Configuration; @Configurati

我有一个类来加载属性,但是当我创建一个实例时,这个类总是空的

import lombok.Getter;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;

@Configuration
public class Blacklist
{
 @Getter
 @Value("${blacklist.regex:}")
 public String regex;
}
实例

public class Filter{

  private BlackList blacklist = new BlackList();

  private regex = blackList.getRegex();

 }
黑名单为空

我尝试使用@autowired,但没有成功。 特性:

blacklist.regex=^.{1,50}$

我发现了这个问题,我的类过滤器没有Spring逻辑来注入我将使用Bean配置器和构造函数的值

@Value("${blacklist.regex:}")
public String regex;

 @Bean
 public Filter()
 {
   return new Filter(regex);
 }

我认为这里有很多问题

  • 您尝试用@Configuration注释定义bean(从技术上讲可以工作,但实践不好)
  • 您可以在没有spring上下文的情况下手动创建实例黑名单
  • (可能是错误的,只是一个设计问题)在模型对象中使用值注入
  • 键入您的@Value
  • 我的建议:

    • 您应该将该值作为字段注入服务(@service/@Component)
    • 请尝试删除@Value注释中的:
    • 使用/创建实例的类也应该在spring上下文中

    共享属性文件中定义了
    blacklist.regex
    的部分您确定要在Spring上下文中运行代码吗?如果无法解析属性,Spring通常会做出异常反应。另外,我不确定您的空默认值(在@value表达式中冒号后没有值)是否有效。
    new BlackList()
    在任何情况下都不起作用。
    黑名单
    的实例不知道如何弹出,它不会对它做任何处理。