【转】Spring 静态变量注入赋值,静态方法调用,静态语句块

来源:互联网 发布:php实现提交多个订单 编辑:程序博客网 时间:2024/06/12 21:35

对于静态方法调用,静态变量赋值。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);        }    }}
原创粉丝点击