全局变量与局部变量
今天这项目悲剧了,上线了才发现问题。找了2天,将生产环境下的应用放到开发环境测试都发现不了问题。
原因简单描述如下:
过多使用static全局变量,将一些敏感变量和方法都声明为全局变量,服务器启动起来了,这些变量被初始化后,值一直不曾改变,很傻的找错误,很傻的觉得自己很冤枉。以后尽量少用全局变量,不要偷懒,宁愿多用局部变量。
另外全局的方法也尽量少用,单机测试的时候也许发现不了错误,但是到互联网上运行,因为会有多个用户同时访问某个方法,并发访问的问题不是简单能在spring声明事务传播属性不行的。必须将这些方法作为局部方法嵌套到被声明成PROPAGATION_REQUIRED的事务中。
切记切记。
好了,以此标记一下,大家如何没看明白了就算了。也许在实际操作中慢慢体会就理解了,i am an old bird,so sad !
今天这项目悲剧了,上线了才发现问题。找了2天,将生产环境下的应用放到开发环境测试都发现不了问题。
原因简单描述如下:
过多使用static全局变量,将一些敏感变量和方法都声明为全局变量,服务器启动起来了,这些变量被初始化后,值一直不曾改变,很傻的找错误,很傻的觉得自己很冤枉。以后尽量少用全局变量,不要偷懒,宁愿多用局部变量。
另外全局的方法也尽量少用,单机测试的时候也许发现不了错误,但是到互联网上运行,因为会有多个用户同时访问某个方法,并发访问的问题不是简单能在spring声明事务传播属性不行的。必须将这些方法作为局部方法嵌套到被声明成PROPAGATION_REQUIRED的事务中。
切记切记。
好了,以此标记一下,大家如何没看明白了就算了。也许在实际操作中慢慢体会就理解了,i am an old bird,so sad !