如何解决如何使用Spring在抽象类中注入静态方法的局部变量?
如果有可能可以让你把user
和proxyI
成静态属性可以通过利用注入他们的MethodInvokingFactoryBean。您将必须提供一个静态的setter方法。让您对配置有所了解:
<bean name="staticHubInitializer" class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
<property name="staticMethod" value="your.AbstractUtilClass.setStaticDependencies"/>
<property name="arguments">
<list>
<ref bean="user"/>
<ref bean="proxyI"/>
</list>
</property>
</bean>
解决方法
我是Spring的新手,遇到了这个问题。我尝试在该方法上使用@Autowired,但没有成功,在变量上,我从Eclipse中收到错误消息“该位置不允许使用@Autowired注解”。我在xml中创建了所需的bean。
下面是代码,此方法在抽象类内。
private static HttpResponse rawExecuteReqeust(HttpUriRequest request) throws ClientProtocolException,IOException {
HttpClient client = new DefaultHttpClient();
ProxyInterface proxyI; // needs to be Injected
User user; // needs to be Injected
System.out.println("About to execute " + request.getMethod() + " request on "
+ request.getURI());
if (proxyI.getProxyHost() != null && proxyI.getProxyPort() != 0) {
if (user.getProxyUser() != null && user.getProxyPassword() != null) {
((AbstractHttpClient) client).getCredentialsProvider().setCredentials(
new AuthScope(proxyI.getProxyHost(),proxyI.getProxyPort()),new UsernamePasswordCredentials(user.getProxyUser(),user.getProxyPassword()));
}
HttpHost proxy = new HttpHost(proxyI.getProxyHost(),proxyI.getProxyPort(),"http");
client.getParams().setParameter(ConnRoutePNames.DEFAULT_PROXY,proxy);
}
HttpResponse response = client.execute(request);
return response;
}
(ps我是stackOverflow的新手,希望我正确格式化了问题:))