Spring Profile批注允许您选择配置文件。但是,如果您阅读文档,它仅允许您使用OR操作选择多个配置文件。如果指定@Profile(“
A”,“ B”),则在配置文件A或配置文件B处于活动状态时,您的bean都将启动。
我们的用例有所不同,我们要支持多种配置的TEST和PROD版本。因此,有时我们只想在概要文件TEST和CONFIG1都处于活动状态时才自动装配bean。
Spring有什么办法吗?最简单的方法是什么?
因为Spring没有开箱即用的AND功能。我建议以下策略:
当前@Profile
注释具有条件注释@Conditional(ProfileCondition.class)
。在ProfileCondition.class
其中循环访问概要文件,并检查概要文件是否处于活动状态。同样,您可以创建自己的条件实现并限制注册Bean。例如
public class MyProfileCondition implements Condition {
@Override
public boolean matches(final ConditionContext context,
final AnnotatedTypeMetadata metadata) {
if (context.getEnvironment() != null) {
final MultiValueMap<String, Object> attrs = metadata.getAllAnnotationAttributes(Profile.class.getName());
if (attrs != null) {
for (final Object value : attrs.get("value")) {
final String activeProfiles = context.getEnvironment().getProperty("spring.profiles.active");
for (final String profile : (String[]) value) {
if (!activeProfiles.contains(profile)) {
return false;
}
}
}
return true;
}
}
return true;
}
}
在您的课程中:
@Component
@Profile("dev")
@Conditional(value = { MyProfileCondition.class })
public class DevDatasourceConfig
注意:我没有检查所有的极端情况(例如null,长度检查等)。但是,这个方向可能会有所帮助。
个人资料 展示、管理个人的基本资料 点击编辑按钮,进入编辑模式,输入新的用户信息,点击保存,完成资料修改。
问题内容: 我正在尝试在Web应用程序中提供静态资源,并且尝试了: 但是在Spring 5中不推荐使用WebMvcConfigurerAdapter。现在如何访问静态资源? 问题答案: 春季5-静态资源 从文档中:
问题内容: 在将其他字段(例如位置,性别,雇主等)添加到用户个人资料时,是否应该在其中添加其他列并将其保存在其中?还是应该创建一个新表来保存用户个人资料信息? 另外,当用户上传个人资料图片时,是否应该将其保存在同一张表中?(请注意,这不是生产服务器,我只是在本地运行服务器上执行此操作以弄清楚问题)。谢谢 问题答案: 你必须为用户个人资料建立模型: 然后在中配置
我正在尝试让Selenium webdriver(控制Firefox)更新其登录的Facebook帐户的个人资料图片。我使用了一个典型的建议,即查找文件输入并发送文件路径的密钥,下面是我得到的: 无论如何,我得到的错误是: 回溯(最后一次调用):文件“C:/Users/maste/PycharmProjects/accountGenerator/accountGenerator.py”,第136行
问题内容: 我正在使用来存储一些其他的每用户信息AUTH_PROFILE_MODULE。 我们可以使用Django模板访问用户,但是由于只能通过函数访问配置文件,因此如何访问配置文件中的字段? 确实需要每次将配置文件显式传递到模板中吗? 问题答案: 使用。Django的模板语言会自动调用可调用的东西-在这种情况下为法。
问题内容: 你好,我是python和django的新手,我需要一个获取当前用户配置文件的视图,我知道我应该使用User的get_profile,但我不知道如何使用它。我读了django文件,但并没有帮助我。这是我从doc中找到的: 问题答案: Django的文档说明了一切,尤其是存储有关用户的其他信息的部分。首先,您需要在字段中的某个位置定义一个模型,以获取用户的其他信息: models.py 然