[转]spring 注入静态变量

原文: http://www.cnblogs.com/xing901022/p/4168124.html

今天碰到一个问题,我的一个工具类提供了几种静态方法,静态方法需要另外一个类的实例提供处理,因此就写出了这样的代码:

 1 Class Util{
 2   private static XXX xxx;
 3   xxx = BeanUtil.getBean("xxx");
 4   public static void method1(){
 5      xxx.func1();
 6   }
 7   public static void method2(){
 8      xxx.func2();
 9   }
10 }

  这里是使用的getBean的方式,获得XXX的实例,但是别人说这个方法不好,想要注入的方式。

  但是静态的XXX如何注入呢?

  上网查了很多的说法,其实很简单:

 Class Util{
    private static XXX xxx;
    public void setXxx(XXX xxx){
        this.xxx = xxx;
    }
    public void getXxx(){
        return xxx;
    }
    public static void method1(){
        xxx.func1();
    }
    public static void method2(){
        xxx.func2();
    }
}

  在xml中正常配置注入就可以了。

<bean value="test" class="x.x.x.Util">
    <property value="xxx" ref="xxx"/>
</bean>

  这里要注意,自动生成的getter和setter方法,会带有static的限定符,需要去掉,才可以。

时间: 2024-11-03 11:50:52

[转]spring 注入静态变量的相关文章

【Spring开发】—— Spring注入静态变量

今天碰到一个问题,我的一个工具类提供了几种静态方法,静态方法需要另外一个类的实例提供处理,因此就写出了这样的代码: 1 Class Util{ 2 private static XXX xxx; 3 xxx = BeanUtil.getBean("xxx"); 4 public static void method1(){ 5 xxx.func1(); 6 } 7 public static void method2(){ 8 xxx.func2(); 9 } 10 } 这里是使用的g

Spring注入静态变量(转)

今天碰到一个问题,我的一个工具类提供了几种静态方法,静态方法需要另外一个类的实例提供处理,因此就写出了这样的代码: Class Util{ private static XXX xxx; xxx = BeanUtil.getBean("xxx"); public static void method1(){ xxx.func1(); } public static void method2(){ xxx.func2(); } } 这里是使用的getBean的方式,获得XXX的实例,但是

SpringBoot使用@Value从yml文件取值为空--注入静态变量

SpringBoot使用@Value从yml文件取值为空--注入静态变量 1.application.yml中配置内容如下: pcacmgr:   publicCertFilePath: E:\\pcacmgr\\CerFiles\\xh_public.cer   encPublicCertFilePath: E:\\pcacmgr\\CerFiles\\hjzf_encPublic.cer   encPfxFilePath: E:\\pcacmgr\\CerFiles\\hjzf_encPfx

Spring注解无法注入静态变量

参考:https://blog.csdn.net/BuquTianya/article/details/49009831 1.使用xml方式声明Bean,在xml中注入静态变量: 2.使用一个非静态的变量注入,然后在@PostConstruct标记的方法中给静态变量赋值. 3,在静态方法中获取bean AppConfMapper appConfMapper = (AppConfMapper) BeanHoldFactory.getApplicationContext().getBean("app

spring 给静态变量注入值

一般在spring中,给static变量加上@Autowired注解的时候会报空指针异常错误. 解决: 1.通过xml配置文件配置 这个就不多说了. 2.通过注解 @Component public class StructUtil { private static AttendanceMapper attendanceMapper; @Autowired public void setAttendanceMapper(AttendanceMapper attendanceMapper) { S

spring 对静态变量进行注解

要对静态变量进行注入 @Resource private static ITecharchService techarchService;//注入为空,spring注解注入不支持静态变量注入 查资料找到可以这样注入 @Component //必须是组件,才可以用@PostConstruct public class DDUtils{ @Resource private ITecharchService techarchService; private static DDUtils dd; @Po

Spring 注入static变量

一般我们我想注入一个static的变量,如下: @Autowired    private static String str; 不过,这样最终结果为null. 1.使用配置文件的方式注入 private static String from; public static String getFrom() { return from; } public static void setFrom(String from) { TestStatic.from = from; } <bean class

spring注入静态成员变量提示invalid setter method

果然还是不够细心啊,被坑一晚上.. 一个极其简单的小程序,但是需要通过xml文件配置注入一个值,唯一的特别是要注入的属性是类中的静态成员变量.. 如下,然后自动生成get和set方法..坑就从此开始了... public class Food{ private static String desc; public static String getDesc(){ return desc; } public static void setDesc(String desc){ Food.desc =

spring注入静态成员变量

工作中遇到的问题,在工具类里面需要给静态成员变量注入值,而静态成员变量是在类加载的时候加载的,所以一直报空指针. 在网上找了几种方法,记录一下. 第一种:使用set函数注入. 1 @Component 2 public class LogUtil { 3 4 private static PayLogDao logDao ; 5 @Autowired 6 public void setLogDao(PayLogDao logDao){ 7 LogUtil.logDao = logDao; 8 }