使用SSM时的对象管理问题
2017-08-29 17:58
295 查看
Spring是现在超级流行的框架,而且十分强大。但是总有奇葩的人,有人在使用spring的时候,没有去容器中取注册好的对象,而是通过new的方法去取。
例如,在ReceiptListController中注入了ReceiptListService对象
在ReceiptListService中注入了其他Dao层的对象
那么如果在ReceiptListController通过new的方式去创建ReceiptListService对象,那么是否可以取到Dao层的实例对象呢?
经过实践证明,是取不到Dao层的对象的!原因是在容器启动的时候,spring会去扫描注解,然后通过反射注入,把对象注入进去,所以在spring容器中的所以对象都是已经实例化好的了。所以,必须要去容器中取,才能取到注入好的对象。而通过new方式创建的对象,相当于创建了多一个对象的实例,所以通过@Resource的方式注入不了对象。这个是个人实践的观点,不信者可亲自试下。
例如,在ReceiptListController中注入了ReceiptListService对象
在ReceiptListService中注入了其他Dao层的对象
那么如果在ReceiptListController通过new的方式去创建ReceiptListService对象,那么是否可以取到Dao层的实例对象呢?
经过实践证明,是取不到Dao层的对象的!原因是在容器启动的时候,spring会去扫描注解,然后通过反射注入,把对象注入进去,所以在spring容器中的所以对象都是已经实例化好的了。所以,必须要去容器中取,才能取到注入好的对象。而通过new方式创建的对象,相当于创建了多一个对象的实例,所以通过@Resource的方式注入不了对象。这个是个人实践的观点,不信者可亲自试下。
相关文章推荐
- Delphi 接口使用中,对象生命周期管理,如何释放需要注意的问题
- Tomcat使用Spring管理对象出现HashMap死循环的问题
- Delphi 接口使用中,对象生命周期管理,如何释放需要注意的问题
- 自动资源释放-使用对象管理资源,解决资源泄露问题
- Delphi 接口使用中,对象生命周期管理,如何释放需要注意的问题
- 使用Java Annotations来管理对象的生命周期
- C#中使用SQL Server分布式管理对象(SQL-DMO)
- 对象缓冲池--采用最近最久未使用策略(LRUCache )管理对象,同时带有事件监听功能[改正版]
- VB.NET中使用SQL Server分布式管理对象(SQL-DMO)
- 使用对象来管理资源
- 对象池(对象缓冲池)--采用最近最久未使用策略管理对象,同时带有事件监听功能
- linux服务器管理相关问题(三)--使用crontab
- 使用定时器解决对象事件中自释放的问题
- 有关对象克隆和使用了prototype后,for..in语句的问题
- union中使用类对象的问题
- linux服务器管理相关问题(二)--使用logrotate管理日志
- ASP中使用FSO提示“Automation服务器不能创建对象”的问题
- 一则关于对象的使用原则,也许编程十年了,也没注意到的问题
- 使用HGE时管理资源的问题..
- [原创]使用Microsoft.Web.UI.WebControls的iewc轻松解决权限 4000 树问题(无限级权限管理)2