spring 给静态变量注入值

一般在spring中,给static变量加上@Autowired注解的时候会报空指针异常错误.

解决:

1.通过xml配置文件配置

这个就不多说了.

2.通过注解

@Component
public class StructUtil {

    private static AttendanceMapper attendanceMapper;

    @Autowired
    public  void setAttendanceMapper(AttendanceMapper attendanceMapper) {
        StructUtil.attendanceMapper = attendanceMapper;
    }
}

加上注解@Component,然后在静态变量的set方法上方加上@Autowired注解,注意:set方法不能为static类型.

原文地址:https://www.cnblogs.com/lishuaiqi/p/10416609.html

时间: 2024-08-04 03:31:25

spring 给静态变量注入值的相关文章

Spring-如何给静态变量注入值

Spring无法直接给静态变量注入值,因为静态变量不属于对象,只属于类,也就是说在类被加载字节码的时候变量已经初始化了,也就是给该变量分配内存了,导致spring忽略静态变量.所以如下这种写法就是错误的,这样是无法注入的,在使用该变量的时候会导致空指针错误: @Autowired private static StudentMapper studentMapper; Spring 依赖注入是依赖set方法,静态变量不属于对象,只属于类.解决方法就是加上非静态的set方法,如下: private

SpringMvc通过@Value( ) 给静态变量注入值

spring 不允许/不支持把值注入到静态变量中,如: @Value("${ES.CLUSTER_NAME}")private static String CLUSTER_NAME; 在方法中获得的CLUSTER_NAME,会得到null 解决好在spring支持set方法注入,我们可以利用非静态setter 方法注入静态变量.如: private static String CLUSTER_NAME; @Value("${ES.CLUSTER_NAME}") pu

spring 对静态变量进行注解

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

Spring不能给sessionFactory注入值的问题,以及org.hibernate.HibernateException: createQuery is not valid without active transaction异常

在Struts2+Spring3+Hibernate4的框架下,本来想在DAO中通过setter注入,给sessionFactory赋值,但是却出现NullPointerException的异常.经过调试,发现sessionFactory的值为null.后来发现,原来在service层中,这个DAO类的对象是通过new得来的,而不是通过Spring注入的.因此这个new出来的DAO对象,没有被Spring注入sessionFactory,必然它的sessionFactory为空了.于是改为由Sp

Spring static 静态属性注入

<bean class="org.springframework.beans.factory.config.MethodInvokingFactoryBean"> <property name="staticMethod" value="**.service.utils.PostUtil.setEnableValidateMode"/> <property name="arguments">

Spring boot 工具类静态属性注入及多环境配置

由于需要访问MongoDB,但是本地开发环境不能直接连接MongoDB,需要通过SecureCRT使用127.0.0.2本地IP代理.但是程序部署到线上生产环境后,是可以直接访问MongoDB的,因此开发好程序后,总是要修改一下MongoDB服务器的IP才能提交代码,这样很是不方便. private static final String PUBCHAT_HOST = "127.0.0.2"; // private static final String PUBCHAT_HOST =

Android进程管理及静态变量垃圾回收

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

JNI/NDK开发指南(七)——C/C++访问Java实例变量和静态变量

转载请注明出处:http://blog.csdn.net/xyang81/article/details/42836783 在上一章中我们学习到了如何在本地代码中访问任意Java类中的静态方法和实例方法,本章我们也通过一个示例来学习Java中的实例变量和静态变量,在本地代码中如何来访问和修改.静态变量也称为类变量(属性),在所有实例对象中共享同一份数据,可以直接通过[类名.变量名]来访问.实例变量也称为成员变量(属性),每个实例都拥有一份实例变量数据的拷贝,它们之间修改后的数据互不影响.下面看一

局部静态变量

1 #pragma region 成员函数的局部静态变量应用 2 class CTestA 3 { 4 public: 5 CTestA(); 6 void ReturnCurrentTime(float currentFrame, float nextFrame); 7 }; 8 9 CTestA::CTestA(){} 10 11 void CTestA::ReturnCurrentTime(float currentFrame, float nextFrame) 12 { 13 stati