java - spring mvc 的controller 一般都是单例的?
阿神
阿神 2017-04-17 12:01:52
[Java讨论组]
阿神
阿神

闭关修行中......

全部回复(1)
ringa_lee

通常单例就够用了,性能略好一点点,不过单例对象就不能注入一些 scope 较小的其他对象了。

如果这么写

@Controller
@Scope("request")

那么你的 controller 就可以注入 request, session, singleton 范围的对象,作为它的某个 field。

如果这么写

@Controller
@Scope("session")

那么你的 controller 就只能注入 session, singleton 范围的对象。(只是举例,不要把 controller 放到 session 里,session 只适合存放会话数据)

如果写 @Scope("prototype"),就近似于 request,具体跟 Spring MVC 的实现有关。

如果是单例,就只能注入 singleton 范围的对象,你硬要注入别的也未必不行,但是会有逻辑错误。

顺便吹一下我的博文《对象设计要考虑有效范围》 http://segmentfault.com/blog/sorra/1190000000666877

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号