SpringAOPはredisキャッシュとmysqlデータベースの同期を実現


1.断面を定義し、AfterReturning通知を使用して、修正、削除、新規追加などが成功した後にキャッシュを更新する
a、変更時にデータベースデータを変更し、変更に成功してからキャッシュに同期する.
b、削除時にデータベースデータを削除し、削除に成功してからキャッシュ中の対応データを整理する
c、新規時にデータベースを挿入し、挿入に成功してから、同期してキャッシュに入る
com.aspect.demo;

com.model.Company;
com.model.ExceptionCompany;
com.Cache.RedisCache;
org.aspectj.lang.JoinPoint;
org.aspectj.lang.annotation.*;
org.slf4j.Logger;
org.slf4j.LoggerFactory;
;
java.util.List;

ReceiveCacheManager {


    //                   
    RedisCache ;

    setRedisCache(RedisCache redisCache) {
        .= redisCache;
    }

    Logger = LoggerFactory.(ReceiveCacheManager.);
    ()
    insertService() { }

    ()
    updateService() { }

    ()
    deleteService() { }
    ()
         insertCompany(JoinPoint joinPoint) {
             {
            //      
                 Object[] args = joinPoint.getArgs();
                 (args != && args.> && args[].getClass() == Company.) {
                     Company company = (Company) args[];
                     (.exists()){
                         Object object = .get();
                         (object == ){}{
                             List list = (List) object;
                             ExceptionCompany exceptionCompany = ExceptionCompany();
                             exceptionCompany.setBusinessLicense(company.getBusinessLicense());
                             exceptionCompany.setCompanyName(company.getCompanyName());
                             exceptionCompany.setCompanyAddress(company.getCompanyAddress());
                             exceptionCompany.setLinkMan(company.getLinkMan());
                             exceptionCompany.setLinkTel(company.getLinkTel());
                             exceptionCompany.setOrganizationCode(company.getOrganizationCode());
                             exceptionCompany.setTaxRegistration(company.getTaxRegistration());
                             list.add(exceptionCompany);
                             .set(,list);
                         }
                     }
                 }
                 .info(+ (joinPoint.getTarget().getClass().getName() + + joinPoint.getSignature().getName() + ));
                }(Exception e) {
                 .error(, e.getMessage());
             }
         }

    (pointcut=)
    updateCompany(JoinPoint joinPoint) {
        {
//      

            Object[] args = joinPoint.getArgs();
            (args != && args.> && args[].getClass() == Company.) {
                Company company = (Company) args[];
                (.exists()){
                    Object object = .get();
                    (object == ){}{
                        List list = (List) object;
                        (i= ;i 
  
//      

            Object[] args = joinPoint.getArgs();
            (args != && args.> && args[].getClass() == Company.) {
                Company company = (Company) args[];
                (.exists()){
                    Object object = .get();
                    (object == ){ }{
                        List list = (List) object;
                        (i= ;i        @AspectJ  -->