`

play2.x注解实现

阅读更多
play2框架上实现自己的注解很容易,只要两步

一、定义annotation类:

package actions;

import play.mvc.With;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Inherited;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;


@With(MyLogAction.class)
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.METHOD, ElementType.TYPE})
@Inherited
@Documented
public @interface MyLog{
    String msg() default "hello world";
}

二、定义Action类
package actions;

import play.libs.F;
import play.mvc.Http.Context;
import play.mvc.Action;
import play.mvc.SimpleResult;

public class MyLogAction extends Action<MyLog>{
    @Override
    public F.Promise<SimpleResult> call(Context context) throws Throwable{
        System.out.println("logger: " +  configuration.msg());
        return delegate.call(context);
    }
}

最后,使用的话,可以在方法或者类上面使用注解@MyLog,或者@MyLog(msg="ooxxoo")。

利用注解,可以用来很容易实现细粒度的权限的过滤,统一登录验证,还有filter的功能等
分享到:
评论

相关推荐

    play1.x连接mongodb

    总结来说,通过Play 1.x与MongoDB的集成,我们可以利用Morphia实现高效的数据操作。配置正确的连接信息,定义数据模型,以及在代码中使用Datastore接口,是连接并操作MongoDB的关键步骤。同时,确保进行充分的单元...

    strtust1_1_.x入门.

    尽管Struts1_1_.x在当时有着广泛的应用,但随着技术的发展,它逐渐被Spring MVC、Play Framework等更现代的框架取代。这些新框架提供了更好的注解支持、依赖注入和模块化设计,使得开发更加高效和灵活。 七、学习...

    PlayBasics:我的有关Play Framework 2.x的系列教程的示例代码

    《PlayBasics:深入探索Play Framework 2.x的实践指南》 在当今的Web开发领域,Play Framework 2.x以其高效、灵活和易用性,成为Scala和Java开发者青睐的框架之一。本教程系列——"PlayBasics",旨在帮助初学者及有...

    play framework测试项目

    在Play项目中,这些组件通常通过注解和路由配置来组织和定义。 描述中提到的"play 1.X"指的是Play Framework的第一个主要版本系列。这个版本在当时引入了许多创新特性,比如使用Ebean作为默认的ORM(对象关系映射)...

    BookStore-App-In-Play:玩中的Bookstore应用2.5.x

    5. **依赖注入**:Play 2.5.x内置了Guice作为默认的依赖注入(DI)容器,允许开发者通过注解来管理对象的生命周期和依赖关系,增强了代码的可测试性和可维护性。 **更新至Play 2.6** 描述中提到,此应用已更新以...

    demo-securesocial:带有 SecureSocial 身份验证的 Play Framework 2.3.x 模板

    通过这个模板项目,你将获得关于 Play Framework 2.3.x 和 SecureSocial 结合使用的实践经验,了解到如何在实际应用中实现安全的身份验证和授权。这将为你在开发需要用户管理功能的 Web 应用时提供宝贵的知识和指导...

    dn-resovler-1.3.2.zip

    当这两者结合,便催生了“play2-elasticsearch”模块,为Play Framework 2.x的应用程序提供无缝对接Elasticsearch的能力。 "dn-resolver-1.3.2.zip"可能是另一个与DNS解析相关的项目,但在这里我们将重点讨论"play2...

    android 下用org.apache.commons.mail.HtmlEmail发送邮件所需的jar包

    通常,这些JAR文件会包含`commons-email-x.x.x.jar`,其中x.x.x代表具体的版本号。 在Android Studio项目中,你可以将JAR文件放入`app/libs`目录,然后通过以下步骤将其添加到构建路径中: 1. 右键点击JAR文件,...

    auto.js安装包:app-v6-armeabi-v7a-release-unsigned-signed.apk

    3. `firebase-annotations.properties`, `firebase-encoders.properties`:这些文件与Firebase服务有关,可能涉及到数据模型的注解和编码规则,用于Firebase数据库或Firestore的数据存储和解析。 4. `vision-...

    struts各个版本jar包汇总

    - **现代框架对比**:Struts 2与Spring MVC、Play Framework等现代框架相比,可能存在维护成本高、社区活跃度低等问题,开发者需要权衡选择。 总之,了解并掌握Struts的各个版本及其特性,对于理解Web开发的历史...

    play-java-dagger2-example:使用Dagger 2进行编译时DI的播放应用程序

    由于提供的信息不完整,我们无法深入了解项目的具体细节,但可以肯定的是,这个项目涉及到将Dagger 2集成到Play Framework中,以实现更加高效和可维护的代码结构。 **标签解析:** - "sample":这是一个示例项目,...

    SpringMVC文档.zip_spring mvc

    2. **Spring MVC与Play Framework比较** - Play Framework是另一个流行的Web框架,文档可能探讨了两个框架在开发模式、性能、社区支持等方面的异同。 3. **Spring框架基础** - "sping .docx"可能涵盖了Spring框架...

    Struts原理与实践(二).rar

    - **Struts 2的升级**: 如果是旧版Struts 1.x项目,可以考虑迁移到Struts 2,它提供了更多特性,如更强大的表达式语言和插件系统。 **4. Struts与Spring整合** - 使用Spring管理Action的生命周期,方便依赖注入,...

    java 常见的面试题

    16. **Struts版本对比**:Struts1.x基于ActionForm,而Struts2.x使用POJO(Plain Old Java Object)和注解,后者更灵活,支持更多框架集成。 17. **MVC实现**:模型由业务逻辑对象组成,视图负责呈现数据,控制器...

    webview播放在线视频

    为了防止XSS(跨站脚本攻击)和CSRF(跨站请求伪造),在加载网页前应确保网页来源可信,并使用`addJavascriptInterface`的`@JavascriptInterface`注解标记暴露给JavaScript的方法,因为这个注解会自动阻止不安全的...

    proguard最新版本proguard6.0.13

    使用ProGuard 6.0.13时,开发者可以通过配置文件(proguard.cfg或proguard-rules.pro)定制混淆规则,例如保留特定的类、方法和注解,以确保关键代码不受混淆影响。 在实际项目中,为了充分利用ProGuard,开发者...

    play-scala-secure-session-example:显示加密会话管理的示例Play应用程序

    这个名为"play-scala-secure-session-example"的项目提供了一个实际的例子,展示了如何在Play Framework中实现安全的会话管理,确保用户数据的隐私和安全性。 **1. Play Framework 简介** Play Framework是一个开源...

    最火的Android开源项目

    ActionBarSherlock是一个库项目,为Android 2.x及更高版本提供了对Action Bar的支持。Action Bar是Android 3.0引入的一个设计元素,用于提供应用导航和操作,但在早期版本中并不支持。这个库使得开发者能够在较旧...

    swagger-core,用于生成swagger api规范的示例和服务器集成,该规范允许轻松访问restapi.zip

    2. **服务器端集成**:它能够与多种服务器框架集成,如 Jersey、Spring MVC 和 Play Framework,帮助开发者快速构建符合 Swagger 规范的 REST 服务。 3. **文档生成**:通过解析源代码,Swagger Core 可以自动生成...

    struts学习

    因此,后来出现了Struts 2,它继承了Struts 1的优点,并引入了更多现代框架的特性,如OGNL表达式语言、拦截器、注解配置等,提高了开发效率和可扩展性。 总的来说,Struts是Java Web开发中一个里程碑式的框架,对...

Global site tag (gtag.js) - Google Analytics