[英]Accessing properties from application.properties in a non Controller class
[英]Spring Boot application.properties custom variable in a non-controller class
application.properties 怎么会在 RestController 中工作,但不能在服务 class 中工作?
//application.properties
test=test
完美运行!
@RestController
public class invitecontroller {
@Autowired inviteconfig inviteconfig;
@PostMapping("/v1/invite")
public void invite(@RequestBody XXX XXX) {
System.out.println(inviteconfig);
}
}
返回“空”
@Service
public class inviteservice {
@Autowired inviteconfig inviteconfig;
public void invite() {
System.out.println(inviteconfig);
}
}
@Configuration
@Data
public class inviteconfig {
private String test;
}
邀请服务inviteservice
没有为 Spring IoC(控制反转)配置为 bean,因此 Spring 将不会处理inviteservice
生命周期。 在这种情况下, @Autowired
毫无用处。
要解决此问题,请尝试将@Component
注释添加到invitesevice
,将其声明为组件:
@Component
public class inviteservice {
@Autowired inviteconfig inviteconfig;
public void invite() {
System.out.println(inviteconfig);
}
}
对于 controller,使用@RestController
时,Spring 会将您的 class 识别为 Z38008DD81C2F4D1DE798 组件。
最后别忘了使用inviteservice
IoC 注入邀请服务(使用@Autowired
注解,或者其他方式)
邀请服务 class 应使用 @Component 或 @Service 注释
@Component
public class inviteservice {
...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.