Java 在SpringMVC中访问应用程序属性
Spring MVC的新功能 我想在一个.properties文件中存储两个属性(uploadFolder=..,downloadFolder=..),然后 在HomeController类中访问它(由MVC模板自动创建) 你能告诉我怎么做吗 1) 使用上述内容创建了app.properties文件,并将其放置在/src/main/resources下。这是正确的还是应该放在/webapp/resources下 2) 按照以下方式在servlet-context.xml中放置bean。这是正确的吗Java 在SpringMVC中访问应用程序属性,java,spring,spring-mvc,Java,Spring,Spring Mvc,Spring MVC的新功能 我想在一个.properties文件中存储两个属性(uploadFolder=..,downloadFolder=..),然后 在HomeController类中访问它(由MVC模板自动创建) 你能告诉我怎么做吗 1) 使用上述内容创建了app.properties文件,并将其放置在/src/main/resources下。这是正确的还是应该放在/webapp/resources下 2) 按照以下方式在servlet-context.xml中放置bean。这是正确的
<beans:bean id="messageSource"
class="org.springframework.context.support.ResourceBundleMessageSource">
<beans:property name="basename" value="app" />
</beans:bean>
3) 现在我如何在Java控制器中访问它
4) 如何在JSP中访问这些文件
我说不出我会多么感谢你。有几种不同的方法。我做以下几件事。应用程序内上下文:
<util:properties id="myProps" location="classpath:app.properties" />
我通常将属性文件放在src/main/resources中。只要他们在课堂上,你就很好。然后,在控制器中,可以使用以下内容注释字段/方法:
@Controller
public class MyController {
@Value("#{myProps['uploadFolder']}")
private String uploadFolder
@Value("#{myProps['downloadFolder']}")
private String downloadFolder
@RequestMapping("myPage")
public String loadPage(ModelMap m) {
m.addAttribute("uploadFolder", uploadFolder);
m.addAttribute("downloadFolder", downloadFolder);
return "myPage";
}
public void setUploadFolder(String uploadFolder) {
this.uploadFolder = uploadFolder;
}
public void setDownloadFolder(String downloadFolder) {
this.downloadFolder = downloadFolder;
}
}
然后,在JSP中:
Download folder: ${downloadFolder} <br/>
Upload folder: ${uploadFolder}
下载文件夹:${downloadFolder}
上载文件夹:${uploadFolder}
嗯。如果您有任何问题,请告诉我。1)更好的方法是使用src/main/resources
2) 是的,但是这条消息有不同的用途
(三)
从src/main/resources
中的属性文件生成bean的一种方法:
<bean id="foldersConfig" class="org.springframework.beans.factory.config.PropertiesFactoryBean">
<property name="location" >
<value>/WEB-INF/classes/folders.properties</value>
</property>
</bean>
4) 如果将属性放在视图模型中,则可以访问,但这不是一个好的解决方案。在控制器(路径)中获取所需的内容并将其放入结果中。我推断该文件应该位于src/main/resources下,应该称为folder.properties,并且上面的bean规范应该位于servlet-context.xml中。你能演示一下如何注入引用吗?这是我在写这篇文章之前就缺少的关键部分。想知道如何在服务类中获取该属性吗?你能这样做吗?为一个外部locaction重放属性文件的位置?
<bean id="foldersConfig" class="org.springframework.beans.factory.config.PropertiesFactoryBean">
<property name="location" >
<value>/WEB-INF/classes/folders.properties</value>
</property>
</bean>
<bean id="myController" class="my.project.package.controller.MyController">
...
<property name="foldersConfig" ref="foldersConfig" />
</bean>
public class MyController extends ... {
private Properties foldersConfig;
public void setFoldersConfig(Properties config) {
this.foldersConfig = config;
}
}