0

我将 spring 用于我的 java web 应用程序。网站变大了,我想设置一些配置。

我一直在研究并遇到诸如文档构建器工厂、用 java config 替换 spring xml 之类的东西。我不知道从哪里开始。

我正在考虑在 xml (WEB/newConfig.xml) 中实现配置并让它由 java bean 读取。基本上我想将我的配置值输入到 xml 中并让它由一个 java bean 加载,这样我就可以在控制器和 jstl 中使用它。

我只是在这里举一些例子。例如 xml 配置:

<property name="numberOfCars" value="3" />
<property name="webSiteName" value="New Spring Web App" />
....

我在我的java类中读到它:

class Config {

 public getNumberOfCars() {
   return numOfCars;
 } 

 public getWebSiteName() {
   return webSiteName;
 } 
}

我应该从哪里开始,我可以阅读哪些在线资料?

===============================

更新

这是我创建的。

applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
        xmlns:aop="http://www.springframework.org/schema/aop" xmlns:context="http://www.springframework.org/schema/context"
        xmlns:jee="http://www.springframework.org/schema/jee" xmlns:tx="http://www.springframework.org/schema/tx"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd   http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd   http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd   http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-3.0.xsd   http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd">

<context:property-placeholder location="/WEB-INF/your_prop_file.properties" />
<bean id="ConfigMgr" class="org.domain.class.ConfigMgr">
 <property name="username" value="${username}">
</bean>

</beans>

you_prop_file.properties

username=hello world name

配置管理器.java

public class ConfigMgr {
 private String username;

...getter

...setter
}

在我的控制器中,这是我所做的:

ConfigMgr config = new ConfigMgr();
sysout.out.println(config.getUsername());

我越来越空了,我确定我在这里遗漏了一些东西。我应该在哪里将用户名值设置为 ConfigMgr 类?

4

2 回答 2

0

您没有注入ConfigMgr您在 XML 文件中创建的bean。
您正在做的是在控制器中创建一个新对象,该对象对属性文件一无所知。
现在您可以使用@Autowired控制器内部或通过 xml 配置注入它。
google 中有很多关于基本 spring 依赖注入的示例。

于 2013-10-24T10:47:49.130 回答
0

Spring Java 配置是一个较新的功能,它允许您使用 Java 类而不是 XML 文件来配置您的 Spring 应用程序。它只是 XML 配置的替代方案。XML 方式同样功能丰富。

根据我从您的问题中可以得出的结论,您希望将 params (numberOfCars,webSiteName.. ) 的硬编码值移出您的配置文件。

如果是这样的话,你不必走那么远。

只需使用:-

<context:property-placeholder location="classpath:your_prop_file.properties" />

在您的spring xml文件中并替换参数值,例如:-

<property name="webSiteName" value="${website.name}" />

您需要在类路径中有一个 your_prop_file.properties 文件,其中包含以下内容:-

website.name=New Spring Web App
于 2013-10-16T05:13:32.783 回答