传统方式:通过接口访问对象必须经过实例化,这样就必然增加了代码之间的耦合度,而其调用时必须了解接口实现类中定义的内容,同时不同意对生成的对象进行管理。

容器管理方式:当程序中用到该对象时,依赖容器进行实例化。实现方法调用是只须参考接口中实现的方法。当对象实例后通过容器提供的方法,对生成的对象进行管理,使用完毕后将对该实例对象进行消除。

Spring依赖注入的方式有三种:接口注入、设置属性注入、构造方法注入。

构造方法注入,在构造期间即创建一个完整、合法的对象。避免了繁琐的setter方法。

设置属性注入,通过setter方法设定依赖关系。这种方式简单直观,因而在Spring的注入里大量使用。下面举个例子。

 1 public class Person {
 2     public String name;
 3     public String password;
 4     public boolean islogin;
 5
 6     public void setName(String name){
 7         this.name = name;
 8     }
 9     public void setPassword(String password){
10         this.password = password;
11     }
12     public void setChock(boolean islogin){
13         this.islogin = islogin;
14     }
15 }

1 public class Factory {
2     public static void main(String[] args) {
3         XmlBeanFactory bFactory = new XmlBeanFactory(new ClassPathResource(
4                 "Spring.xml"));
5         Person person = (Person) bFactory.getBean("person");
6         System.out.println("姓名:" + person.name + "  密码:" + person.password
7                 + "  状态:" + person.islogin);
8     }
9 }

Spring.xml

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <beans
 3     xmlns="http://www.springframework.org/schema/beans"
 4     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 5     xmlns:p="http://www.springframework.org/schema/p"
 6     xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
 7
 8     <bean id="person" class="com.lihui.Person">
 9         <property name="name" value="张三"></property>
10         <property name="password" value="hello"></property>
11         <property name="chock" value="true"></property>
12     </bean>
13 </beans>

Spring框架IoC和传统bean调用的区别相关推荐

  1. Spring 框架基础(02):Bean的生命周期,作用域,装配总结

    本文源码:GitHub·点这里 || GitEE·点这里 一.装配方式 Bean的概念:Spring框架管理的应用程序中,由Spring容器负责创建,装配,设置属性,进而管理整个生命周期的对象,称为B ...

  2. Spring 框架 IOC 与 DI 的总结

    一:Spring并天下 1:Spring帝国: ①:Spring崛起 什么是Spring:源于Rod Johnson在其著作<Expert one on one J2EE design and ...

  3. Spring框架(IoC、AOP面向接口切面)

    新建一个Maven工程 Spring框架是由于软件开发的复杂性而创建的.Spring使用的是基本的JavaBean来完成以前只可能由EJB完成的事情.然而,Spring的用途不仅仅限于服务器端的开发. ...

  4. Spring框架-IOC

    1.框架概述 Spring 是轻量级的开源的 JavaEE 框架 Spring 可以解决企业应用开发的复杂性 Spring 有两个核心部分:IOC 和 Aop IOC:控制反转,把创建对象过程交给 S ...

  5. 三大框架之spring框架+IoC控制反转、DI依赖注入

    三大框架:业务层框架Spring+IoC+DI 往期文章:jsp与cookie.重定向与RESTFul架构支持 下一章节: 持久层框架MyBatis 初识Spring框架 MyBatis 入门http ...

  6. Spring框架 IOC

    IOC(Inversion Of Control) 功能 将主动通过new实例化的过程,交给Spring负责 Control:控制类的对象 Inversion:转交给Spring负责 核心作用:解耦( ...

  7. factorybean 声明_说说 Spring 框架中的 Factory Bean

    一般情况下, Spring 通过反射机制利用 的 class 属性指定实现类来实例化 bean. 但在某些情况下,实例化 bean 的过程比较复杂,如果按照传统的方式,则需要在 中提供大量的配置信息, ...

  8. Spring框架IOC基础及XML的配置 第二章

    1 Spring概述 1.1 关于框架 框架的概念 框架:特指软件框架,它是我们在实际开发中解决项目需求的技术集合.运用框架可以大大简化代码的编写,缩短开发周期.同时,对后续负责项目维护的人员降低技术 ...

  9. 使用Spring框架实现远程服务暴露与调用

    一.前言 Spring框架提供了通过HTTP协议实现远程调用的方式,具体是调用方使用HttpInvokerProxyFactoryBean生成一个代理对象,通过代理对象远程通过http服务调用服务提供 ...

最新文章

  1. 批量替换文本中字符代码-python3
  2. 你真会IDEA的调试功能吗?这4个技巧带你起飞!
  3. 获取表中的某个字段名
  4. Linux arm9 设置中断向量表,STM32学习笔记之中断向量表,MDK程序启动分析
  5. SQL -- 是否或推断线相交以在其内部的平面
  6. spring aop记录日志方案设计
  7. Python3+WebSockets实现WebSocket通信
  8. 【数据库】pymysql数据库事务操作
  9. 我在美团Android研发岗工作的那5年,含泪整理面经
  10. Centos jdk
  11. Apollo测试通知登记
  12. python除法运算定律_除法竖式算法的原理是什么?
  13. 这7个问题,软件测试面试必问!!!
  14. 【HTML5】页面传递参数给下一个页面
  15. Amesim17.0安装教程(基于Win64)
  16. 俺的web课设大作业
  17. ubuntu 16.04安装中文输入法
  18. jsp酒店客房预订系统带前端
  19. LT培训Hadoop
  20. LeetCode,无它,唯手熟尔(二)

热门文章

  1. vb mysql 字符串转日期_VB常用函数表
  2. docker mysql镜像连接不上_Mysql安装-Docker版
  3. mysql创建非聚集索引_一文看懂聚集索引和非聚集索引的区别
  4. 定义一个类mymath_C++:模板类
  5. Windows的启动u盘linux,如何在linux下制作一个windows的可启动u盘?
  6. vue拖动改变模板_可视化拖拽 UI 布局之拖拽篇
  7. jdk中的动态代理和cglib中动态代理的区别
  8. 数据结构实验之图论一:基于邻接矩阵的广度优先搜索遍历(BFS)
  9. cvpr2019/cvpr2018/cvpr2017(Papers/Codes/Project/Paper reading)
  10. Java NIO 入门