shjung 2 年之前
父節點
當前提交
0d4adb345b

+ 13 - 0
pom.xml

@@ -40,6 +40,19 @@
 <!--            <groupId>org.apache.clerezza.ext</groupId>-->
 <!--            <artifactId>org.json.simple</artifactId>-->
 <!--            <version>0.4</version>-->
+<!--        </dependency>-->
+
+<!--        <dependency>-->
+<!--            <groupId>net.sf.ehcache</groupId>-->
+<!--            <artifactId>ehcache</artifactId>-->
+<!--        </dependency>-->
+<!--        <dependency>-->
+<!--            <groupId>org.springframework.boot</groupId>-->
+<!--            <artifactId>spring-boot-starter-cache</artifactId>-->
+<!--        </dependency>-->
+<!--        <dependency>-->
+<!--            <groupId>ch.qos.logback</groupId>-->
+<!--            <artifactId>logback-core</artifactId>-->
 <!--        </dependency>-->
 
         <!-- Cache like map -->

+ 46 - 0
src/main/java/com/its/op/config/CacheConfig.java

@@ -0,0 +1,46 @@
+package com.its.op.config;
+
+//@EnableCaching
+//@Configuration
+public class CacheConfig {
+
+//    public CacheManager cacheManager() {
+//        return new EhCacheCacheManager(ehCacheCacheManager().getObject());
+//    }
+
+//    public EhCacheManagerFactoryBean ehCacheCacheManager() {
+//        EhCacheManagerFactoryBean cmfb = new EhCacheManagerFactoryBean();
+//        cmfb.setConfigLocation(new ClassPathResource("ehcache.xml.bak"));
+//        cmfb.setShared(true);
+//        return cmfb;
+//    }
+
+
+//    private net.sf.ehcache.CacheManager createCacheManager() {
+//        net.sf.ehcache.config.Configuration configuration = new net.sf.ehcache.config.Configuration();
+//        //configuration.diskStore(new DiskStoreConfiguration().path("java.io.tmpdir"));
+//        configuration.diskStore(new DiskStoreConfiguration().path("c:\\\\cache"));
+//        return net.sf.ehcache.CacheManager.create(configuration);
+//    }
+
+    //@Bean
+//    public EhCacheCacheManager ehCacheCacheManager() {
+//
+//        net.sf.ehcache.CacheManager manager = this.createCacheManager();
+//
+//        Cache getMenuCache = new Cache(new CacheConfiguration()
+//                .maxEntriesLocalHeap(1000)
+//                .maxEntriesLocalDisk(10000)
+//                .eternal(false)
+//                .timeToIdleSeconds(1800)
+//                .timeToLiveSeconds(1800)
+//                .memoryStoreEvictionPolicy("LFU")
+//                .transactionalMode(CacheConfiguration.TransactionalMode.OFF)
+//                .persistence(new PersistenceConfiguration().strategy(PersistenceConfiguration.Strategy.LOCALTEMPSWAP))
+//                .name("getMenu")
+//        );
+//        manager.addCache(getMenuCache);
+//
+//        return new EhCacheCacheManager(manager);
+//    }
+}

+ 4 - 0
src/main/java/com/its/op/service/its/ifsc/TbIfscService.java

@@ -59,6 +59,7 @@ public class TbIfscService {
      * 삭제되지 않은 정보제공구간 전체 조회
      * @return
      */
+    //@Cacheable(value="getIfsc")
     @Transactional(readOnly = true)
     public List<TbIfscDto> findAllList(boolean isMemory) {
         List<TbIfscDto> result = new ArrayList<>();
@@ -83,6 +84,9 @@ public class TbIfscService {
     }
 
     // 데이터 변경
+    //@CacheEvict(value = "getIfsc", allEntries=true)
+    //@CacheEvict(value = "getIfsc", key = "#id")
+    //@CacheEvict(value = "getIfsc", key = "#req.ifscId")
     @Transactional
     public TbIfscDto updateById(Long id, TbIfscDto.TbIfscUpdReq req) {
         TbIfsc entity = requireOne(id);

+ 6 - 1
src/main/java/com/its/op/service/its/vms/TbVmsDsplSchService.java

@@ -189,18 +189,23 @@ public class TbVmsDsplSchService {
                     case 13: case 23: case 33: case 43:
                         dsplText = vmsIfsc.getDsplEndNodeNm();  // 종점명
                         break;
+//                    case 18: case 28: case 38: case 48:
+//                        // 지점명
+//                        dsplText = vmsIfsc.getSpotNm();
+//                        break;
                     case 14: case 24: case 34: case 44:
                         // 소통상황
                     case 15: case 25: case 35: case 45:
                         // 통행시간
                     case 16: case 26: case 36: case 46:
                         // 통행속도
+                    case 19:
+                        // 소통상황(가변)
                         break;
                     //default: dsplText = " ";  // 통행시간, 통행속도 ...
                     }
                 }
             }
-
             // 그리기 시작한다
             int left = obj.getVmsDsplXcrdn();
             int top = obj.getVmsDsplYcrdn();

+ 66 - 0
src/main/resources/ehcache.xml.bak

@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:noNamespaceSchemaLocation="http://ehcache.org/ehcache.xsd"
+         updateCheck="false">
+
+    <diskStore path="java.io.tmpdir" />
+<!--    <diskStore path="c:\\cache" />-->
+
+    <cache name="getIfsc"
+           maxEntriesLocalHeap="1000"
+           maxEntriesLocalDisk="10000"
+           eternal="false"
+           diskSpoolBufferSizeMB="20"
+           timeToIdleSeconds="1800" timeToLiveSeconds="1800"
+           memoryStoreEvictionPolicy="LFU"
+           transactionalMode="off">
+        <persistence strategy="localTempSwap" />
+    </cache>
+
+<!--
+    <sizeOfPolicy maxDepth="100000" maxDepthExceededBehavior="continue"/>
+
+    <defaultCache
+            eternal="false"
+            timeToIdleSeconds="0"
+            timeToLiveSeconds="1200"
+            overflowToDisk="false"
+            diskPersistent="false"
+            diskExpiryThreadIntervalSeconds="120"
+            memoryStoreEvictionPolicy="LRU">
+    </defaultCache>
+
+    <cache name="LocalCacheData"
+           eternal="false"
+           timeToIdleSeconds="0"
+           timeToLiveSeconds="1200"
+           overflowToDisk="false"
+           diskPersistent="false"
+           diskExpiryThreadIntervalSeconds="120"
+           memoryStoreEvictionPolicy="LRU">
+    </cache>
+
+    <cache name="testData"
+           eternal="false"
+           timeToIdleSeconds="0"
+           timeToLiveSeconds="100"
+           overflowToDisk="false"
+           diskPersistent="false"
+           memoryStoreEvictionPolicy="LRU">
+    </cache>
+-->
+
+</ehcache>
+
+<!--
+name	                        캐시의 이름  필수
+maxElementsInMemory	            메모리에 저장될 수 있는 객체의 최대 개수 필수
+eternal	                        이 값이 true 이면 timeout 관련 설정은 무시되고, Element 가 캐시에서 삭제되지 않는다.  필수
+overflowToDisk	                메모리에 저장된 객체 개수가 maxElementsInMemory 에서 지정한 값에 다다를 경우 디스크에 오버플로우 되는 객체는 저장할 지의 여부를 지정한다. 필수
+
+timeToIdleSeconds	            Element 가 지정한 시간 동안 사용(조회)되지 않으면 캐시에서 제거된다. 이 값이 0인 경우 조회 관련 만료 시간을 지정하지 않는다. 기본값은 0이다. 선택
+timeToLiveSeconds	            Element 가 존재하는 시간. 이 시간이 지나면 캐시에서 제거된다. 이 시간이 0이면 만료 시간을 지정하지 않는다. 기본값은 0이다.    선택
+diskPersistent	                VM이 재 가동할 때 디스크 저장소에 캐싱된 객체를 저장할지의 여부를 지정한다. 기본값은 false 이다. 선택
+diskExpiryThreadIntervalSeconds	Disk Expiry 쓰레드의 수행 시간 간격을 초 단위로 지정한다. 기본값은 120 이다. 선택
+memoryStoreEvictionPolicy	    객체의 개수가 maxElementsInMemory 에 도달했을 때, 메모리에서 객체를 어떻게 제거할 지에 대한 정책을 지정한다. 기본값은 LRU 이다. FIFO 와 LFU 도 지정할 수 있다. 선택
+-->