对于静态方法调用,静态变量赋值。Spring 提供了一个类:
org.springframework.beans.factory.config.MethodInvokingFactoryBean
使用方法详解:
在Spring配置文件中配置:
<bean class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
<property name="staticMethod" value="com.sojson.core.domain.DomainDistribution.setDomainInfo"/>
<property name="arguments">
<array>
<value>{"convert":"word2spell,cn2spark,pingindic,low2up,fullhalf"}</value>
<value>{"color":"cj,img,online,page,select,use,web"}</value>
</array>
</property>
</bean>
- name=“staticMethod” :固定写法,顾名思义就是静态方法。
- value=“com.sojson.core.domain.DomainDistribution.setDomainInfo” :对应的静态方法,
- com.sojson.core.domain.DomainDistribution 是类的全路径,而setDomainInfo 是静态方法名称。
- name=“arguments” :参数,而我的array 是因为我要注入的是一个数组,其实是一个 json 数组。
对应java
package com.sojson.core.domain;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Set;
public class DomainDistribution {
static String x;
//静态语句块
static{
x = "测试静态语句块。";
}
public static Map<String,Set<String>> domainMap = new LinkedHashMap<String,Set<String>>();
/**
* 静态调用方法测试
* @param domainInfo
*/
public static void setDomainInfo(String[] domainInfo) {
for (String json : domainInfo) {
System.out.println(json);
}
}
}