zoukankan      html  css  js  c++  java
  • Struts2学习-Ioc学习-spring

    1、面向对象写法(带着面向过程的思维)
    电脑 computer = new 电脑();
    【电脑代码中 new 打印机()】
    computer.打印文本("hello 140");

    电脑和打印机告诉耦合
    --------------------------------------
    2、改进,电脑类中,不再new 打印机,采用注入方式
    电脑 computer = new 电脑();
    打印机 printer = new 打印机();
    computer.setPrinter(printer);

    把电脑和打印机解耦
    但是,仍然存在一个问题:只有1台打印机,不能换
    --------------------
    3、改进,把打印机设置一个接口,分别添加2个实现类(分别是黑白和 彩色)
    电脑 computer = new 电脑();
    打印机 printer = new 彩色打印机();
    computer.setPrinter(printer);

    好处:切换打印机的时候,无须修改电脑类,
    电脑和打印机彻底解耦

    还有有问题:如果切换打印机,是改代码
    (虽然不用改电脑类、也不要改各个打印机的类,
    但是还是需要改测试调用类)
    -----------------------
    4、引入ioc重要思想:把new一个实现类的控制权,
    从程序员从交出来,交给spring

    在编码过程中,程序员是绝对不知道实现类是谁。
    只要你知道,你已经错了。

    学会:衣来伸手,饭来张口。
    spring给你什么,你就用什么
    --------------------------
    5、改进spring
    (属性的赋值,由代码改为spring注入)

    -------------------------

    http://www.cnblogs.com/xdp-gacl/p/4249939.html

    http://www.cnblogs.com/ITtangtang/p/3978349.html

    -----------------------------------

    图解

    1.新建空项目,配置spring

    <!--配置spring-->
        <!-- spring-context 已经包含了Core,Bean  -->
        <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-context</artifactId>
          <version>5.0.0.RELEASE</version>
        </dependency>
    
        <!-- 和struts结合时,需要web,Struts 2 Spring Plugin 2个东西 -->

    2.测试类

    原本是要写这些代码的

    电脑I computer = (电脑I) context.getBean("computer");
            打印机I printer = (打印机I)context.getBean("printer");
    
            System.out.println(computer);
            System.out.println(printer);
            computer.玩游戏();
            computer.打印文本("hello 140");
    View Code

    但引入spring后

     //1.先拿到一个spring容器
            ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
            //2.拿1台电脑
            电脑I computer = (电脑I) context.getBean("computer");
            computer.打印文本("hello 140");

    3.因为我们有三个class,所以<bean>三个

    <bean id="computer" class="com.nf.test.笔记本电脑">
            <!-- ref="printer2"只要修改这里就可以使用-->
            <property name="printer" ref="printer1"></property>
    
        </bean>
    
        <bean id="printer1" class="com.nf.test.黑白打印机"></bean>
        <bean id="printer2" class="com.nf.test.彩色打印机"></bean>

    地址:https://gitee.com/MuNianShi/ioc-spring.git

  • 相关阅读:
    DATA_PUMP_DIR impdp 指定导出目录
    MasScan
    VMWare:vSphere6 企业版参考序列号
    ORA-12519: TNS:no appropriate service handler found 解决
    百度IOT
    IPMI远程管理一点记录
    关于parallel(并行)的几个基本常识
    hdu 4811 数学 不难
    关于i++ 和 ++i
    sqlplus中怎么将你全部的操作和结果记录保存到你指定的文件里
  • 原文地址:https://www.cnblogs.com/junhua4254/p/7681601.html
Copyright © 2011-2022 走看看