一、IoC

IoC是一种概念,是一种思想,指将传统上由程序代码直接操控的对象调用权交给容器,通过容器来实现对象的装配和管理。控制反转是对对象控制权的转移,从程序代码本身反转到外部容器。

当前IoC比较流行的两种实现方式:依赖注入(DI)和依赖查找(DL)。

依赖注入,目前最优先的解耦方式,程序代码不做定位查询,这些工作由容器自行完成。

二、传统开发方式的缺点

Spring三层架构:

 @Test
public void test01() {
ISomeService service=new SomeServiceImpl();
service.dosome();
}

test相当于view层,view层和service层耦合在一起,service实现类改动,view层便需要改动,耦合度高。

三、Spring配置文件

打开spring-framework-4.3.2.RELEASE\docs\spring-framework-reference\html\xsd-configuration.html,复制以下代码到applicationContext.xml

<?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.xsd"> <!-- bean definitions here --> </beans>

配置XML Catalog

四、从容器中获取对象

(1)在applicationContext.xml中注册Service

 <bean id="myservice" class="com.jmu.service.SomeServiceImpl"></bean>

相当于

SomeServiceImpl myService=new SomeServiceImpl();

(2)创建容器对象,加载Spring配置文件

 @SuppressWarnings("resource")
@Test
public void test02() {
//创建容器对象
ApplicationContext ac=new ClassPathXmlApplicationContext("applicationContext.xml");
ISomeService service=(ISomeService) ac.getBean("myService");
service.dosome();
}

 五、ApplicationContext和BeanFactory容器的区别

  1. ApplicationContext容器在进行对象初始化时,会将其中的所有Bean(对象)进行创建;
  2. BeanFactory容器中的对象,在容器初始化时,并不会被创建,而是在真正获取该对象的时,才被创建;
  Application BeanFactory
优点 响应速度快 不多占用系统资源
缺点 占用系统资源(内存、cpu) 相对来说,响应速度慢

Spring_Spring与IoC_第一个程序的更多相关文章

  1. Android开发-之第一个程序:HelloWorld!

    小编觉得不管学习什么编程的时候,第一个程序都是要求打印输出一个"HelloWorld!",那就从最简单的HelloWorld开始吧!哈哈~~~~ 一.创建一个Android工程 1 ...

  2. [Fluent NHibernate]第一个程序

    目录 写在前面 Fluent Nhibernate简介 基本配置 总结 写在前面 在耗时两月,NHibernate系列出炉这篇文章中,很多园友说了Fluent Nhibernate的东东,也激起我的兴 ...

  3. rails再体验(第一个程序)

    掌握redmine plugin开发的目标在2016年未实现,2017年继续. 选择<Ruby on Rails Tutorial>教程,windows安装railsinstaller,该 ...

  4. OpenGL学习笔记1——第一个程序

    学习的参考书基本是按照GL编程指南,如果有消息机制概念,对于GLUT的理解是很自然的.下面就按照自己写的第一个程序详细解释一下GL,还是比较容易上手的. 程序实现的功能是,根据当前随即种子摇出来的结果 ...

  5. Android 第一个程序 及 环境搭配

    一. JDK配置 1.找到jdk安装路径 2.配置环境变量(建议配置在系统变量里面) 1).配置JAVA_HOME变量 2).配置 CLASSPATH 环境变量 CLASSPATH=.;%JAVA_H ...

  6. unix 网路编程(卷一)第一个程序编译过程

    unix卷一去年暑假买的到现在才开始看无比惭愧,而且惭愧第一个程序就断断续续弄了几天,要好好写程序了,马上要找工作了,下面介绍下把本书第一个程序跑起来的过程: 搜各种博客 我用系统的是ubuntu 1 ...

  7. Hadoop学习历程(三、第一个程序)

    根据之前的操作,我们已经可以正常的启动Hadoop了,关于真正的集群我会在之后进行说明.现在我们来看一下第一个程序吧 1. 在eclipse上建立一个java项目 2. 将 /usr/hadoop/s ...

  8. Python2.7.3 学习——第一个程序 Hello Python World

    Hello World 每学一门语言开始的第一程序都是Hello World ,当然了Python也不例外,下面开始我们的Python第一个程序编写: 1,命令行: (1)打开终端,输入python, ...

  9. 【 D3.js 入门系列 — 1 】 第一个程序 HelloWorld

    记得以前刚上大一学 C 语言的时候,写的第一个程序就是在控制台上输出 HelloWorld .当时很纳闷,为什么要输出这个.老师解释说所有学编程入门的第一个程序都是在屏幕上输出 HelloWorld, ...

随机推荐

  1. jquery事件一 ---鼠标移入移出

    比较一下几个jquery事件的区别 mouseover() 鼠标进入(进入子元素也触发) mouseout() 鼠标离开(离开子元素也触发) mouseenter() 鼠标进入(进入子元素不触发) m ...

  2. String 源码浅析(一)

    前言 相信作为 JAVAER,平时编码时使用最多的必然是 String 字符串,而相信应该存在不少人对于 String 的 api 很熟悉了,但没有看过其源码实现,其实我个人觉得对于 api 的使用, ...

  3. Flink学习笔记:Flink Runtime

    本文为<Flink大数据项目实战>学习笔记,想通过视频系统学习Flink这个最火爆的大数据计算框架的同学,推荐学习课程: Flink大数据项目实战:http://t.cn/EJtKhaz ...

  4. PHP中SimpleXMLElement对象字符编码

    最近在使用SimpleXMLElement来生成和解析XML. 由于我们使用PHP开发的这边使用UTF-8编码,而对方使用GBK编码,因此就遇到了中文字符编码问题. 后来发现,XML内部的编码与其头 ...

  5. c语言-折半查找的函数

    void search(int n,int num[],char name[N][10]) { int top,bottom,middle,location,flag; top=0; bottom=N ...

  6. Machine learning 吴恩达第二周coding作业(必做题)

    1.warmUpExercise: function A = warmUpExercise() %WARMUPEXERCISE Example function in octave % A = WAR ...

  7. 海思hi35xx 开发学习(1):海思媒体处理平台架构

    处理平台架构图: 主要分为: 视频输入(VI):VI 模块捕获视频图像,可对其做剪切.去噪等处理,并输出多路不同分辨率的图像数据. 视频处理(VPSS):VPSS 模块接收 VI 和解码模块发送过来的 ...

  8. 实验三敏捷开发与XP实践《Java开发环境的熟悉》实验报告

    一.实验要求 1.没有Linux基础的同学建议先学习<Linux基础入门(新版)><Vim编辑器> 课程 2.完成实验.撰写实验报告,实验报告以博客方式发表在博客园,注意实验报 ...

  9. python全栈开发_day5_字符串及列表类型

    一:字符串 1)优先掌握知识点. a=" 21j3:b12jk:b3j12:3bjk12 " #内置方法之strip print(a.strip(" ")) # ...

  10. 基础篇:4.1)规范化:3d工程图纸出图步骤详解

    本章目的:按照工程图出图步骤,更方便出具规范的工程图. 1.工程出图步骤 这是作者个人归纳的步骤,供同行业工程师参考完善. 以solidworks为例,工程出图步骤如下:1.1)打开绘制的3d零件图, ...