springbootは、(アノテーションを使用して)遭遇したいくつかのピットAOPを設定しました

いくつかはSpringAOPに関する最近のいくつかのオンラインのブログを読んで、彼らが私のために、特に、この初心者に書かれていないことがわかりました。私はこの中にまとめると、コードやスクリーンショット、開発ツールや環境の一部を提供しているので、次のように:
開発環境を:jdk1.8の
開発ツール:アイデア、Mavenを

  1. 依存性の導入:
		<!-- aop -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-aop</artifactId>
        </dependency>
        <!-- @Aspect-->
        <dependency>
            <groupId>org.aspectj</groupId>
            <artifactId>aspectjweaver</artifactId>
        </dependency>

ここに画像を挿入説明

  1. 設定application.properties

いくつかのブログは(application.propertiesでの構成などの個人に)@SpringBootApplicationスタートアップファイルに設定されています

> #AOP
spring.aop.proxy-target-class=true
spring.aop.auto=true

ここに画像を挿入説明

  1. AOPインターセプタクラスの設定

userRegister(...)2で@Before(値= "実行(パブリック* com.zijing.school.controller.UserController.userRegister(...))")。 "" パラメータは、ユーザが上を通過表し

@Component
@Aspect
public class UserAspect {
    private final Log log = LogFactory.getLog(UserAspect.class);

    @Before(value = "execution(public * com.zijing.school.controller.UserController.userRegister(..))")
    public void doBeforeRegister(JoinPoint joinPoint) {
        log.info(" 检查是否已经注册");
        Object[] obj = joinPoint.getArgs();
        for (Object argItem : obj) {
            System.out.println("---->now-->argItem:" + argItem);
            log.info(argItem + "");
//            if (argItem instanceof ParamVO) {
//                ParamVO paramVO = (ParamVO) argItem;
//                paramVO.setInputParam("666666");
//            }
//            System.out.println("---->after-->argItem:" + argItem);
        }
    }
}

2020年1月20日には、完成!デモを取得していない、カザフスタンは接続アドレスを保持します。

リリース5元の記事 ウォンの賞賛0 ビュー807

おすすめ

転載: blog.csdn.net/qq_41237503/article/details/104048441