java - 使用static方法和从Spring IOC 容器里面取出的方法有什么区别?
ringa_lee
ringa_lee 2017-04-17 17:46:23
0
3
392
public interface CachedLoadService { Map loadHomeData(); } public class CachedUtils { private static Date lastSearchTime=null; private static Map mapMediaList=null; static Object lock = new Object(); public static Map getMediaList() { synchronized (lock) { CachedLoadService cachedLoadService=(CachedLoadService) SpringContextUtil.getBean("cachedLoadService"); //或者其它业务类 try { if(lastSearchTime==null) { mapMediaList=cachedLoadService.loadHomeData(); lastSearchTime=new Date(); } else { if(mapMediaList==null) { mapMediaList=cachedLoadService.loadHomeData(); lastSearchTime=new Date(); } else { mapMediaList=cachedLoadService.loadHomeData(); lastSearchTime=new Date(); } } return mapMediaList; } catch (Exception e) { return mapMediaList; } } }

}

cachedLoadService.loadHomeData() 就是一个 final static Map ,还有必要去特意弄一个接口吗?这种做法的作用是什么?

ringa_lee
ringa_lee

ringa_lee

全員に返信 (3)
巴扎黑

実際のところ、ビジネス メソッドごとにインターフェイスを用意するのが面倒な複雑なビジネスでない限り、すべてのサービスでインターフェイスを記述する必要はないと思います。

いいねを押す+0
    刘奇

    あなたは依存関係の問題を解決したのではなく、単にオブジェクトの作成の問題を解決しただけです。

    依存関係は最も複雑です。
    いいねを押す+0
      迷茫

      **1. メモリに関しては、Spring は動的プロキシを通じて必要なものをロードできます。静的メソッドとは異なり、プログラムのコンパイル時にロードされます。
      2. Spring の IOC を通じて、プログラムのライフサイクル全体を通じてオブジェクト (シングルトン モードなど) を常に維持する必要があるかどうか、または beanFactory を使用してさまざまな Java Bean を生成する必要があるかどうかを制御できます。 **

      いいねを押す+0
        最新のダウンロード
        詳細>
        ウェブエフェクト
        公式サイト
        サイト素材
        フロントエンドテンプレート
        私たちについて 免責事項 Sitemap
        PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!