- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章浅谈关于spring profile的误解由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
背景 。
spring的profile大家都是用的溜的飞起~ 。
那么profile的组合如何使用呢???
比如我们这样使用 。
1
|
@profile
({
"prod"
,
"unit-test"
})
|
分析 。
上述的profile大家应该不会存有疑问 当profile为prod或者unit-test的时候才会生效.
但是如果我们使用非呢~如何确保在某些情况下不生效! 。
spring提供了常见的!来进行描述 。
因此如果想要在非生产环境生效只要简单的写成 。
1
|
@profile
({
"!prod"
})
|
那么如何在多个环境下不生效呢???
自作聪明的某些人【我】如下代码 。
1
|
@profile
({
"!prod"
,
"!unit-test"
})
|
那么实际情况是否如此呢???
我们看一下对应的代码 。
代码 。
profile是通过profilecondition来完成控制的 。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
class
profilecondition
implements
condition {
@override
public
boolean
matches(conditioncontext context, annotatedtypemetadata metadata) {
if
(context.getenvironment() !=
null
) {
multivaluemap<string, object> attrs = metadata.getallannotationattributes(profile.
class
.getname());
if
(attrs !=
null
) {
for
(object value : attrs.get(
"value"
)) {
if
(context.getenvironment().acceptsprofiles(((string[]) value))) {
return
true
;
}
}
return
false
;
}
}
return
true
;
}
}
|
很明显可以看到了acceptsprofiles 。
1
2
3
4
5
6
7
8
9
10
11
12
13
|
/**
* return whether one or more of the given profiles is active or, in the case of no
* explicit active profiles, whether one or more of the given profiles is included in
* the set of default profiles. if a profile begins with '!' the logic is inverted,
* i.e. the method will return true if the given profile is <em>not</em> active.
* for example, <pre class="code">env.acceptsprofiles("p1", "!p2")</pre> will
* return {@code true} if profile 'p1' is active or 'p2' is not active.
* @throws illegalargumentexception if called with zero arguments
* or if any profile is {@code null}, empty or whitespace-only
* @see #getactiveprofiles
* @see #getdefaultprofiles
*/
boolean
acceptsprofiles(string... profiles);
|
从上述可以看到应该是or的条件 。
当然代码如下 。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
@override
public
boolean
acceptsprofiles(string... profiles) {
assert
.notempty(profiles,
"must specify at least one profile"
);
for
(string profile : profiles) {
if
(stringutils.haslength(profile) && profile.charat(
0
) ==
'!'
) {
if
(!isprofileactive(profile.substring(
1
))) {
return
true
;
}
}
else
if
(isprofileactive(profile)) {
return
true
;
}
}
return
false
;
}
|
因此可以看到当是!条件的时候会判断如果当前未激活profile返回true 否则当前是正常条件的换当前profile如果激活则返回true 当上述条件都不满足才返回false 。
因此上述逻辑告诉我们其实应该是或者的逻辑。因此 。
1
|
@profile
({
"!prod"
,
"!unit-test"
})
|
!prod||!unit-test===>!(prod&&unit-test) 也就是说当prod和unit-test都生效的时候才不会注册 其他调均都会注册生效 。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我.
原文链接:https://my.oschina.net/qixiaobo025/blog/1927580 。
最后此篇关于浅谈关于spring profile的误解的文章就讲到这里了,如果你想了解更多关于浅谈关于spring profile的误解的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
在 Python 2.7 和 Python 3.6 中,我发现这有效: from cProfile import Profile; p = Profile(); p.enable() ...而这引发了
我正在尝试在 Windows 8 PRO 64 位上的 Visual Studio 2012 RTM 中为控制台程序启动性能分析 session (分析/启动性能分析)。 我收到一条弹出消息通知我 C
我在 windows 上有一个应用程序,它在单声道上运行得很好。但是,当我尝试对其进行分析时: mono --profile=log program.exe 我得到: The 'log' profil
我正在尝试使用 Django 创建注册表单。我在提交表单时收到此错误。 这就是我所做的。 models.py from django.db import models from django.cont
是否可以从 Flash Builder 导出分析结果? 我需要它们,因为我想根据方法名称进行过滤,但 Flash Builder 的内置过滤不允许这样做。 最佳答案 它隐藏在 GUI 的一个完全隐蔽、
我真的很喜欢热图,但我需要的是热图背后的数字(又名相关矩阵)。 有没有简单的方法来提取数字? 最佳答案 从文档开始追踪有点困难;具体来说 来自 report structure然后深入研究以下函数 g
我有一个 POM,它声明了我的项目常见的 Web 应用程序内容。我将它用作所有 Web 应用程序的父级。 是否可以仅在包装为 war 时激活配置文件?我已经尝试过属性方法,但这不起作用(因为它不是系统
在数据帧上运行 pandas-profiling 时,我看到它将索引分析为一个变量。注意:我的索引是唯一键(命名为UUID) 有没有办法排除引入索引上报? 我知道我可以在 pandas 中删除它,但在
在数据帧上运行 pandas-profiling 时,我看到它将索引分析为一个变量。注意:我的索引是唯一键(命名为UUID) 有没有办法排除引入索引上报? 我知道我可以在 pandas 中删除它,但在
我正在使用 Intel Vtune 来分析需要在另一台机器上进行 sudo 访问的远程应用程序。之前我已经能够在不需要 sudo 访问的那台机器上分析远程应用程序,但英特尔 Vtune 不适用于需要
我已经在我的 MVC 4 应用程序上安装了 Mini-Profiler,它运行得非常棒。我遇到的唯一问题是 UI 覆盖了我 UI 的关键部分。我可以使用 css 在页面上移动它,但理想情况下我想这样做
在使用 Chrome devtools 分析堆快照时,我似乎无法弄清楚查看分离的 DOM 树时颜色的含义。红色和黄色有什么区别? 最佳答案 有很好的解释available here . 从文章: Re
分析器中 SQL Server 跟踪的输出包含 CPU 和持续时间列(以及其他列)。这些值的单位是什么? 最佳答案 CPU 以毫秒为单位。在 sql server 2005 及更高版本中,保存到文件或
我有一个奇怪的问题,我正在使用 MiniProfiler,它很棒,在我的本地机器上没有任何问题,但它在我们的测试服务器上的表现似乎有所不同。它似乎会生成许多对 mini-profiler-resour
我想知道优先级 的application-{profile}.properties文件,如果有多个 spring.profiles.active添加。 例如: 比方说,我有这个 spring.prof
我有一个名为“isActive”的助手和一个名为“create”的模板.. 见下文 Template.create.isActive = function () { return Meteor.u
这是我面临的场景:我正在使用 MiniProfiler 来分析一些操作。但它缺少我必须使用的特定功能。有一个设置文件 MiniProfiler 可以让我做一些配置,比如分析什么考虑什么,什么不考虑,什
哇,这完全令人困惑,而且 dojo 1.8 文档似乎是围绕构建层的完整 clusterf**k。有人知道那里发生了什么吗? 在构建脚本示例配置文件中,示例 amd.profile.js 有 profi
我正在为一个内部项目使用出色的 MVC Mini Profiler,但希望它能够显示时间信息,无论您是谁。理想情况下,如果用户是站点的管理员或开发人员,我希望能够显示完整的分析信息,如果用户只是标准用
打开Android Profiler编译出现如下错误: FAILURE:构建失败并出现异常。 什么地方出了错: Execution failed for task ':app:transformCla
我是一名优秀的程序员,十分优秀!