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="TestStatic">
        <property name="from" value="abc"/>
    </bean>

2、使用注解的方式,不过注解写在非static的方法上

    private static String to;

    public static String getTo() {
        return to;
    }

    @Value("${mail.to}")
    public void setTo(String to) {
        TestStatic.to = to;
    }

备注:目前Spring的注解不支持静态的变量和方法,至于原因:有人说是因为Spring是基于对象层面的依赖注入的,而且使用静态的变量或类什么的话,扩大了其生命周期,给Testing带来困难,故Spring不推荐这样做。至于还有没有其他的什么原因,抱歉,没有搜到,咯咯,若你有什么好的理由,可以私聊哦,谢谢!

时间: 2024-11-10 07:10:11

Spring 注入static变量的相关文章

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 }

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

[转]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 s

Spring注入值到静态变量

Spring不允许将值注入静态变量,例如: import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; @Component public class GlobalValue { @Value("${mongodb.db}") public static String DATABASE; } 如果打印GlobalValue.DATA

spring 给静态变量注入值

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

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

SSH框架系列:Spring读取配置文件以及获取Spring注入的Bean

分类: [java]2013-12-09 16:29 1020人阅读 评论(0) 收藏 举报 1.简介 在SSH框架下,假设我们将配置文件放在项目的src/datasource.properties路径下,Spring的配置文件也是src/applicationContext.xml路径下,那么我们可以借助Spring的property-placeholder读取配置文件,然后注入Bean中.我们在程序中,可以根据Bean的Id,获取注入的值.这样我们就可以借助Spring来读取配置文件. 2.