博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spring学习(2)---IOC
阅读量:6601 次
发布时间:2019-06-24

本文共 1529 字,大约阅读时间需要 5 分钟。

1、接口及面向接口编程

2、什么是IOC

3、Spring的Bean配置

4、Bean的初始化

5、Spring的常用注入方式

(一)接口

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

(二)面向接口编程

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

(三)IOC

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

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

           获得依赖对象的过程被反转了,控制反转之后,获取依赖对象的过程由自身管理变成了有IOC容器自动注入(依赖注入)

           所谓依赖注入:就是由IOC容器在运行期间,动态地将某种依赖关系注入到对象之中

 (四)Spring的bean配置

 

 

(五)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配置的时候,完成对变量的赋值行为
  • 常用的注入方式

          - 设值注入

          - 构造注入

 

转载于:https://www.cnblogs.com/JsonShare/p/4534732.html

你可能感兴趣的文章
Planner .NET日历日程控件能给你的应用程序提供多种日历日程功能
查看>>
我的友情链接
查看>>
Linux压力测试
查看>>
JAVA中的线程机制(二)
查看>>
nginx安装与配置2(转载)
查看>>
Linux下Mongodb安装和启动配置
查看>>
2015 成长计划
查看>>
沈阳一饭店凌晨爆燃,燃气报警器时刻预防
查看>>
Redis 与 数据库处理数据的两种模式
查看>>
VUE2中axios的使用方法
查看>>
assert 断言
查看>>
CS 229 notes Supervised Learning
查看>>
jQuery,ajax,for循环使用典型案例
查看>>
2018.10.27-dtoj-3996-Lesson5!(johnny)
查看>>
genimage.cfg.template hacking
查看>>
DataTable转换成json字符串
查看>>
RecyclerView重用导致的元素重复问题
查看>>
iOS网络协议----HTTP/TCP/IP浅析
查看>>
ubuntu 12.04 安装 redis
查看>>
IOS_CGRect
查看>>