class CompositeDictDefineRepository extends DefaultDictDefineRepository {

    @Autowired
    private DefaultDictionaryService dictionaryService;

    @Autowired
    private ReactiveCacheManager cacheManager;

    @EventListener
    public void handleClearCacheEvent(ClearDictionaryCacheEvent event) {<FILL_FUNCTION_BODY>}

    @Override
    public Mono<DictDefine> getDefine(String id) {
        return super.getDefine(id)
                    .switchIfEmpty(Mono.defer(() -> cacheManager
                            .<DictDefine>getCache("dic-define")
                            .getMono(id, () -> getFromDb(id))));
    }

    @Override
    public Flux<DictDefine> getAllDefine() {
        return Flux.concat(super.getAllDefine(), QueryParamEntity
                .newQuery()
                .noPaging()
                .execute(paramEntity -> dictionaryService.findAllDetail(paramEntity,false))
                .map(DictionaryEntity::toDictDefine));
    }

    private Mono<DictDefine> getFromDb(String id) {
        return dictionaryService
                .findDetailById(id)
                .filter(e -> Byte.valueOf((byte) 1).equals(e.getStatus()))
                .map(DictionaryEntity::toDictDefine);
    }


}

        if (StringUtils.isEmpty(event.getDictionaryId())) {
            cacheManager.<DictDefine>getCache("dic-define")
                        .clear()
                        .doOnSuccess(r -> log.info("clear all dic cache success"))
                        .subscribe();
        } else {
            cacheManager.<DictDefine>getCache("dic-define")
                        .evict(event.getDictionaryId())
                        .doOnSuccess(r -> log.info("clear dict [{}] cache success", event.getDictionaryId()))
                        .subscribe();
        }

    
<methods>public non-sealed void <init>() ,public void addDefine(org.hswebframework.web.dict.DictDefine) ,public Flux<org.hswebframework.web.dict.DictDefine> getAllDefine() ,public Mono<org.hswebframework.web.dict.DictDefine> getDefine(java.lang.String) ,public static org.hswebframework.web.dict.DictDefine parseEnumDict(Class<?>) ,public static void registerDefine(org.hswebframework.web.dict.DictDefine) <variables>protected static final Map<java.lang.String,org.hswebframework.web.dict.DictDefine> parsedDict