先说说Spring框架

Spring框架

  1. Spring框架的作用
  2. Spring 的核心(IOC功能)
  3. SpringAOP功能

    原有的业务流程:请求—>servlet-->service-->多个dao—>jsp

    Spring一般将【servlet-->service-->多个dao—>jsp】交给IOC和AOP管理

    (管理组件对象,维护对象关系,降低组件耦合度)

  4.Spring Web MVC功能:MVC设计 目的:架构一个MVC结构的web程序

  注意:(2和3可选择)

  5.Spring整合其他技术,例如JDBC,Hibernate,struts,Mybatis等

  6.Spring—>整合API-à调用原有技术API()

  结构图如下:

SpringIOC

IOC概念:Inversion of Control控制反转或反向控制

控制反转:改变对象的获取方式。之前编码方式采用new构造器方式获取对象;IOC中用由容器创建对象之后注入进来使用。只要修改配置就可以改变对象关系,实现组件间的解耦。(管理创建组件对象,依赖注入信息)

  1. 管理对象,创建,初始化,释放资源,销毁

    2.维护对象关系

SpringIOC应用:

  

  1. 搭建SpringIOC开发环境

    ---引入相关jar包

    ---在src添加applicationContext.xml

  举例:

    1)  原始方法获得一个对象

      

1)  SpringIOC创建对象的方法

SpringIOC容器-->管理组件及对象关系

  1. 创建ApplicationContext对象
  2. 向applicationContext.xml配置<bean>
  3. 利用ApplicationContext对象getBean()

1)  在applicationContext.xml中添加 创建对象--->构造方法

ApplicationContext容器对象-->applicationCotext.xml--><bean>

2)静态工厂方法---C2

3)对象工厂方法(封装了对象创建细节)

<bean id=”date” factory-bean=”c2” factory-method=”getTime”></bean>

SpringIOC创建Bean对象的控制

1.控制对象创建方式(使用范围)

在bean元素中使用scope属性控制

可以支持singleton或prototype,默认是singleton

<bean scope=”singleton”>该组件在Spring 中只有一个bean对象</bean>

<bean scope=”prototype”>该组件在Spring 中每次ac.getBean(“id”)都返回一个新的对象</bean>

2.指定对象初始化方法

Java(原始方式使用构造器)

Spring方式:先在org.tarena.bean.ExampleBean中添加init方法,然后用<bean>元素的init-method指定初始化 方法

3.指定对象销毁方法:destroy-method属性

利用<bean>元素的destroy-method指定

满足下面条件才有效:

-----1)组件对象为单利模式

-----2)调用AbstractApplicationContext容器对象的close()方法

4.控制单例对象创建时机

在默认情况下,单例对象是Spring容器创建时实例化;可以使用<bean>元素的lazy-init=true属性将创建的时机推迟到getBean()方法调用时。

IOC维护对象关系

采用注入方式创建对象关系Dependency Injection依赖注入(DI)

依赖注入:set方法注入;构造器注入;

A. set方法注入

  

1)创建computer类,添加set和get方法

2)  在容器中配置信息

B.构造器注入

C:注入对象

Spring核心--IOC的更多相关文章

  1. Spring核心 IoC和AOP原理

    1. 什么是Spring Spring是一个轻量的Java开源框架,它简化了应用开发,实现基于POJO的编程模型.它的两大核心是:IoC(控制反转),AOP(面向切面编程). 2. IoC控制反转 简 ...

  2. Spring核心--IOC&AOP

    Ioc(控制反转) 所谓的控制反转就是应用本身不负责依赖对象的创建及维护,依赖对象的创建及维护是由外部容器负责的.这样控制权就由应用转移到了外部容器,控制权的转移就是所谓反转. AOP(面向切面编程) ...

  3. 简单解析Spring核心IOC容器原理

    将大体流程解析了一边,具体可以看源代码一个方法一个方法的跟下 XmlBeanFactory的功能是建立在DefaultListableBeanFactory这个基本容器的基础上的,并在这个基本容器的基 ...

  4. 获取spring的IOC核心容器,并根据id获取对象

    public class Client { /** * 获取spring的IOC核心容器,并根据id获取对象 * ApplicationContext的三个常用实现类 * classPathXmlAp ...

  5. 3. Spring 核心之 IOC(控制反转) & DI(依赖注入)

    注:此文摘自 http://blog.csdn.net/it_man/article/details/4402245 IOC(DI):其实这个Spring架构核心的概念没有这么复杂,更不像有些书上描述 ...

  6. 转 Spring源码剖析——核心IOC容器原理

    Spring源码剖析——核心IOC容器原理 2016年08月05日 15:06:16 阅读数:8312 标签: spring源码ioc编程bean 更多 个人分类: Java https://blog ...

  7. spring两个核心IOC、AOP

    Spring是一个开放源代码的设计层面框架,他解决的是业务逻辑层和其他各层的松耦合问题,因此它将面向接口的编程思想贯穿整个系统应用.Spring是于2003 年兴起的一个轻量级的Java 开发框架,由 ...

  8. Spring 核心之IOC 容器

    核心概念: IOC(Inversion of Control)控制反转:所谓控制反转,就是把原先我们代码里面需要实现的对象创建.依赖的代码,反转给容器来帮忙实现. DI(Dependency Inje ...

  9. Spring核心原理之IoC容器初体验(2)

    本文节选自<Spring 5核心原理> 1 IoC与DI基本概念 IoC(Inversion of Control,控制反转)就是把原来代码里需要实现的对象创建.依赖,反转给容器来帮忙实现 ...

随机推荐

  1. Perl正则表达式例子

    Perl正则表达式 一.介绍 正则表达式各语言都有自己的规范,但是基本都差不多,都是由元字符的组合来进行匹配:由于Nmap内嵌的服务与版本探测是使用的Perl正则规范,因此此篇博客记录一下Perl正则 ...

  2. 总结·CSS3中定位模型之position属性的使用方法

    一.position元素介绍 position属性规定了元素的定位类型,通过定位,可准确地定义元素相对于其正常位置而应该出现的位置,或者是相对于父元素.另一元素和浏览器窗口等的位置. position ...

  3. fpm 制作 rpm 包

    支持的 源类型包 ① dir : 将目录打包成所需要的类型, 可用于源码编译安装软件包 ② rpm : 对 rpm 包进行转换 ③ gem : 对 rubygem 包进行转换 ④ python : 将 ...

  4. while和do while循环的简要概述

    循环结构 1.while结构 在英文中"while"这个词的意思是"当",而在 Java 程序设计中,也可以将其理解为"当",其语法结构是: ...

  5. img如果没有图片显示默认图片效果

    img如果没有图片显示默认图片效果<img src="本来要显示的图片URL" onerror="this.src='图片挂了的话要显示的默认图片URL'" ...

  6. 记一次服务器Tomcat优化经历

    公司需要一台测试服务器来做测试用,所以花了几天时间把服务全部部署好,在部署好war包之后,发现Tomcat访问超级慢. 1.进入Tomcat的bin目录下,运行 ./catalina.sh run命令 ...

  7. 遇到ANDROID “call to opengl es api with no current context”错误

    延迟线程执行 Timer timer=new Timer();//实例化Timer类 timer.schedule(new TimerTask(){ public void run(){ buyed( ...

  8. Java读取数据源相关信息

    一.采用读取数据源配置文件的方式 package com.ofsp.utils; import java.io.IOException; import java.io.InputStream; imp ...

  9. .net入门 - Get Started with .NET

    阅读原文 有很多种方式去开始使用.net.因为.net是一个巨大的平台,在这个文档里面有很多文章,告诉你如何从不同的角度去开始使用.net. 使用.NET的语言入门 C#入门文章和C#教程提供了以C# ...

  10. VB6之反编译工具VBRezQ

    该软件的下载地址:http://www.xiazaiba.com/html/5276.html 网站上是这么介绍的: VBRezQ是一个针对VB程序的反编译软件.VBRezQ反编译的可读性尤其对早期版 ...