通过属性文件配置和控制大型网站

时间:2015-11-12 06:03:39

标签: java spring-mvc

我正在使用Spring MVC做一个相对较大的网站。网站中的许多地方都需要配置。例如:字符长度,允许的最大数量等。这是我现在正在做的事情。

我有一个名为conf.properties的属性文件,其中包含例如以下数据:

age.min=13

我还有一个名为Conf.java的Java类,它读取conf.properties并通过静态方法向其他类提供配置/控制数据(例如最小年龄)。例如:

static {
    bundle = ResourceBundle.getBundle("conf.properties");
}

public static getAgeMin() {
  return Integer.valueOf(bundle.getString("age.min"));
}

这是管理大型网站配置的好方法吗?还有什么其他方法?我知道将所有这些配置数据存储在数据库中可能是一个,但不确定人们是否正常使用它。

感谢您的任何意见!

2 个答案:

答案 0 :(得分:1)

资源包旨在提供这种类型的配置内容,因此它当然是可能的。它还为i18n提供了一些很好的规定,因此它可以更容易地提供不同的语言相关字符串,这在数据库表中配置可能会更不自然。

就个人而言,我更喜欢使用配置文件,因为它更容易修改和更新,因为它们只是纯文本文件,您可以轻松生成它们或使用脚本和其他工具访问它们。

答案 1 :(得分:1)

您可以将属性包含在spring bean中并将其连接到java文件中。

<bean id="properties" class="org.springframework.beans.factory.config.PropertiesFactoryBean">
    <property name="locations">
        <list>
            <value>classpath*:conf.properties</value>
        </list>
    </property>
</bean>

然后在你想要使用属性文件的java文件中,你只需使用下面的示例代码

@Controller
public class TestController {

    @Autowired
    private Properties properties;

    @RequestMapping("/test")
    public String showMain(ModelMap model) {
        Integer ageMin = properties.getProperty("age.min");
        // .. DO YOUR PROCESSING
    }
}

这就是我们为生产站点进行配置的方式。我们还使用数据库来存储一些配置。但只适用于需要经常更换的房产。对于那些可能不需要频繁更改的属性,我个人认为配置文件是最好的。