zoukankan      html  css  js  c++  java
  • 技术总结之SpringIOC

    1)SpringIOC核心模拟实现

    思路:初始化Spring容器时,从配置文件中读取定义好的Bean的信息,根据配置属性初始化后存入Spring容器中。

    当需要某个Bean时,直接从容器中通过id获取。

    步骤:

    a)创建一个Java工程,需要的依赖包(主要用来解析XML文件)如下图:

    wKioL1RoOnnxUf0CAADL3Vc3oHA761.jpg

    b)先模拟Spring在配置文件my-ioc.xml中定义两个简单的bean,内容如下:

    wKiom1RoOsuQKBGQAADCvIXs3Hw671.jpg

    c)按照上面的思路来模拟Spring实现我们自己的IOC容器MyIOCContext,实现如下:

    1. public class MyIocContext {

    2. private final Map<String, Object> beanMap = new HashMap<String, Object>();

    3. public MyIocContext(String fileName) {

    4. init(fileName);

    5. }

    6. private void init(String fileName) {

    7. }

    8. public Object getBean(String id) {

    9. return beanMap.get(id);

    10. }

    11. }

    其中init的实现如下:

    wKioL1RoPEihnwLmAAInaLOpOzA217.jpg

    d)测试:

    1. public class MyIocTest {

    2. private MyIocContext ctx = null;

    3. @Before

    4. public void setUp() throws Exception {

    5. ctx = new MyIocContext("my-ioc.xml");

    6. }

    7. @Test

    8. public void testIoc() throws Exception {

    9. Hello hello = (Hello) ctx.getBean("hello");

    10. hello.say("My IOC Context");

    11. }

    12. }

    结果为:

    wKiom1RoPLCSCVZiAACi8i0QxgA141.jpg

    至此,IOC容器的核心实现完成。

     

    2)Spring依赖注入方式

    a)手动注入

    • 构造器注入。

    • 属性setter注入。

    • 使用Field注入(用于注解方式),如下:

    1. @Autowired:按照类型注入

    2. @Resource:按照名称注入,如果失败再按照类型注入。如果指定了name,则只按照名称注入。

     

    b)自动注入

    在XML中配置,<bean id="" class="" autowire="byType" />

     

  • 相关阅读:
    WEB测试方法(二)
    WEB测试方法(一)
    JSP技术(六)
    JSP技术(七)
    JSP技术(四)
    JSP技术(三)
    JSP技术(五)
    JavaScript语言和jQuery技术(四)
    单元测试的四个阶段
    什么是集成测试
  • 原文地址:https://www.cnblogs.com/dyllove98/p/4101838.html
Copyright © 2011-2022 走看看