今回はアノテーションインターセプターを実装する springmvc について説明します。 springmvc がアノテーションインターセプターを実装するための 注意事項 は何ですか? 以下は実際的なケースです。
最近 SpringMvc でプロジェクトを書いていたときに、メソッドの認証の問題に遭遇しました。 1 日かけて解決したので、以下の解決策を見てみましょう。プロジェクト要件
:ユーザーログインでのみ実行できる操作など、認証が必要な場合は、ラベルを付けるだけで済みます。通常、メソッドを実行するときに最初にユーザーの身元を確認します。これにより、実質的に作業負荷が増加します。 Java アノテーションを使用すると、認証が必要なメソッドにラベルを付けるだけで済みます。 解決策:
1. まずアノテーションクラスを作成します:@Documented @Inherited @Target({ElementType.METHOD,ElementType.TYPE}) @Retention(RetentionPolicy.RUNTIME) public @interface Auth { boolean validate() default true; }
public class AuthInterceptor extends BaseInterceptor{ @Override public Boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { if(handler.getClass().isAssignableFrom(HandlerMethod.class)){ Auth authPassport = ((HandlerMethod) handler).getMethodAnnotation(Auth.class); //没有声明需要权限,或者声明不验证权限 if(authPassport==null){ return true; } else{ //在这里实现自己的权限验证逻辑 if(true){ //如果验证成功返回true(这里直接写false来模拟验证失败的处理) System.out.println("执行权限校验了"); return true; } else{ //如果验证失败 //返回到登录界面 // System.out.println("权限校验对了"); // response.sendRedirect("account/login"); return false; } } } else{ return true; } } }
構成ファイル
をカスタマイズした場合は、定義した構成ファイルに直接それを置くこともできます<mvc:interceptors> <bean class="com.benxq.shop.user.interceptors.AuthInterceptor"/> </mvc:interceptors>
<servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>*.jpg</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>*.png</url-pattern> </servlet-mapping>
PHP で JSONAPI を使用する方法
以上がspringmvc はアノテーションインターセプターを実装しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。