我需要创建一个将类实例作为构造函数参数的 bean。此类实例的有用值由该类创建为静态字段。
具体来说,我正在尝试从 HtmlUnit 创建 WebClient bean。http://htmlunit.sourceforge.net/apidocs/com/gargoylesoftware/htmlunit/WebClient.html
您可以看到 WebClient 采用无参数构造函数(不想要),以及采用 BrowserVersion 实例的构造函数。 http://htmlunit.sourceforge.net/apidocs/com/gargoylesoftware/htmlunit/BrowserVersion.html
BrowserVersion 将有用的实例定义为静态字段,例如:CHROME、FIREFOX_24、INTERNET_EXPLORER_11。
我需要在 Aries Blueprint bean 中引用其中一个 BrowserVersion 实例。
蓝图设置如下所示:
<bean id="webClient" class="com.gargoylesoftware.htmlunit.WebClient">
<argument>??</argument>
</bean>
我努力了:
<argument><bean class="com.gargoylesoftware.htmlunit.BrowserVersion.FIREFOX_24" /></argument>
<argument value="com.gargoylesoftware.htmlunit.BrowserVersion.FIREFOX_24" />
我还尝试在蓝图配置中创建一个 BrowserVersion bean,但我似乎也无法使其工作。
<bean id="webClient" class="com.gargoylesoftware.htmlunit.WebClient">
<argument>
<bean class="com.gargoylesoftware.htmlunit.BrowserVersion">
<argument index="0" type="java.lang.String" value="Netscape" />
<argument index="1" type="java.lang.String" value="5.0 (Windows)" />
<argument index="2" type="java.lang.String" value="Mozilla/5.0 (Windows NT 6.1; rv:24.0) Gecko/20100101 Firefox/24.0" />
<argument index="3" type="java.lang.Float" value="24.0" />
</bean>
</argument>
</bean>
这应该与BrowserVersion 上的公共构造函数匹配。
任何想法我在这两个方面做错了什么?