Java 无法从属性文件中获取整数值
我想从application.properties文件中定义的键中读取整数值。这是我的属性文件 spring.rabbitmq.port=31111 代码如下:Java 无法从属性文件中获取整数值,java,spring,spring-boot,rabbitmq,Java,Spring,Spring Boot,Rabbitmq,我想从application.properties文件中定义的键中读取整数值。这是我的属性文件 spring.rabbitmq.port=31111 代码如下: public Object getPortProperty() { Properties properties = new Properties(); try { File file = ResourceUtils.getFile("classpath:application.properties");
public Object getPortProperty() {
Properties properties = new Properties();
try {
File file = ResourceUtils.getFile("classpath:application.properties");
InputStream in = new FileInputStream(file);
properties.load(in);
} catch (IOException e) {
}
return (Integer) properties.get("spring.rabbitmq.port");
}
@Autowired
public UnitAmqpRestController(RabbitTemplate rabbitTemplate) throws IOException, TimeoutException {
this.rabbitTemplate = rabbitTemplate;
rabbitTemplate.setReplyTimeout(15_000L);
ConnectionFactory factory = new ConnectionFactory();
factory.setHost(getHostProperty());
factory.setPort((Integer) getPortProperty());
connection = factory.newConnection();
channel = connection.createChannel();
}
获取以下错误:
org.springframework.beans.factory.BeanCreationException:错误
正在创建URL中定义了名称为“unitAmqpRestController”的bean
[jar:file:/tmp/unitamqpservice-0.0.1-SNAPSHOT.jar!/BOOT-INF/classes!/com/abc/ci/unitamqpservice/UnitAmqpRestController.class]:
通过构造函数实例化Bean失败;嵌套异常是
org.springframework.beans.BeanInstantiationException:未能
实例化
[com.abc.ci.unitamqpservice.UnitAmqpRestController$$EnhancerBySpringCGLIB$$e7ff3f42]:
构造函数抛出异常;嵌套异常是
java.lang.NullPointerException
位于org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:279)
~[spring-beans-4.3.14.RELEASE.jar!/:4.3.14.RELEASE]
位于org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1193)
~[spring-beans-4.3.14.RELEASE.jar!/:4.3.14.RELEASE]
位于org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1095)
~[spring-beans-4.3.14.RELEASE.jar!/:4.3.14.RELEASE]
位于org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:513)
~[spring-beans-4.3.14.RELEASE.jar!/:4.3.14.RELEASE]
位于org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483)
~[spring-beans-4.3.14.RELEASE.jar!/:4.3.14.RELEASE]
位于org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
~[spring-beans-4.3.14.RELEASE.jar!/:4.3.14.RELEASE]
位于org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
~[spring-beans-4.3.14.RELEASE.jar!/:4.3.14.RELEASE]
位于org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
~[spring-beans-4.3.14.RELEASE.jar!/:4.3.14.RELEASE]
位于org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
~[spring-beans-4.3.14.RELEASE.jar!/:4.3.14.RELEASE]
位于org.springframework.beans.factory.support.DefaultListableBeanFactory.PreInstanceSingleton(DefaultListableBeanFactory.java:761)
~[spring-beans-4.3.14.RELEASE.jar!/:4.3.14.RELEASE]
位于org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:867)
~[spring-context-4.3.14.RELEASE.jar!/:4.3.14.RELEASE]
位于org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:543)
~[spring-context-4.3.14.RELEASE.jar!/:4.3.14.RELEASE]
位于org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:122)
~[spring-boot-1.5.10.RELEASE.jar!/:1.5.10.RELEASE]
位于org.springframework.boot.SpringApplication.refresh(SpringApplication.java:693)
[spring-boot-1.5.10.RELEASE.jar!/:1.5.10.RELEASE]
位于org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:360)
[spring-boot-1.5.10.RELEASE.jar!/:1.5.10.RELEASE]
位于org.springframework.boot.SpringApplication.run(SpringApplication.java:303)
[spring-boot-1.5.10.RELEASE.jar!/:1.5.10.RELEASE]
位于org.springframework.boot.SpringApplication.run(SpringApplication.java:1118)
[spring-boot-1.5.10.RELEASE.jar!/:1.5.10.RELEASE]
位于org.springframework.boot.SpringApplication.run(SpringApplication.java:1107)
[spring-boot-1.5.10.RELEASE.jar!/:1.5.10.RELEASE]
位于com.abc.ci.unitamqpservice.UnitamqpserviceApplication.main(UnitamqpserviceApplication.java:10)
[类别!/:0.0.1-快照]
在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)~[na:1.8.0_212]
位于sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
~[na:1.8.0_212]
在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)中
~[na:1.8.0_212]
在java.lang.reflect.Method.invoke(Method.java:498)~[na:1.8.0_212]
位于org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:48)
[unitamqpservice-0.0.1-SNAPSHOT.jar:0.0.1-SNAPSHOT]
位于org.springframework.boot.loader.Launcher.launch(Launcher.java:87)
[unitamqpservice-0.0.1-SNAPSHOT.jar:0.0.1-SNAPSHOT]
位于org.springframework.boot.loader.Launcher.launch(Launcher.java:50)
[unitamqpservice-0.0.1-SNAPSHOT.jar:0.0.1-SNAPSHOT]
位于org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:51)
[unitamqpservice-0.0.1-SNAPSHOT.jar:0.0.1-SNAPSHOT]由以下原因引起:
org.springframework.beans.BeanInstantiationException:未能
实例化
[com..ci.unitamqpservice.UnitAmqpRestController$$EnhancerBySpringCGLIB$$e7ff3f42]:
构造函数抛出异常;嵌套异常是
java.lang.NullPointerException
位于org.springframework.beans.BeanUtils.InstanceClass(BeanUtils.java:154)
~[spring-beans-4.3.14.RELEASE.jar!/:4.3.14.RELEASE]
位于org.springframework.beans.factory.support.SimpleInstallationStrategy.instantiate(SimpleInstallationStrategy.java:122)
~[spring-beans-4.3.14.RELEASE.jar!/:4.3.14.RELEASE]
位于org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:271)
~[spring-beans-4.3.14.RELEASE.jar!/:4.3.14.RELEASE]
... 26由于以下原因而忽略的公共帧:java.lang.NullPointerException:null
在com.abc.ci.unitamqpse
factory.setPort((Integer) getPortProperty());
@Value("${spring.rabbitmq.port}")
private int mqPort;
@Value("${spring.rabbitmq.host}")
private String mqHost;
@Autowired
public UnitAmqpRestController(RabbitTemplate rabbitTemplate) throws IOException, TimeoutException {
this.rabbitTemplate = rabbitTemplate;
rabbitTemplate.setReplyTimeout(15_000L);
ConnectionFactory factory = new ConnectionFactory();
factory.setHost(mqHost);
factory.setPort(mqPort);
connection = factory.newConnection();
channel = connection.createChannel();
}
@Value("${spring.rabbitmq.port=31111}")
private int port;
private int getIntegerProperty(final String key, final int defaultValue) {
final Object object = properties.get("spring.rabbitmq.port")
if (object == null || "".equals(object.toString())) {
return defaultValue;
} else {
return Integer.parseInt(object );
}
}