-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathspring-env-config-2018-08-30-1827-ch.html
More file actions
156 lines (142 loc) · 7.72 KB
/
spring-env-config-2018-08-30-1827-ch.html
File metadata and controls
156 lines (142 loc) · 7.72 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
<!DOCTYPE html>
<html lang="en-US">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="author" content="kevin.xi" />
<meta name="copyright" content="kevin.xi" />
<meta name="keywords" content="java, spring, config, java, " />
<title>Spring使用环境变量控制配置文件加载 · 寒玉 Blog
</title>
<!-- <link href="http://cdn-images.mailchimp.com/embedcode/slim-081711.css" rel="stylesheet" type="text/css"> -->
<link href="//netdna.bootstrapcdn.com/twitter-bootstrap/2.3.1/css/bootstrap-combined.min.css" rel="stylesheet">
<link rel="stylesheet" type="text/css" href="/theme/css/style.css" media="screen">
<link rel="stylesheet" type="text/css" href="/theme/css/solarizedlight.css" media="screen">
<link rel="shortcut icon" href="/theme/images/favicon.ico" type="image/x-icon" />
<link rel="apple-touch-icon" href="/theme/images/apple-touch-icon.png" />
<link rel="apple-touch-icon" sizes="57x57" href="/theme/images/apple-touch-icon-57x57.png" />
<link rel="apple-touch-icon" sizes="72x72" href="/theme/images/apple-touch-icon-72x72.png" />
<link rel="apple-touch-icon" sizes="114x114" href="/theme/images/apple-touch-icon-114x114.png" />
<link rel="apple-touch-icon" sizes="144x144" href="/theme/images/apple-touch-icon-144x144.png" />
<link rel="icon" href="/theme/images/apple-touch-icon-144x144.png" />
</head>
<body>
<div id="content-sans-footer">
<div class="navbar navbar-static-top">
<div class="navbar-inner">
<div class="container">
<a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</a>
<a class="brand" href="/"><span class=site-name>寒玉 Blog</span></a>
<div class="nav-collapse collapse">
<ul class="nav pull-right top-menu">
<li ><a href="">Home</a></li>
<li ><a href="/pages/books-date-2017-12-05-1130-ch.html">Books</a></li>
<li ><a href="/pages/about-date-2015-05-10-1010-ch.html">About Me</a></li>
<li ><a href="/categories.html">Categories</a></li>
<li ><a href="/tags.html">Tags</a></li>
<li ><a href="/archives.html">Archives</a></li>
<li><form class="navbar-search" action="/search.html" onsubmit="return validateForm(this.elements['q'].value);"> <input type="text" class="search-query" placeholder="Search" name="q" id="tipue_search_input"></form></li>
</ul>
</div>
</div>
</div>
</div>
<div class="container-fluid">
<div class="row-fluid">
<div class="span1"></div>
<div class="span10">
<article>
<div class="row-fluid">
<header class="page_header span10 offset2">
<h1><a href="/spring-env-config-2018-08-30-1827-ch.html"> Spring使用环境变量控制配置文件加载 </a></h1>
</header>
</div>
<div class="row-fluid">
<div class="span8 offset2 article-content">
<hr>
<h1>Spring环境变量的配置</h1>
<h2>环境变量</h2>
<p>项目中需要用到很多配置文件,不同环境的配置文件是不一样的,因此如果只用一个配置文件,势必会造成配置文件混乱,这里提供一种利用环境变量控制配置文件加载的方法.如果是linux环境,则修改tomcat的文件即可,具体为:../{tomcat_path}/bin/catalina.sh,找到<code>JAVA_OPTS=$JAVA_OPTS</code>,加上参数即可,例如:<code>JAVA_OPTS="$JAVA_OPTS -Dconfig_env=test</code>。</p>
<h2>系统配置文件</h2>
<p>假设我们的开发环境分为dev、uat和生产环境,则我们可以在系统中设置三个配置文件:</p>
<p><code>config_dev.properties</code>、<code>config_test.properties</code>、<code>config_prod.properties</code>。</p>
<h2>Spring加载</h2>
<p>Spring配置文件在加载时,设置“固定名+变量名”的方式进行加载,如下:</p>
<div class="highlight"><pre><span></span><span class="c"><!-- 读取配置文件 --></span>
<span class="nt"><context:property-placeholder</span> <span class="na">location=</span><span class="s">"classpath:config_${config_env}.properties"</span> <span class="na">ignore-unresolvable=</span><span class="s">"true"</span> <span class="nt">/></span>
</pre></div>
<p>这里的config_${config_env}.properties在不同的环境中就能加载不同的配置文件了。</p>
<aside>
<hr/>
<nav>
<ul class="articles_timeline">
<li class="previous_article">« <a href="/risk-controller-2018-08-24-1550-ch.html" title="Previous: 基于Storm、Esper CEP及Spark构建异常交易行为风险监控系统">基于Storm、Esper CEP及Spark构建异常交易行为风险监控系统</a></li>
<li class="next_article"><a href="/vs-code-2019-03-22-1829-ch.html" title="Next: vs-code配置优化">vs-code配置优化</a> »</li>
</ul>
</nav>
</aside>
</div>
<section>
<div class="span2" style="float:right;font-size:0.9em;">
<h4>Published</h4>
<time pubdate="pubdate" datetime="2018-08-30T18:27:53+08:00"> 8 30, 2018</time>
<h4>Last Updated</h4>
<div class="last_updated">2018-08-30 18:27:53+08:00</div>
<h4>Category</h4>
<a class="category-link" href="/categories.html#java-ref">java</a>
<h4>Tags</h4>
<ul class="list-of-tags tags-in-article">
<li><a href="/tags.html#config-ref">config
<span>1</span>
</a></li>
<li><a href="/tags.html#java-ref">java
<span>15</span>
</a></li>
<li><a href="/tags.html#spring-ref">spring
<span>2</span>
</a></li>
</ul>
</div>
</section>
</div>
<div id="gitalk-container"></div>
</article>
<link rel="stylesheet" href="https://unpkg.com/gitalk/dist/gitalk.css">
<script src="https://unpkg.com/gitalk/dist/gitalk.min.js"></script>
<script>
var gitalk = new Gitalk({
clientID: '55daf540951794dd3faf',
clientSecret: 'd6eaad9fa6d9e7ff2647ef8b6e21327da0cc7cda',
repo: 'blog-comment',
owner: 'xixuebin',
admin: ['xixuebin'],
id: location.pathname, // Ensure uniqueness and length less than 50
distractionFreeMode: false // Facebook-like distraction free mode
})
gitalk.render('gitalk-container')
</script>
</div>
<div class="span1"></div>
</div>
</div>
</div>
<footer>
<div id="footer">
<ul class="footer-content">
<li class="elegant-power">Powered by <a href="http://getpelican.com/" title="Pelican Home Page">Pelican</a>. Theme: <a href="http://oncrashreboot.com/pelican-elegant" title="Theme Elegant Home Page">Elegant</a> by <a href="http://oncrashreboot.com" title="Talha Mansoor Home Page">Talha Mansoor</a></li>
</ul>
</div>
</footer> <script src="https://code.jquery.com/jquery.min.js"></script>
<script src="//netdna.bootstrapcdn.com/twitter-bootstrap/2.3.1/js/bootstrap.min.js"></script>
<script>
function validateForm(query)
{
return (query.length > 0);
}
</script>
</body>
</html>