zoukankan      html  css  js  c++  java
  • Spring中的IOC

    IOC(Inversion(反转)Of Control):控制反转;

    控制:资源的获取方式;

      主动式(要什么资源都自己创建即可):

        BookServlet{

          BookService bs=new BookService();

          AirPlane ap=new AirPlane();//复杂对象的创建是比较庞大的工程

        }

      被动式(资源的获取不是我们自己创建,而是交给一个容器来创建和设置):

        BookServlet{

          BookService bs;

          public void test01(){

            bs.checkout();

          }

        }

    容器:管理所有的组件(有功能的类);假设,BookService受容器管理,容器可以自动的探查出哪些组件(类)需要用到另写组件(类);容器帮我们创建BookService对象,并把BookService对象赋值过去;

    容器:主动的new资源变为被动的接受资源;

    DI:(Dependencey Injection)依赖注入;

        容器能知道哪个组件(类)运行的时候,需要另外一个类(组件);容器通过反射的形式,将容器中准备好的BookService对象注入(利用反射给属性赋值)到BookServlet

    只要是容器管理的组件,都能使用容器提供的强大功能


    HelloWorld;(通过各种方式给容器中注册对象)

    以前都是自己new对象,现在所有的对象交给容器创建;给容器中注册组件

    框架编程的流程

    1)、导包

    核心容器

      spring-beans-5.2.3.RELEASE.jar

      spring-context-5.2.3.RELEASE.jar

      spring-core-5.2.3.RELEASE.jar

      spring-expression-5.2.3.RELEASE.jar

      commons-logging-1.2.jar

    Spring运行的时候依赖一个日志包,没有就报错

    2)、写配置

      spring的配置文件中,集合了spring的ioc容器的所有组件

      创建一个Spring Bean Configuration File(Spring的bean配置文件)

    3)、测试

      


    new ClassPathXmlApplicationContext("spring-config.xml");意思是IOC容器的配置文件在类路径下
    FileSystemXmlApplicationContext("F://spring-config.xml");IOC容器的配置文件在磁盘路径下
    1)、组件的创建工作,是由容器完成

    2)、容器中对象的创建在容器创建完成的时候就已经创建好了
    3)、同一个组件在IOC容器中是单实例的,容器启动完成前就已经准备好了
    4)、IOC容器在创建这个组件对象的时候,(property)会利用setter方法为javaBean的属性进行赋值

    5)、javaBean的属性名是由什么决定的?
         getter/setter方法是属性名;set去掉后面那一串首字母小写就是属性名
     
     
     
  • 相关阅读:
    Centos7.3安装jdk和maven
    Centos7.3安装sftp服务和ssh
    Centos7.3安装,并设置网络和防火墙
    Docker 常用命令
    Tomcat配置
    MySQL配置
    配置JDK
    JTable的模型
    JavaBean和List<JavaBean>
    JavaBean
  • 原文地址:https://www.cnblogs.com/xing-29391/p/12342980.html
Copyright © 2011-2022 走看看