在平时的编程过程中,spring的普通类的注入很容易就通过set或者constructer两种方式注入成功,但是有时候一个类用到某种控件中去(比如velocity的工具类中)就需要注入一个dao,但是如果是普通类,是注入不了了,这个时候把dao设置成静态能解决,但是spring注入静态常规写法做不到的,下面介绍一种spring的静态变量注入方式:
先是java文件, 有个静态的变量
@Controller
public class DataSourceTools {
private final static Logger log= LoggerFactory.getLogger(DataSourceTools.class);
private static FinDictValService finDictValService;
public static void setFinDictValService(FinDictValService dictValService) {
finDictValService = dictValService;
}
xml的bean注入写法
<bean class="org.springframework.beans.factory.config.MethodInvokingFactoryBean"> <property name="staticMethod" value="com.DataSourceTools.setFinDictValService" /> <property name="arguments" ref="finDictValService" /> </bean>
通过以上方式,静态的变量spring加载的时候就可以注入了