从spring mvc中的xml文件中读取配置

时间:2015-07-16 10:01:00

标签: java spring spring-mvc web.xml

我正在使用spring mvc 4 REST API开发Web应用程序,其中我有web.xml文件和spring-servlet.xml文件。

我在我的代码之间使用主机/ IP和端口号,而不是我应该在xml文件中配置并在控制器中读取它。

这不应该超载我的应用程序。它不应该破坏MVC结构/政策。

1 个答案:

答案 0 :(得分:2)

其中一个解决方案是将配置放在属性文件中,然后由spring xml文件采用。以下是一个例子:

###Redis Settings###
redis.pool.maxActive=1024
redis.pool.maxIdle=200
redis.pool.maxWait=1000
redis.pool.testOnBorrow=true 
redis.ip=redis-server
redis.port=6379

然后:

<!-- Configuration for Properties -->
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    <property name="locations">
        <list>
            <value>classpath:/config/redis.properties</value>
        </list>
    </property>
</bean>

<!-- Configuration for Redis Client -->
<bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig">
    <property name="maxActive" value="${redis.pool.maxActive}" />
    <property name="maxIdle" value="${redis.pool.maxIdle}" />
    <property name="maxWait" value="${redis.pool.maxWait}" />
    <property name="testOnBorrow" value="${redis.pool.testOnBorrow}" />
</bean>

<bean id="jedisConnectionFactory" class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory">
    <property name="hostName" value="${redis.ip}" />
    <property name="port" value="${redis.port}" />
    <property name="poolConfig" ref="jedisPoolConfig" />
</bean>

<bean class="org.springframework.data.redis.core.RedisTemplate" p:connection-factory-ref="jedisConnectionFactory">
</bean>