Spring注入静态变量 博客分类: javaweb工程
程序员文章站
2024-03-15 10:17:53
...
本文写了一个例子,用来实现Spring注入静态变量。静态变量无法直接注入的原因,是static变量的初始化在类加载器加载的时候进行,它早于Web引擎启动的时间。一种解决方案是在执行期通过变量注入的形式进行注入。
package com.my.util; import javax.annotation.Resource; import org.springframework.stereotype.Component; import com.my.dao.ICacheService; /** * Cache工具类 * @author aeolus * */ @Component public class CacheUtil { //需要被注入的静态变量 private static ICacheService SERVICE; /** * 这种方法可以设置静态变量,类似于依赖注入 * @param cacheService */ @Resource(name = "cacheService") private void setCacheService(ICacheService cacheService) { CacheUtil.SERVICE = cacheService; } public static void setValue(String key,Object value){ SERVICE.setValue(key, value); } public static Object getValue(String key) { return SERVICE.getObject(key); } }