国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

基于注解的spring 在靜態方法中使用注入的類

since1986 / 2618人閱讀

摘要:比如在處理數據源時返回,處理數據源時返回一開始的寫法可是會報錯因為靜態方法中不能使用非靜態的變量,而注解不支持靜態屬性上添加。同事給出了解決方案在初始化之后將包涵已經注入好各個的付給一個靜態的變量在方法中通過來獲得注入的對象。

博客搬移到這里:http://yemengying.com/
有個自己的博客還蠻好玩的,bazinga!
在開發時遇到需要將多個來源的數據轉換為統一的格式,不同來源的數據轉換邏輯不同。所以想利用工廠模式 讓所有的轉換類繼承一個公有的類 然后在工廠類中根據不同的來源 返回不同的實例。比如在處理A數據源時 返回AConverter,處理B數據源時 返回BConverter
一開始的寫法:

@Component
public class ConverterFactory {

    @Resource
    private AConverter aConverter;
    @Resource
    private BConverter bConverter;
    @Resource
    private CConverter cConverter;

    public static POIConverter getConverter(String type) {
        switch (type) {
            case "a" : return aConverter;
            case "b" : return bConverter;
            case "c" : return cConverter;
        }
        return null;
    }
}

可是會報錯 因為靜態方法中不能使用非靜態的變量,而Resource注解不支持靜態屬性上添加。同事給出了解決方案 在初始化之后將包涵已經注入好各個converter的this付給一個靜態的變量factory 在getConverter方法中 通過factory來獲得注入的對象。

@Component
public class ConverterFactory {

    @Resource
    private AConverter aConverter;
    @Resource
    private BConverter bConverter;
    @Resource
    private CConverter cConverter;
    
    private static ConverterFactory factory;

    @PostConstruct
    public void init() {
        factory = this;
    }

    public static POIConverter getConverter(String type) {
        switch (type) {
            case "a" : return factory.aConverter;
            case "b" : return factory.bConverter;
            case "c" : return factory.cConverter;
        }
        return null;
    }

}

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/64670.html

相關文章

  • Spring詳解3.Bean裝配

    摘要:的依賴關系,根據依賴關系配置完成之間的裝配。的行為信息,如生命周期范圍及生命周期各過程的回調函數。使用該種裝配模式時,優先匹配參數最多的構造函數。如果提供了默認的構造函數,則采用否則采用進行自動裝配。 點擊進入我的博客 1 Spring容器與Bean配置信息 Bean配置信息 Bean配置信息是Bean的元數據信息,它由一下4個方面組成: Bean的實現類 Bean的屬性信息,如數...

    endiat 評論0 收藏0
  • Spring入門IOC和AOP學習筆記

    摘要:入門和學習筆記概述框架的核心有兩個容器作為超級大工廠,負責管理創建所有的對象,這些對象被稱為。中的一些術語切面切面組織多個,放在切面中定義。 Spring入門IOC和AOP學習筆記 概述 Spring框架的核心有兩個: Spring容器作為超級大工廠,負責管理、創建所有的Java對象,這些Java對象被稱為Bean。 Spring容器管理容器中Bean之間的依賴關系,使用一種叫做依賴...

    wenyiweb 評論0 收藏0
  • Spring核心 面向切面 AOP

    摘要:下圖展示了這些概念的關聯方式通知切面的工作被稱為通知。切面在指定的連接點被織入到目標對象中。該注解表明不僅僅是一個,還是一個切面。 在軟件開發中,散布于應用中多處的功能被稱為橫切關注點(crosscutting concern)。通常來講,這些橫切關注點從概念上是與應用的業務邏輯相分離的(但是往往會直接嵌入到應用的業務邏輯之中)。把這些橫切關注點與業務邏輯相分離正是面向切面編程(AOP...

    Winer 評論0 收藏0
  • Java設計模式綜合運用(動態代理+Spring AOP)

    摘要:動態代理的核心是接口和類。以上結果說明它生成的代理類為,說明是代理。測試前提實現接口測試類使用接口方式注入代理方式必須以接口方式注入測試配置為,運行結果如下實際校驗邏輯。。。。 本文也同步發布至簡書,地址:https://www.jianshu.com/p/f70... AOP設計模式通常運用在日志,校驗等業務場景,本文將簡單介紹基于Spring的AOP代理模式的運用。 1. 代理模...

    王晗 評論0 收藏0
  • Spring入門看這一篇就夠了

    摘要:甲乙交易活動不需要雙方見面,避免了雙方的互不信任造成交易失敗的問題。這就是的核心思想。統一配置,便于修改。帶參數的構造函數創建對象首先,就要提供帶參數的構造函數接下來,關鍵是怎么配置文件了。 前言 前面已經學習了Struts2和Hibernate框架了。接下來學習的是Spring框架...本博文主要是引入Spring框架... Spring介紹 Spring誕生: 創建Spring的...

    superw 評論0 收藏0

發表評論

0條評論

since1986

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<