Spring IoC 的实现机制

Spring 中的 IoC 的实现原理就是工厂模式加反射机制。

  1. <span>interface<span> <span>Fruit<span> {</span></span></span></span>
  2. <span> &#xA0; &#xA0; <span>public<span> <span>abstract<span> <span>void<span> eat();</span></span></span></span></span></span></span>
  3. <span>}</span>
  4. <span>class<span> <span>Apple<span> <span>implements<span> <span>Fruit<span> {</span></span></span></span></span></span></span></span>
  5. <span> &#xA0; &#xA0;<span>public<span> <span>void<span> eat(){</span></span></span></span></span>
  6. <span> &#xA0; &#xA0; &#xA0; &#xA0;<span>System<span>.out.println(<span>"Apple"<span>);</span></span></span></span></span>
  7. <span> &#xA0; &#xA0;}</span>
  8. <span>}</span>
  9. <span>class<span> <span>Orange<span> <span>implements<span> <span>Fruit<span> {</span></span></span></span></span></span></span></span>
  10. <span> &#xA0; &#xA0;<span>public<span> <span>void<span> eat(){</span></span></span></span></span>
  11. <span> &#xA0; &#xA0; &#xA0; &#xA0;<span>System<span>.out.println(<span>"Orange"<span>);</span></span></span></span></span>
  12. <span> &#xA0; &#xA0;}</span>
  13. <span>}</span>
  14. <span>class<span> <span>Factory<span> {</span></span></span></span>
  15. <span> &#xA0; &#xA0;<span>public<span> <span>static<span> <span>Fruit<span> getInstance(<span>String<span> <span>ClassName<span>) {</span></span></span></span></span></span></span></span></span></span></span>
  16. <span> &#xA0; &#xA0; &#xA0; &#xA0;<span>Fruit<span> f=<span>null<span>;</span></span></span></span></span>
  17. <span> &#xA0; &#xA0; &#xA0; &#xA0;<span>try<span> {</span></span></span>
  18. <span> &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0;f=(<span>Fruit<span>)<span>Class<span>.forName(<span>ClassName<span>).newInstance();</span></span></span></span></span></span></span>
  19. <span> &#xA0; &#xA0; &#xA0; &#xA0;} <span>catch<span> (<span>Exception<span> e) {</span></span></span></span></span>
  20. <span> &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0;e.printStackTrace();</span>
  21. <span> &#xA0; &#xA0; &#xA0; &#xA0;}</span>
  22. <span> &#xA0; &#xA0; &#xA0; &#xA0;<span>return<span> f;</span></span></span>
  23. <span> &#xA0; &#xA0;}</span>
  24. <span>}</span>
  25. <span>class<span> <span>Client<span> {</span></span></span></span>
  26. <span> &#xA0; &#xA0;<span>public<span> <span>static<span> <span>void<span> main(<span>String<span>[] a) {</span></span></span></span></span></span></span></span></span>
  27. <span> &#xA0; &#xA0; &#xA0; &#xA0;<span>Fruit<span> f=<span>Factory<span>.getInstance(<span>"io.github.dunwu.spring.Apple"<span>);</span></span></span></span></span></span></span>
  28. <span> &#xA0; &#xA0; &#xA0; &#xA0;<span>if<span>(f!=<span>null<span>){</span></span></span></span></span>
  29. <span> &#xA0; &#xA0; &#xA0; &#xA0; &#xA0; &#xA0;f.eat();</span>
  30. <span> &#xA0; &#xA0; &#xA0; &#xA0;}</span>
  31. <span> &#xA0; &#xA0;}</span>
  32. <span>}</span>

Original: https://www.cnblogs.com/chinaifae/p/10443123.html
Author: 我是司
Title: Spring IoC 的实现机制

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/540719/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球