SpringMVC多环境配置

本文涉及的产品
云数据库 Tair(兼容Redis),内存型 2GB
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介: 版权声明:本文首发 http://asing1elife.com ,转载请注明出处。 https://blog.csdn.net/asing1elife/article/details/82696838 ...
版权声明:本文首发 http://asing1elife.com ,转载请注明出处。 https://blog.csdn.net/asing1elife/article/details/82696838

SpringMVC多环境配置

SpringMVC 可以使用 Spring 本身提供的 profile 特性对多环境配置文件进行统一集成,自动切换

更多精彩

存在的必要

  1. 日常开发中,一般都存在多个环境,开发、测试、生产
  2. 上述环境对应的数据库及配置文件都会存在不同,所以为项目集成多环境配置很有必要

实现方式

  1. 集成方式有多种,网上介绍的大多是使用 <beans profile="dev"> 去区分不同的 *.properties 文件
  2. 还可以使用 @Profile 进行不同环境代码加载
  3. 本文介绍的是使用 <beans profile="dev"> 直接在同一个 xml 文件中区分不同环境需要的不同配置项

XML配置

  1. 注意如果使用了多环境的配置的 xml 文件中存在其他公有属性,这些属性需要放在最前面,否则会报错
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:p="http://www.springframework.org/schema/p"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
            http://www.springframework.org/schema/beans/spring-beans-4.0.xsd">
  <description>spring-data-redis-cluster</description>

  <bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig">
    <property name="maxIdle" value="${redis.pool.maxIdle}"/>
    <property name="maxTotal" value="${redis.pool.maxActive}"/>
    <property name="maxWaitMillis" value="${redis.pool.maxWait}"/>
    <property name="testOnBorrow" value="${redis.pool.testOnBorrow}"/>
  </bean>

  ...

  <beans profile="dev">
    <bean id="jedisPool" class="redis.clients.jedis.JedisPool">
      <constructor-arg index="0" ref="jedisPoolConfig"/>
      <constructor-arg index="1" value="${redis.server.url}"/>
      <constructor-arg index="2" value="${redis.server.port}" type="int"/>
      <constructor-arg index="3" value="${redis.server.timeout}" type="int"/>
      <constructor-arg index="4" value="${redis.server.password}"/>
    </bean>

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

  <beans profile="prod">
    <bean id="redisClusterConfiguration" class="org.springframework.data.redis.connection.RedisClusterConfiguration">
      ...
    </bean>

    <bean id="jedisConnectionFactory" class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory">
      <constructor-arg ref="redisClusterConfiguration"/>
      <constructor-arg ref="jedisPoolConfig"/>
    </bean>
  </beans>
</beans>

开发环境启动方式

  1. IDEA 需要在启动时添加脚本 -Dspring.profiles.active="dev" 以确保使用开发环境启动

生产环境启动方式

  1. Linux 环境需要前往 Tomcat 的 /bin 目录下,需要 ./catalina.sh 中的 JAVA_OPTS 内容如下
  2. JAVA_OPTS="$JAVA_OPTS -Dspring.profiles.active=prod"
相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore &nbsp; &nbsp; ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库&nbsp;ECS 实例和一台目标数据库&nbsp;RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&amp;RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
相关文章
|
前端开发 Java 数据格式
Java Web之基于注解的Spring MVC环境配置
1、在web.xml中配置前端控制器,拦截请求,然后配置加载SpringMVC的配置文件(处理器映射器、处理器适配器、视图解析器等) springmvc org.
1034 0
|
8月前
|
设计模式 前端开发 JavaScript
Spring MVC(一)【什么是Spring MVC】
Spring MVC(一)【什么是Spring MVC】
|
7月前
|
设计模式 前端开发 Java
【Spring MVC】快速学习使用Spring MVC的注解及三层架构
【Spring MVC】快速学习使用Spring MVC的注解及三层架构
140 1
|
7月前
|
前端开发 Java 应用服务中间件
Spring框架第六章(SpringMVC概括及基于JDK21与Tomcat10创建SpringMVC程序)
Spring框架第六章(SpringMVC概括及基于JDK21与Tomcat10创建SpringMVC程序)
|
8月前
|
前端开发 Java 关系型数据库
基于ssm框架旅游网旅游社交平台前后台管理系统(spring+springmvc+mybatis+maven+tomcat+html)
基于ssm框架旅游网旅游社交平台前后台管理系统(spring+springmvc+mybatis+maven+tomcat+html)
102 0
|
7月前
|
XML Java 数据格式
SpringMVC的XML配置解析-spring18
SpringMVC的XML配置解析-spring18
|
7月前
|
应用服务中间件
从代码角度戳一下springMVC的运行过程-spring16
从代码角度戳一下springMVC的运行过程-spring16
|
前端开发 Java Go
Spring MVC 和 Spring Boot 的区别
Spring MVC 和 Spring Boot 的区别
242 0
|
8月前
|
移动开发 Java 测试技术
Spring MVC+Spring+Mybatis实现支付宝支付功能(附完整代码)
Spring MVC+Spring+Mybatis实现支付宝支付功能(附完整代码)
197 1