0
@Autowired
       @Qualifier("dashbSqlSessionFactory")
       private SqlSessionFactoryBean  dashbSqlSessionFactory;

@RequestMapping(value = "/clearcache", method = RequestMethod.POST)
        public @ResponseBody void clearCache() throws Exception{
            //System.out.println("Cache is cleared.................");
             Configuration configuration = dashbSqlSessionFactory.getObject().getConfiguration(); 
                Collection<Cache> caches = configuration.getCaches(); 
                 for (Cache cache : caches) { 
                  /*System.out.println("cache Name:   "+cache);
                  cache.removeObject("keyEquipmentShiftAutomatedModelData");*/
                     /*Lock w = cache.getReadWriteLock().writeLock(); 
                     w.lock(); 
                     try { */
                         cache.clear(); 
                     /*} finally { 
                         w.unlock(); 
                     }*/
            }
            }

Mybatisマッパーxmlで

<cache
    eviction="FIFO"
    size="512"
    readOnly="true"/>

上記のコードに従って、キャッシュがセッション レベルで単一のユーザーに固有であると予想していますが、他のユーザーがシステムにログインするとキャッシュが上書きされます。私の理解によれば、両方が異なるセッションを持っているためdashbSqlSessionFactory.getObject().getConfiguration(); Collection<Cache> caches = configuration.getCaches(); 、他のセッションでユーザーのキャッシュを取得しないでください。私のコードに問題はありますか

4

0 に答える 0