【问题标题】:Spring Property value NULLSpring 属性值 NULL
【发布时间】:2020-08-05 19:55:27
【问题描述】:
@Autowired
public JobBuilderFactory jobBuilderFactory;

@Autowired
public StepBuilderFactory stepBuilderFactory;


@Autowired
public JdbcTemplate jdbcTemplate;

@Autowired
public DataSource dataSource;

@Autowired
TaskletStep taskletStep;

@Value("${spring.firstName}")
public String firstName

  
  String selectABC  ="SELECT * FROM WHERE ABAACD = '" + firstName+

您好,上面的属性值在 select 语句中为空,但我可以在调试模式下看到 firstName 变量中@Value 之后的值。

这里缺少什么?

【问题讨论】:

  • 在构造函数中初始化 selectABC

标签: spring-boot


【解决方案1】:

Spring 将在对象构建后的某个时间注入属性。对于你的变量selectABC,你在构造函数调用之前设置它,对象默认为null。

你需要使用@PostConstruct注解来保证Spring已经为你完成了bean的初始化。

String selectABC;

@PostConstruct
public void init() {
  selectABC  ="SELECT * FROM WHERE ABAACD = '" + firstName + "'";
}

另一种选择是将常量部分直接附加到 @Value 注释内:

@Value("SELECT * FROM WHERE ABAACD = '${spring.firstName}'")
String selectABC;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-07-12
    • 1970-01-01
    • 2018-09-02
    • 2013-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多