• Spring框架之控制反转和依赖注入


    学Spring框架必须理解控制反转和依赖注入。下面各自举一个例子,来说明控制反转和依赖注入。

    IOC(控制反转):应用本身创建和维护的依赖对象;现在交由外部容器(Spring)来创建和维护;这个控制权的转移;
    就叫做控制反转。

    第一步:配置applicationContextcreateproject.xml和applicationcontext.xml(总体)

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns:p="http://www.springframework.org/schema/p"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
            http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
            
         <bean id="create" class="createObject.CreateHelloWorld"  factory-method="create">
         
         
         </bean>  
    </beans>
    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns:p="http://www.springframework.org/schema/p"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
            http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
    
    <!-- 引用其他配置文件 -->
    
        <import resource="createObject/applicationContextcreateproject.xml"/>
    </beans>
    package createObject;
    
    public class CreateHelloWorld {
        //静态工厂
        public static HelloWord create(){
            
            return new HelloWord();
        }
    
    }
    package createObject;
    
    public class HelloWord {
        public void hellow(){
            System.out.print("hellow spring");
        }
    
    }

    测试类:

    package createObject;
    
    import org.springframework.context.ApplicationContext;
    import org.springframework.context.support.ClassPathXmlApplicationContext;
    
    public class texthell{
        public static void main(String[] args) {
    
        // TODO Auto-generated method stub
       //加载配置文件
           ApplicationContext context=new ClassPathXmlApplicationContext("applicationcontext.xml");
           HelloWord te=(HelloWord) context.getBean("create");
           te.hellow();
           
    }
    }

    效果图:

    DI(依赖注入):(控制反转的一个实现)在程序运行期间;动态的将依赖对象注入到组件当中(创建对象)new的工作交给spring来做;前提留接口;set get方法

    第一步:配置Springapplicationcontext.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns:p="http://www.springframework.org/schema/p"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
            http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
    
    <bean id="wanlix" class="com.Test.test">
    <property name="name" value="张嘎"/>
    <property name="speak" value="一天不打黄鼠狼,就憋屈"/>
    
    </bean>
    
    </beans>

    第二步:测试类

    package com.Test;
    
    import org.springframework.context.ApplicationContext;
    import org.springframework.context.support.ClassPathXmlApplicationContext;
    
    public class test {
        public String name;
        public String speak;
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public String getSpeak() {
            return speak;
        }
        public void setSpeak(String speak) {
            this.speak = speak;
        }
        public static void main(String[] args) {
            
            ApplicationContext context=new ClassPathXmlApplicationContext("applicationcontext.xml");
            
            test te=(test) context.getBean("wanlix");
            System.out.print(te.getName()+"说:"+te.getSpeak());
        }
    
    }

    效果图:

    您可以通过点击 右下角 的按钮 来对文章内容作出评价, 也可以通过左下方的 关注按钮 来关注我的博客的最新动态。 
    
    如果文章内容对您有帮助, 不要忘记点击右下角的 推荐按钮 来支持一下哦   
    
    如果您对文章内容有任何疑问, 可以通过评论或发邮件的方式联系我: 2276292708@qq.com
    
    如果需要转载,请注明出处,谢谢!!
    

      

  • 相关阅读:
    一道网易面试题
    OC的引用计数
    ReplayKit2 采集音视频回调格式分析
    《剑指offer3- 从末尾到头打印链表》
    《剑指offer
    《剑指offer
    ReplayKit2:声音回调时间戳问题
    UILable在Autolayout模式下面自动调节字体大小
    建表手写语句
    oracle创建主键序列和在ibatis中应用
  • 原文地址:https://www.cnblogs.com/wlx520/p/4728300.html
Copyright © 2020-2023  润新知