我正在使用Spring MVC开发此应用程序。我应该从外部.properties文件中读取。
MVC-调度-servlet.xml中
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>classpath:Host.properties</value>
<value>file:///usr/pic1/JSONEditor/Host.properties</value>
</list>
</property>
<property name="ignoreUnresolvablePlaceholders" value="true"/>
<property name="ignoreResourceNotFound" value="true"/>
</bean>
<bean id="dataSource" class="com.example.editor.Configuration">
<property name="hostURL" value="${url}" />
</bean>
Configuration.java
package com.example.editor;
import org.springframework.beans.factory.annotation.Value;
public class Configuration {
@Value("$(url)")
private String hostURL;
public String getHostURL(){
System.out.println("URL:"+this.hostURL);
return this.hostURL;
}
public void setHostURL(String url){
this.hostURL = url;
System.out.println("URL:"+this.hostURL);
}
}
EditorController.java
package com.example.editor.controller;
import java.io.IOException;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import com.example.editor.Configuration;
@Controller
@RequestMapping("/")
public class EditorController {
private static final String start = "Editor";
@RequestMapping(value = "/", method = RequestMethod.GET)
public String start(ModelMap model) throws IOException{
Configuration confg = new Configuration();
model.addAttribute("URL", confg.getHostURL());
return start;
}
}
当我启动应用程序时,它能够读取文件并获取URL,但是一旦我在浏览器中打开它,hostURL = null。
有人可以指出错误是什么吗?
答案 0 :(得分:0)
package com.example.editor;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
@Service
public class Configuration {
@Value("$(url)")
private String hostURL;
public String getHostURL(){
System.out.println("URL:"+this.hostURL);
return this.hostURL;
}
EditorController.java
package com.example.editor.controller;
import java.io.IOException;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import com.example.editor.Configuration;
@Autowired
Configuration confg;
@Controller
@RequestMapping("/")
public class EditorController {
private static final String start = "Editor";
@RequestMapping(value = "/", method = RequestMethod.GET)
public String start(ModelMap model) throws IOException{
model.addAttribute("URL", confg.getHostURL());
return start;
}
}
public void setHostURL(String url){
this.hostURL = url;
System.out.println("URL:"+this.hostURL);
}
}
对于配置类,将其设为服务类。 在Controller中,您需要自动服务的服务类对象。 在这里,您使用new运算符创建了一个实例,它不适合您。