Spring依賴注入static靜態變數相關問題

2021-10-13 17:17:57 字數 1979 閱讀 7125

問題:springmvc給靜態變數注入報:@autowired annotation is not supported on static fields

原因:spring annotation不支援靜態變數注入

解決

方法一:把get,set方法的static修飾符去掉,然後在set方法上面加@autowired即可

public

class

endecryptionserviceimpl

implements

iendecryptionservice

@autowired

public

void

public uploadimgoss getuploadimgoss()

@autowired

public

void

setuploadimgoss

(uploadimgoss uploadimgoss)

}

方法二:在建構函式上加上@autowired

/**

* 第二種解決 autowired annotation is not supported on static fields的方式

*/@autowired

public

void

endecryptionservicetwoimpl

xml方式

適合基於xml配置的web專案

"mongofileoperationutil"

class

="com.*.*.mongofileoperationutil"

init-method

="init"

>

name

="dsforrw"

ref="dsforrw"

/>

bean

>

@postconstruct方式

import org.mongodb.morphia.advanceddatastore;

import org.springframework.beans.factory.annotation.autowired;

@component

public

class

mongofileoperationutil

}

@postconstruct 註解的方法在載入類的建構函式之後執行,也就是在載入了建構函式之後,執行init方法;(@predestroy 註解定義容器銷毀之前的所做的操作)

這種方式和在xml中配置 init-method和 destory-method方法差不多,定義spring 容器在初始化bean 和容器銷毀之前的所做的操作

set方法上新增@autowired註解,類定義上新增@component註解

import org.mongodb.morphia.advanceddatastore;

import org.springframework.beans.factory.annotation.autowired;

import org.springframework.stereotype.component;

@component

public

class

mongofileoperationutil

}

首先spring要能掃瞄到advanceddatastore的bean,然後通過setter方法注入;

然後注意:成員變數上不需要再新增@autowired註解;

spring 依賴注入 Spring依賴注入

依賴注入 dependency injection,簡稱di 與控制反轉 ioc 的含義相同控制反 在使用spring框架之後,物件的例項不再由呼叫者來建立,而是由spring容器來建立,spring容器會負責控制程式之間的關係,而不是由呼叫者的程式 直接控制,這樣控制權由應用程式轉移到了sprin...

Spring依賴注入

所謂依賴注入,是指在程式執行過程中,如果需要呼叫另乙個物件協助時,無須在 中建立按被呼叫者,而是依賴外部注入。spring 的依賴注入對呼叫者和被呼叫者幾乎沒有任何要求,完全支援對 pojo 之間依賴關係的管理。依賴注入的兩種方式 1 設值注入 設值注入是指通過 setter 方法傳入被呼叫者的例項...

SPring依賴注入

所謂依賴注入,是指在程式執行過程中,如果需要呼叫另乙個物件協助時,無須在 中建立按被呼叫者,而是依賴外部注入。spring的依賴注入對呼叫者和被呼叫者幾乎沒有任何要求,完全支援對pojo之間依賴關係的管理。依賴注入的兩種方式 1 設值注入 設值注入是指通過setter方法傳入被呼叫者的例項。這種注入...