1. 程式人生 > >使用Spring註解,在靜態方法中注入bean

使用Spring註解,在靜態方法中注入bean

@Component public class FTPUtil { //通過dicService讀取資料庫中的FTP引數 @Autowired private DicService dicService; private static FTPUtil fTPUtil; private static String FTPControlEncoding = "GBK"; private static int PORT; private static String FTPUSER; private static String FTPIP; private
static String FTPPSS; public void setDicService(DicService dicService) { this.dicService = dicService; } //通過init方法, //1.注入bean(dicService) //2.賦值給static FTPUtil fTPUtil //3.使用dicService的時候,就通過fTPUtil來取 @PostConstruct public void init() { fTPUtil = this; fTPUtil.dicService = this
.dicService; } /** * 每次連結FTP,初始化引數 */ public synchronized static FTPClient getFTPClient() { //fTPUtil.dicService取到注入的dicService List<DicEntity> dicList= fTPUtil.dicService.queryListByDicType(Constant.FTP_INFO); for (int i = 0; i < dicList.size(); i++) { String dicCode = dicList.get(i).getDicCode(); String dicCont = dicList.get(i).getDicCont(); if
(Constant.FTP_INFO_IP.equals(dicCode)) { FTPIP = dicCont; } if (Constant.FTP_INFO_USER.equals(dicCode)) { FTPUSER = dicCont; } if (Constant.FTP_INFO_PASSWORD.equals(dicCode)) { FTPPSS = dicCont; } if (Constant.FTP_INFO_PROT.equals(dicCode)) { PORT = Integer.parseInt(dicCont); } } FTPClient ftp = new FTPClient(); ftp.setControlEncoding(FTPControlEncoding); try { ftp.connect(FTPIP, PORT); ftp.login(FTPUSER, FTPPSS); int reply = ftp.getReplyCode(); System.out.println(reply); // 切換傳輸方式,防止FTP使用預設的傳輸方式ASCII導致檔案被破壞 ftp.setFileType(FTPClient.BINARY_FILE_TYPE); // ftp.setFileTransferMode(FTPClient.BINARY_FILE_TYPE); if (!FTPReply.isPositiveCompletion(reply)) { System.out.println("連線異常"); ftp.disconnect(); System.out.println("FTP連線斷開"); } } catch (Exception e) { e.printStackTrace(); } return ftp; }

相關推薦

使用Spring註解靜態方法注入bean(spring靜態注入元件——工具類常用)

如果直接用spring注入靜態屬性,則會報錯,提示@Resource annotation is not supported on static fields,如果又一定要通過spring注入bean,可以採用@PostConstruct註解在某個用來初始化的方法上,注入時注

使用Spring註解靜態方法注入bean

@Component public class FTPUtil { //通過dicService讀取資料庫中的FTP引數 @Autowired private DicService dicService; private static FTPUtil fTPUtil;

Spring 無法注入靜態變數直接在靜態方法獲取bean

模組中想把一個類寫成工具類,提供靜態方法呼叫。但是方法中要用到@autowire注入的dao類變數,它要能在靜態方法中使用的話本身就加上static,但是static變數是無法用@autowire注入的。 @Autowired private AppConfMapper m

spring靜態方法使用bean物件

方法: 在類中建立一個靜態的bean物件,然後使用init方式初始化這個bean,這樣就可以在靜態方法中呼叫了 @Service("idg") public class IDGenerator { @Autowired

spring靜態注入bean的的解釋

@Component public class ModelMapper { @AutoWired private static

SpringMVC靜態方法如何注入service非靜態方法,如何在contextInitialized之前注入bean使service不會報空

    1.靜態方法中不能用非靜態方法    首先宣告java中只有靜態方法和靜態引數,沒有靜態類。但可以在類中將自己宣告稱靜態引數,從而模擬將整個類都靜態載入在快取中,具體下面再詳細講。    因為靜態方法在程式啟動時就載入,而非靜態方法此時還不在記憶體中(spring中加

spring專案靜態方法使用注入bean

1. 說明: 專案中涉及到dubbo服務,在專案中需要將這個服務作為一個bean注入,由於本人需要在靜態方法中使用這個bean,所以如果使用類似@Autowire等註解注入時會編譯報錯。 2. 解決方法: 自己寫一個工具類,通過spring上下文獲取這個bean。轉成靜態

Spring靜態方法使用@Resource註解的變數

Spring框架中使用靜態注入 開發中,有些時候可能會工具類的靜態方法,而這個靜態方法中又使用到了@Resource註解後的變數。如果要直接使用 Utils.staticMethod(),專案會

spring注入的方式實現靜態方法使用非靜態變數

實現靜態方法中使用非靜態變數 程式碼示例: public class TestClass{   private SystemConfig config;   private static TestClass test;   public TestClass()

Spring4深入理解IOC&DI04----Bean配置方式(全類名工廠方法FactoryBean)配置形式(基於XML和註解)泛型依賴注入

一、Bean的配置方式     Bean 的配置方式:通過全類名(反射)、通過工廠方法(靜態工廠方法 & 例項工廠方法)、FactoryBean 1-1.通過靜態工廠方式配置Bean   --•呼叫靜態工廠方法建立Bean是將物件建立的過程封裝到靜態方法中.當客

靜態方法直接使用註入的bean對象

進行 stat 註入 問題 就會 ces 直接 static scrip 問題:靜態方法中註入bean分析問題:先看一段代碼 @Componentpublic class ScriptExecuteContent { @Autowired private static S

靜態方法只允許訪問靜態數據那麽如何在靜態方法訪問類的實例成員(即沒有附加static關鍵字的字段或方法)?

static關鍵字 實例成員 clas 靜態 image eth sys 靜態方法 http package test.two; public class jingtaihanshu { int x = 3; static int y

spring抽象類注入bean

在使用spring的時候,有時由於設計的需要,需要使用抽象類(比如模板方法模式),但在抽象類中實現方法是需要依賴其他的介面或類的方法,這時就需要對依賴的介面或類進行注入,需要注意以下內容: 在抽象類中需要注入(@autowire),在繼承了該抽象類的子類中同樣需要再次注入。比如當前專案中,使用者

java靜態變數靜態程式碼塊靜態方法例項變數匿名程式碼塊的載入順序

1. java中靜態變數,靜態程式碼塊,靜態方法,例項變數,匿名程式碼塊 在Java中,使用{}括起來的程式碼稱為程式碼塊,程式碼塊可以分為以下四種: (1)普通程式碼塊:就是類中方法的方法體 public void xxx(){ //code }

靜態靜態方法靜態變數的執行順序按出現執行

package com.study; public class StaticCode { static { i = 33;// i's value is from 0 to 33 g(); } static int i = 1;

python例項方法例項屬性方法類屬性靜態方法的總結

class Game(object): #歷史最高分 top_score = 0 def __init__(self,player_name): self.name = player_name @staticmethod def show

靜態方法呼叫service方法以及獲取request物件

靜態方法中呼叫service方法,以及獲取request物件 //普通service方法,重點:ApplicationContextRegister物件 DictionaryService dictionaryService = ApplicationContextRe

python方法例項方法靜態方法的作用和區別

  Python中至少有三種比較常見的方法型別,即例項方法,類方法、靜態方法。它們是如何定義的呢?如何呼叫的呢?它們又有何區別和作用呢?且看下文。 首先,這三種方法都定義在類中。下面我先簡單說一下怎麼定義和呼

python的類屬性方法靜態方法

1.類屬性 就是針對 類物件 定義的屬性 使用 賦值語句 在 class 關鍵字下方可以定義 類屬性 類屬性 用於記錄 與這個類相關 的特徵 2. 類方法 就是針對 類物件 定義的方法 就是針對 類物件 定義的方法 在 類方法 內部可以直接訪問 類屬性 或者呼叫

java靜態變數靜態方法靜態程式碼塊構造程式碼塊構造方法...執行順序

public class TestExeOrder { public TestExeOrder(){ System.out.println("類的構造方法執行了..."); } { System.out.println("構造程式碼塊執行了