我也看到了类似的问题,但是没有一个答案对我有用。我有一个春季启动项目,我试图从我的OkHttpInterceptor类的属性文件中读取一个值。这是我的工作:
@Component
public class MyInterceptor implements Interceptor{
@Value("${api.key}")
private String apiKey;
@Override
public Response intercept(Chain chain) throws IOException {
Request request = chain.request();
Request newRequest;
newRequest = request.newBuilder()
.addHeader("Token", apiKey)
.build();
return chain.proceed(newRequest);
}
}
此处,apiKey返回null。但是,如果我在RestController中尝试相同的操作,则可以读取该值:
@RestController
public class PlatformController {
@Autowired
private PlatformService platformService;
@Value("${api.key}")
private String apiKey;
}
我还在拦截器类中尝试了自动装配环境,并且使用环境bu环境读取值也返回null。我在这里想念什么?
我的基本软件包是com.myapp,我的拦截器在名为com.myapp.restclient的软件包中。我的SpringBootApplication类是这样的:
@SpringBootApplication
public class MyApplication {
public static void main(String[] args) {
SpringApplication.run(MyApplication.class, args);
}
}
这是我的app.properties文件:
api.key=xxxx-07dd6ff4c1ef
谢谢。