春季从属性文件读取-@Value返回null

时间:2019-04-13 17:08:17

标签: spring spring-boot

我也看到了类似的问题,但是没有一个答案对我有用。我有一个春季启动项目,我试图从我的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

谢谢。

0 个答案:

没有答案