免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
Spring.NET教程(五)

Spring.NET教程(五)——容器中對象的作用域(基礎(chǔ)篇)

2018年05月23日 10:43:41 Wang Jianguo 閱讀數(shù):84

        容器中象的部署分兩種方式:singleton和非singleton(javaprototype)。里的singleton指的是例模式,就是當一個象被定義為singleton,容器中就只會有一個共享的例,任何候通id該對象都會返回個共享例的引用(也就是說這象只會被創(chuàng)建一次)。當使用非singleton,或者原型模式布署,每次象都會創(chuàng)建新的例。在某些合,如果需要每個用返回獨的用戶對象或其它象,非singlton布署模式就比理想。Spring.NET認為singleton模式。每次調(diào)GetObject方法得到的都是同例;當singleton="false",每次調(diào)GetObject方法得到的是不同的。

  1. <?xml version="1.0" encoding="utf-8" ?>
  2. <objects xmlns="http://www.springframework.net">
  3. <!--單例模式-->
  4. <object id="personDao" type="SpringNetScopes.PersonDao, SpringNetScopes"/>
  5. <!--非單例模式-->
  6. <object id="person" type="SpringNetScopes.Person, SpringNetScopes" singleton="false" />
  7. <!--調(diào)用時加載-->
  8. <object id="personServer" type="SpringNetScopes.PersonServer, SpringNetScopes" lazy-init="true"/>
  9. </objects>
  1. namespace SpringNetScopes
  2. {
  3. public class PersonDao : IPersonDao
  4. {
  5. public PersonDao()
  6. {
  7. Console.WriteLine("PersonDao被實例");
  8. }
  9. public override string ToString()
  10. {
  11. return "我是PersonDao";
  12. }
  13. ~PersonDao()
  14. {
  15. Console.WriteLine("PersonDao被銷毀");
  16. }
  17. public void Save()
  18. {
  19. Console.WriteLine("保存 Person");
  20. }
  21. }
  22. public class Person
  23. {
  24. public Person()
  25. {
  26. Console.WriteLine("Person被實例");
  27. }
  28. public override string ToString()
  29. {
  30. return "我是Person";
  31. }
  32. ~Person()
  33. {
  34. Console.WriteLine("Person被銷毀");
  35. }
  36. }
  37. public class PersonServer
  38. {
  39. public PersonServer()
  40. {
  41. Console.WriteLine("PersonServer被實例");
  42. }
  43. public override string ToString()
  44. {
  45. return "我是PersonServer";
  46. }
  47. ~PersonServer()
  48. {
  49. Console.WriteLine("PersonServer被銷毀");
  50. }
  51. }
  52. }
  53. [TestMethod]
  54. public void CreateWithSingleton()
  55. {
  56. string[] xmlFiles = new string[]
  57. {
  58. "assembly://SpringNetScopes/SpringNetScopes/Objects.xml"
  59. };
  60. IApplicationContext context = new XmlApplicationContext(xmlFiles);
  61. IObjectFactory factory = (IObjectFactory)context;
  62. object obj1 = factory.GetObject("personDao");
  63. object obj2 = factory.GetObject("personDao");
  64. Assert.AreEqual(obj1, obj2);
  65. }
  66. [TestMethod]
  67. public void CreateWithOutSingleton()
  68. {
  69. string[] xmlFiles = new string[]
  70. {
  71. "assembly://SpringNetScopes/SpringNetScopes/Objects.xml"
  72. };
  73. IApplicationContext context = new XmlApplicationContext(xmlFiles);
  74. IObjectFactory factory = (IObjectFactory)context;
  75. object obj1 = factory.GetObject("person");
  76. object obj2 = factory.GetObject("person");
  77. Assert.AreNotEqual(obj1, obj2);
  78. }
  79. [TestMethod]
  80. public void CreateWithLazy()
  81. {
  82. string[] xmlFiles = new string[]
  83. {
  84. "assembly://SpringNetScopes/SpringNetScopes/Objects.xml"
  85. };
  86. IApplicationContext context = new XmlApplicationContext(xmlFiles);
  87. IObjectFactory factory = (IObjectFactory)context;
  88. object dao = factory.GetObject("personDao");
  89. Console.WriteLine(dao.ToString());
  90. object server = factory.GetObject("personServer");
  91. Console.WriteLine(server.ToString());
  92. }
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Spring.NET教程(四)
spring.net (3)依賴注入基礎(chǔ)2
Queue 基本使用 DIY
C#數(shù)據(jù)類型
vb.net和c#語法比較
C#學(xué)習(xí)筆記(五)——面向?qū)ο笈c類型基礎(chǔ)
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服