zoukankan      html  css  js  c++  java
  • Spring学习(2)---IOC

    1、接口及面向接口编程

    2、什么是IOC

    3、Spring的Bean配置

    4、Bean的初始化

    5、Spring的常用注入方式

    (一)接口

    • 用于沟通的中介物的抽象化
    • 实体把自己提供给我外接的一种抽象化说明,用以由内部操作分离出外部沟通方式,使其被修改内部而不应现外接其他实体与其交互的方式
    • 对应java接口即声明,声明了哪些方法是对外公开提供的
    • 在Java8中,接口可以拥有方法体(在某种意义上,接口与抽象类具有相同的功能)

    (二)面向接口编程

    • 结构设计中,分清层次及调用关系,每层只向外(上层)提供一组功能接口,各层间仅依赖接口而非实现类
    • 接口实现的变动不影响各层间的调用,这一点在公共服务中尤为重要
    • “面向接口编程”中的“接口”是用于隐藏具体实现和实现多态性的组件

    (三)IOC

    • IOC:控制反转,控制权的转移,应用程序本身不负责依赖对象的创建和维护,而是由外部容器负责创建和维护
    • DI(依赖注入)是其一种实现方式
    • 目的:创建对象并且组装对象之间的关系

         PS:哪些方面的控制被反转了呢?

               获得依赖对象的过程被反转了,控制反转之后,获取依赖对象的过程由自身管理变成了有IOC容器自动注入(依赖注入)
               所谓依赖注入:就是由IOC容器在运行期间,动态地将某种依赖关系注入到对象之中

     (四)Spring的bean配置

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"  
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
           xsi:schemaLocation="http://www.springframework.org/schema/beans  
               http://www.springframework.org/schema/beans/spring-beans-4.1.xsd">  
          
        <bean id="oneInterface" class="com.interfaces.OneInterfaceImpl"></bean>  
    
        <bean id="user" class="com.ioc.User"> 
           <constructor-arg name="name" value="Json" /> 
           <constructor-arg name="age" value="22" /> 
        </bean>
    
    </beans>
    

    (五)Bean的初始化

    • 基础包:

            -- org.springframework.beans
            -- org.springframework.context
            -- BeanFactory提供配置结构和基础功能,加载并初始化Bean
            -- ApplicationContext保存了Bean对象并在Spring中被广泛使用

    •    方式,ApplicationContext

            -- 本地文件
            -- ClassPath
            -- Web应用中依赖的servlet或Listener

    示例:

    • 文件

               FileSystemXmlApplicationContext context = new FileSystemXmlApplicationContext("C:/spring/spring-ioc.xml");

    • Classpath

               ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("classpath:spring-ioc.xml");

    • Web应用

               <listener>
                   <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
               </listener>
               <servlet>
                  <servlet-name>context</servlet-name>
                  <servlet-class>org.springframework.web.context.ContextLoaderListener</servlet-class>
                  <load-on-startup>1</load-on-startup>
                </servlet>

     (六)Spring注入

    • Spring注入是指再启动Spring容器加载Bean配置的时候,完成对变量的赋值行为
    • 常用的注入方式

              - 设值注入
              - 构造注入

  • 相关阅读:
    C# 实现任务栏图标程序
    C#实现的木马之客户端
    sql基本语法
    水晶报表引用DataSet做数据源
    解决多线程操作控件时可能出现的异常:“在某个线程上创建的控件不能成为在另一个线程上创建的控件的父级”
    电子书籍制作工具软件大全
    C#实现的木马之服务端
    2进制、8进制、10进制、16进制...各种进制间的轻松转换
    VC# .Net中使用Crystal Report水晶报表
    P2P技术学习
  • 原文地址:https://www.cnblogs.com/JsonShare/p/4534732.html
Copyright © 2011-2022 走看看