Java 为什么不能导入属性文件
属性文件是Java 为什么不能导入属性文件,java,spring,spring-mvc,properties,Java,Spring,Spring Mvc,Properties,属性文件是src\main\resources\exam binary.properties。exam-binary.properties中的内容是: user.post.url=http://localhost:9000/users/newUser 导入类如下所示,但是,该值似乎无法导入 import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotatio
src\main\resources\exam binary.properties
。exam-binary.properties中的内容是:
user.post.url=http://localhost:9000/users/newUser
导入类如下所示,但是,该值似乎无法导入
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;
import org.springframework.web.client.RestTemplate;
import com.ma2oo.model.domain.User;
@Configuration
@PropertySource("classpath:exam-binary.properties")
public class RegisterUser {
private static final RestTemplate restTemplate = new RestTemplate();
@Value("${user.post.url}")
private String registerUrl;
public User Register(final User user) {
System.out.println("url print: " + registerUrl);
return restTemplate.postForObject(registerUrl, user, User.class);
}
}
我有@EnableAutoConfiguration
,它将覆盖所有类。调用RegisterUser的方法是:
@RequestMapping(value = {"/signUp"}, method = RequestMethod.POST)
public ModelAndView signUp(@ModelAttribute("user") User user) {
new RegisterUser().Register(user);
return new ModelAndView("quiz_start");
}
标准输出为:
url print: null
有人能帮忙解释一下为什么@PropertySource
不起作用吗?
提前感谢。根本原因是您使用的
RegisterUser
实例不是Spring管理的bean。相反,是你自己创造的
new RegisterUser() // spring has no knowledge of it
为什么这是a类
配置
类?你似乎把它当作一种服务。将属性配置移动到适当的@configuration
类,声明类型为RegisterUser
的bean,并在@RequestMapping
注释方法中使用该bean。您如何使用该RegisterUser
类?使用likenew RegisterUser()。Register(user)
,我还有另一个注释@EnableAutoConfiguration
,它将涵盖所有这些类,但不太确定它是否正确。请将其添加到您的问题中。基本上,您是自己创建实例的。斯普林绝对不参与。向我们展示您正在尝试做什么,以便我们能够更好地帮助您。我认为@EnableAutoConfiguration
将使spring启用。是吗?谢谢你,伙计,我按照你说的做了改变,而且很有效。谢谢。