spring - 在spring框架依赖注入中调用构造参数
问题描述
我有一个项目,其中我们有 2 个项目,如下所示:
- 脚本 - pom.xml、application-context.xml、test.properties
- 硒网络驱动程序 - pom.xml
1 通过依赖注入从 application-context.xml 调用 web 驱动构造函数和对象,如下所示:
<import resource="application-context.xml"/>
<bean id="webDriverFactory" class="...Selenium">
<constructor-arg name="proxyip" value="${proxyip} == null ? null: ${proxyip]}"/>
<constructor-arg name="proxyport" value="${proxyport} == null ? null: ${proxyport}"/>
和
@Autowired
private WebDriver webDriver;
在 1
在 2 我有以下代码:
if (!proxyip.isEmpty() && !proxyport.isEmpty()) {
proxy = create_proxy();
}
我有很多额外的属性文件,所以不想为它们定义代理 IP/代理端口的默认值和虚拟值。有没有办法在 application-context.xml 中定义默认值。我尝试关注但没有奏效。
<constructor-arg name="proxyip" value="${proxyip} == null ? null: ${proxyip]}"/>
<constructor-arg name="proxyport" value="${proxyport} == null ? null: ${proxyport}"/>
测试属性:
proxyip=ip
proxyport=port no
, 与
<constructor-arg name="proxyIP" value="${proxyip}"/>
<constructor-arg name="proxyPort" value="${proxyport}"/>
但是test.properties:
#proxyip=ip
#proxyPort=port no doesn't work with
在 application-context.xml 中
<constructor-arg name="proxyip" value="${proxyip} == null ? null: ${proxyip]}"/>
<constructor-arg name="proxyport" value="${proxyport} == null ? null: ${proxyport}"/>
解决方案
您可以在对配置属性的引用中定义默认值,如下所示:
<constructor-arg name="proxyIP" value="${proxyip:127.0.0.1}"/>
<constructor-arg name="proxyPort" value="${proxyport:1234}"/>
您可以将默认值设置为空值,然后您的代码可以检查:
<constructor-arg name="proxyIP" value="${proxyip:}"/>
<constructor-arg name="proxyPort" value="${proxyport:}"/>
我不认为你可以有一个null
值作为默认值,所以我希望一个空值就足够了。应该给出你显示的代码。事实上,我认为尝试调用isEmpty()
不适用于null
值。
推荐阅读
- yocto - 无法在 SDK 中链接文件系统库
- ios - 如何在 Swift 中检查 CoreData 的大小
- function - 在 react native 中显示函数的值
- javascript - 如何将子查询添加到带有轴的查询结果中
- xslt - 如何使用 XSLT 向 XML 有效负载添加不同的名称空间
- javascript - 当 API 在控制台中填充但无法在前端填充时,可能是什么原因?
- python - 使用 GDC 客户端工具包下载 TCGA 数据时出错
- awk - 从字段中删除特定单词
- doctrine-orm - 如何使用 Doctrine 2 DQL ON 覆盖默认的 JOIN 条件
- php - Woocommerce 设置客户提供的注释也返回 html 标签