java - 使用static方法和从Spring IOC 容器里面取出的方法有什么区别?
ringa_lee
ringa_lee 2017-04-17 17:46:23
0
3
393
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)
巴扎黑

其实我也觉得没必要在每个 service 都写接口,除非那种复杂的业务,每个业务方法都接个接口烦都烦死了。

    刘奇

    你没有解决依赖问题,只是简单的解决对象创建问题,依赖才是最复杂的,

      迷茫

      **1.从内存方面来讲,spring通过动态代理,可以做到,需要什么的时候,就加载进来什么。而不像静态方法一样,在程序编译的时候就加载进来。
      2.通过spring的IOC可以控制在程序整个生命周期,是需要始终维护一个对象(如单例模式),还是使用beanFactory一样分别产生不同的Java bean。**

        최신 다운로드
        더>
        웹 효과
        웹사이트 소스 코드
        웹사이트 자료
        프론트엔드 템플릿
        회사 소개 부인 성명 Sitemap
        PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!