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

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

 1 Class aa{
 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 aa{
    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.aa">
    <property value="xxx" ref="xxx"/>
</bean>

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

本文转自博客园xingoo的博客,原文链接:【Spring开发】—— Spring注入静态变量,如需转载请自行联系原博主。

时间: 2024-07-31 20:45:33

【Spring开发】—— Spring注入静态变量的相关文章

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的实例,但是

Android静态变量的生命周期 简单介绍_Android

Android是用Java开发,其静态变量的生命周期遵守Java的设计.我们知道静态变量是在类被load的时候分配内存的,并且存在于方法区.当类被卸载的时候,静态变量被销毁.在PC机的客户端程序中,一个类被加载和卸载,可简单的等同于jvm进程的启动和结束.那么在Android中呢?用的Dalvik vm也是一样的.不过Android不太突出的进程概念,所以对静态变量的生命周期就会感觉模糊,这种模糊对于值类型是无所谓的,如果是静态的对象引用,则与内存回收.内存泄漏这些问题有关,有必要加深研究和理解

Android静态变量的生命周期 简单介绍

Android是用Java开发,其静态变量的生命周期遵守Java的设计.我们知道静态变量是在类被load的时候分配内存的,并且存在于方法区.当类被卸载的时候,静态变量被销毁.在PC机的客户端程序中,一个类被加载和卸载,可简单的等同于jvm进程的启动和结束.那么在Android中呢?用的Dalvik vm也是一样的.不过Android不太突出的进程概念,所以对静态变量的生命周期就会感觉模糊,这种模糊对于值类型是无所谓的,如果是静态的对象引用,则与内存回收.内存泄漏这些问题有关,有必要加深研究和理解

spring 对静态变量进行注解

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

基于OSGi和Spring开发Web应用

作为一个新的事实上的工业标准,OSGi 已经受到了广泛的关注, 其面向服 务(接口)的基本思想和动态模块部署的能力, 是企业级应用长期以来一直追 求的目标.Spring 是一个著名的 轻量级 J2EE 开发框架,其特点是面向接口编 程和非侵入式的依赖注入.将 OSGi 和 Spring 结合能充分发挥二者各自的特长 ,更好地满足企业级应用开发的需求.Spring 开发组织在 2008 年发布了将 OSGi 和 Spring 结合的第一个版本:Spring-DM.本文通过一个简单实例,介绍 如何利

ssh整合-SSH框架中Spring的依赖注入问题

问题描述 SSH框架中Spring的依赖注入问题 我做了一个struts+hibernate3+spring的整合,我applicationContext .xml文件中已经配置了 <bean id=""loginAction"" class=""com.web.LoginAction""><property name=""userDao"" ref="&qu

使用junit&amp;amp;spring修改系统的环境变量,解决docker程序测试问题

1,修改系统环境变量 首先环境变量在java运行的时候是修改不了的. 已经设置成只读了虽然方法都能调用. 这个有啥用呢?因为docker开放的应用程序的环境变量都是这样设置的. docker在启动的时候设置了环境变量,然后应用程序就可以直接调用了. 调用的方法java就是通过 System.getenv()获得的. 有spring的程序,直接使用${jdbc.url}写在xml的配置文件就好. spring已经支出从系统环境变量里面获得参数了. System.out.println(System

Spring中属性注入详解_java

本文演示了int.String.数组.list.set.map.Date等属性的注入. 其中Date类型的注入则是借助了Spring提供的属性编辑器来实现的,首先是用到的五个实体类 package com.jadyer.model; import java.util.Date; import java.util.List; import java.util.Map; import java.util.Set; /** * 常见属性的注入 * @see 包括int,String,Array,lis

详析Spring中依赖注入的三种方式_java

前言 平常的java开发中,程序员在某个类中需要依赖其它类的方法,则通常是new一个依赖类再调用类实例的方法,这种开发存在的问题是new的类实例不好统一管理,spring提出了依赖注入的思想,即依赖类不由程序员实例化,而是通过spring容器帮我们new指定实例并且将实例注入到需要该对象的类中.依赖注入的另一种说法是"控制反转",通俗的理解是:平常我们new一个实例,这个实例的控制权是我们程序员,而控制反转是指new实例工作不由我们程序员来做而是交给spring容器来做. 在Sprin