2018-03-08 11:07
@阿帕奇 1、服务层的设计本身就是单例无状态的;2、静态修饰对象在内存中始终保一份内存地址;何来的线程安全问题?
2018-01-30 18:29
@我要做菜鸟
1、其实如果你想这么去做是完全可以的,只需在代码生成器,设置下:gen.setGenerateDaoInModel(true),即可得到你想要结果。
2、至于为什么后来官方的club不推荐这么做的目的,就是防止如:Project.dao.findById()这类不好的使用习惯漫天飞,所引发问题的原因就是之前提到有"争议"的那个第5点问题信息量有关,在这不做解释了。
2018-01-25 19:27
@我要做菜鸟
1、建议你在提建议或反馈问题这点上,一定要给被建议人、问题回答人一看就明白你想表达的意思,不然就现在你所说的情况,一直在靠猜去解答你的问题或理解你的建议,是会有不同的见解与出入。
2、关于第5点你说这个太虚了是随着项目的演变也算是业界标准了,单靠我这里就一两句话说不出其中的奥妙的,因为涉及到的东西太广泛了,再进一步去拓展解析,呆会就觉得说得更虚了,因为每个人的认知理接触的面也不同,不太好去把握这个面,只能在实践中才能体会。
2018-01-25 12:57
首先,感谢你的反馈,其次关于这个话题怎么说着呢,我就简单分析下:
1、为什么要实例化是为了确保线程安全,java是本身就一门多线程语言。
2、如果只考虑单数据库配置这块就有些片面了,因为现实项目中有一些项目是多数据源的,且也可能是不同库配置,所以在构建一个框架时,这些基本情景是必须要周全考虑的。
3、再说用new创建实例关于性能问题其实可以基本忽略不计,这的话题印象曾经在osc上看到其他的兄弟讨论过,波总也亲自在上解答过,蛮久的了你去你翻翻看。
4、club他实例的dao你追踪到底层你就会看到其实他是个静态实例对象,关于静态变量在初始实例么后,他从系统生命周期到结束在内存中始终保存一份。
5、为什么在每个service上都会实例自己需要的dao这么做的目的是便于代码重构,提供依据,家都知道当大型项目中随着时间、需要、人员更变,项目中的代码、功能模块变得异常的庞大时你就会发现,设计之初不做一些习惯上的改变,当后期代码进行重构是件非常痛苦的事情。
2018-01-24 18:55
@JFinal 上面显示是JFinal3.2的呢,看数据分析我猜是用sql server数据库。哈哈