为什么80%的码农都做不了架构师?>>>   

在Play1.2.4中Controller中的方法需要static修饰符号才能成为一个Action。 所以像获取pageNum和searchword参数时只能够在Action中定义临时变量来存储参数。这样必然会存在大量重复的代码,比如像下面两个Action中就存在重复的代码。

有n多次我想把这几个变量定义到BaseController中去,然后在Action中直接使用,但没有成功。

这几个变量应当为Controller的私有属性,不能使用static关键字进行修饰,但是Action又是使用static进行修饰的,没法操作私有属性。

为什么这几个变量不能使用static进行修饰?

虽然使用static进行修饰之后程序看似似乎没有任何的问题。但实质上会存在线程安全问题,A看到搜索的结果可能是由B输入的关键词搜索的结果,所以万万是不能使用static修饰Controller的私有属性的。 当然可以使用ThreadLocal来包装这些变量使得程序变得线程安全,但是这样的使用方式未免代价太大。

好在Play在之后的版本没有使用static修饰Action ,这应该可以让Controller变得更加灵活。

转载于:https://my.oschina.net/qidis/blog/2395811

关于playframework1.2.4 static 关键字使用的一些思考相关推荐

  1. c语言中external,static关键字用法

    static用法: 在C中,static主要定义全局静态变量.定义局部静态变量.定义静态函数. 1.定义全局静态变量:在全局变量前面加上关键字static,该全局变量变成了全局静态变量.全局静态变量有 ...

  2. Java 静态变量,静态方法,静态常量(java static 关键字)

    Java 静态变量,静态方法,静态常量  就是变量 ,方法,常量前面添加了static 关键字 为什么要使用静态的呢 有时候在处理问题时会需要两个类在同一个内存区域共享一个数据, 不如现在 Main ...

  3. static关键字用法

    static关键字 1.修饰成员变量 在我们平时的使用当中,static最常用的功能就是修饰类的属性和方法,让他们成为类的成员属性和方法,我们通常将用static修饰的成员称为类成员或者静态成员,这句 ...

  4. Java中的static关键字的用法

    1.静态方法 static:通常在一个类中定义一个方法为static,那就是说,无需本类的对象即可调用此方法 声明为static的方法有以下几条限制: (1)它们仅能调用其他的static方法. (2 ...

  5. java的static关键字

    java的static关键字 静态变量和静态方法 static关键字最基本的用法是: 1.被static修饰的变量属于类变量,可以通过类名.变量名直接引用,而不需要new出一个类来 2.被static ...

  6. 面试季,Java中的static关键字解析

    点击上方"方志朋",选择"置顶或者星标" 你的关注意义重大! static关键字是很多朋友在编写代码和阅读代码时碰到的比较难以理解的一个关键字,也是各大公司的面 ...

  7. c++语言static作用,详解c++中的 static 关键字及作用

    注:若没有特指是 静态成员时,默认都是普通成员: 1 类中的普通成员 类中的成员变量 和 成员函数 是分开存储的.其中, 1)每个对象都有独立的成员变量:成员变量可以存储在 栈空间.堆空间.全局数据区 ...

  8. static关键字了解解析

    什么是static关键字 static关键字我们经常接触,不过我们一直没有讨论过它到底是什么,有什么具体的作用,那static关键字是什么呢,有啥用呢? static是静态的意思,是一个修饰符,就像是 ...

  9. Java中的static关键字详解

    ** Java中的static关键字详解 ** 在一个类中定义一个方法为static,即静态的,那就是说无需本类的对象就可以调用此方法.调用一个静态方法就是 "类名.方法名" ,静 ...

最新文章

  1. R语言使用gganimate包和ggforce包可视化动画并动态缩放(zoom)移动动画的内容
  2. 解决tomcat控制台乱码问题
  3. MySQL数据库从入门到实战(四)
  4. RDIFramework.NET V2.9版本多语言的实现
  5. TensorFlow for Hackers - Part II
  6. 为啥地址线是20根则存储单元个数为2的20
  7. 简述mysql 存储引擎_Mysql基础-存储引擎简述
  8. Hadoop入门(二十四)Mapreduce的求TopK程序
  9. 【渝粤教育】国家开放大学2019年春季 2114人体解剖生理学 参考试题
  10. C++11新特性之八——函数对象function
  11. creo配置文件config选项详解_5年资深架构师重点聚焦:SpringBoot的配置详解+内嵌Servlet容器
  12. MongoDB Documents
  13. useState用法指南
  14. 酷柚易汛工资条代码全开源,方便二次开发
  15. 如何用python爬取抖音视频列表
  16. 腾讯面试算法题——编码
  17. 移动端开发入门--基础知识
  18. 淘宝APP用户行为数据分析案例(附python代码及注释)
  19. 快速填充表格中的空单元格
  20. 【深度学习】手写数字识别Tensorflow2实验报告

热门文章

  1. XShell多版本存在后门,避免服务器账号密码被上传
  2. zabbix4.0 mysql本地数据库迁移到腾讯云数据库
  3. PowerShell 以管理员身份运行 cmd(命令行窗口),或其他程序
  4. 力扣题目——1249. 移除无效的括号
  5. UncategorizedSQLException异常处理办法
  6. 【IDEA】关于 IDEA 中新建 web 项目的 webapp 文件夹没有小蓝点 ,启动服务,访问不到解决方案
  7. 字符串类型日期时间转换为Date类型解析转换异常java.text.ParseException: Unparseable date: “2019-09-27T18:31:31+08:00”
  8. Android 自定义拍照,解决图片旋转,拍照参数设置兼容问题
  9. 关于解决“用系统U盘安装win7却提示‘缺少所需的CD/DVD驱动器设备驱动程序’”的问题
  10. idea 文件只读不可编辑--解决方法