首先,配置文件中定义的bean并不是都在启动时实例化。

<bean id="accountService" class="com.foo.DefaultAccountService" scope="singleton"/>

注意bean有一个属性scope,只有在scope没有配置或配置为如上时,启动时才实例化。(如果一个singleton的bean依赖一个prototype的bean,那么这个prototype的bean在singleton的bean实例化时也会实例化。
如果定义为scope="prototype"那么只有在这个bean被使用时,才实例化,而且每次都是一个新对象,多例。

其次,在配置文件中声明bean使得spring可以管理这些bean,比如声明式事物功能,就需要你的bean在配置文件中配置。在实例化时spring会为你声明的bean生成一个代理对象,代理对象在调用bean的方法前后加上事务控制逻辑。

备注:spring管理bean这样在bean初始化过程中,spring可以做很多事情,比如你写一个pojo,spring通过配置就能让他成为rmi,就是在实例化过程,对这个pojo做了更多的处理,不只是简单的new一个对象出来。

在比如只有spring管理的bean才支持spring的AOP机制。可以使用Aspectj和spring集成,对非spring管理的bean施加AOP

再次,减少代码中依赖耦合。

同样的在配置文件中我们可以ref另外一个bean,这样做又是为什么呢?(我们同样可以使用时new一个这个实例)

回答:

把依赖关系定义在配置文件中。

不要再代码中表现依赖关系,这样在依赖关系有变化的情况下,可以通过配置文件的修改达到目的,而不需要修改代码。

Spring中Bean的管理问题的更多相关文章

  1. Spring中bean的管理

    Spring 中常见的容器 我们知道spring容器就是spring中bean的驻留场所.spring容器并不是只有一个.spring自带了多个容器实现,可以归为两种不同的类型:bean工厂和应用上下 ...

  2. Spring中Bean的生命周期及其扩展点

    原创作品,可以转载,但是请标注出处地址http://www.cnblogs.com/V1haoge/p/6106456.html Spring中Bean的管理是其最基本的功能,根据下面的图来了解Spr ...

  3. Spring中Bean管理的常用注解

    在Spring中,主要用于管理bean的注解分为四大类:1.用于创建对象.2.用于给对象的属性注入值.3.用于改变作用的范围.4.用于定义生命周期.这几个在开发中经常接触到,也可以说每天都会遇见.其中 ...

  4. Spring中Bean的作用域、生命周期

                                   Bean的作用域.生命周期 Bean的作用域 Spring 3中为Bean定义了5中作用域,分别为singleton(单例).protot ...

  5. Spring中Bean的实例化

                                    Spring中Bean的实例化 在介绍Bean的三种实例化的方式之前,我们首先需要介绍一下什么是Bean,以及Bean的配置方式. 如果 ...

  6. JAVA面试题:Spring中bean的生命周期

    Spring 中bean 的生命周期短暂吗? 在spring中,从BeanFactory或ApplicationContext取得的实例为Singleton,也就是预设为每一个Bean的别名只能维持一 ...

  7. Spring中的事务管理详解

    在这里主要介绍Spring对事务管理的一些理论知识,实战方面参考上一篇博文: http://www.cnblogs.com/longshiyVip/p/5061547.html 1. 事务简介: 事务 ...

  8. spring对bean的管理细节

    <?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.spr ...

  9. 简:Spring中Bean的生命周期及代码示例

    (重要:spring bean的生命周期. spring的bean周期,装配.看过spring 源码吗?(把容器启动过程说了一遍,xml解析,bean装载,bean缓存等)) 完整的生命周期概述(牢记 ...

随机推荐

  1. Linux -- GCC Built-in functions for atomic memory access

    下列内建函数旨在兼容Intel Itanium Processor-specific Application Binary Interface, section 7.4. 因此,这些函数区别于普通的G ...

  2. Redis键通知机制

    Redis键通知机制 一.概念 自从redis2.8.0以后出了一个新特性,Keyspace Notifications 称为“键空间通知”. 这个特性大概是,凡是实现了Redis的Pub/Sub的客 ...

  3. Spark2.x学习笔记:5、Spark On YARN模式

    https://blog.csdn.net/chengyuqiang/article/details/77864246

  4. expect自动登录

    .安装软件 yum install expect -y .查看expect命令位置 expect命令的位置也可能是在 /usr/local/bin/expect,使用前用户应确认工具是否存在(确认方法 ...

  5. iOS-图形绘制(全)

     画阴影: CGContextRef context = UIGraphicsGetCurrentContext();    CGContextSetFillColorWithColor(contex ...

  6. 【搬运】NumPy_for_Matlab_Users

    搬运自:http://scipy.github.io/old-wiki/pages/NumPy_for_Matlab_Users.html. 1.Introduction MATLAB和NumPy/S ...

  7. Netty学习笔记(一)——nio基础

    Netty简单认识: 1) Netty 是由JBOSS 提供的一个Java 开源框架. 2) Netty 是一个异步的.基于事件驱动的网络应用框架,用以快速开发高性能.高可靠性的网络I0 程序. 3) ...

  8. 如何使用Curator监听zookeeper事件变化

    掌握zookeeper事件监听机制,非常重要,可以说是跨入了进阶的门槛,只有掌握了如何监听某个节点或路径,我们才能在节点变化后,做一些我们想做的事,包括: 1,配置文件同步 2,主从切换 3,分布式队 ...

  9. SpringBoot(三)手写starter pom自动配置

    思想:主要是EnableAutoConfiguration在启动的时候会扫描spring.factories并加载 1在resource下面新建META-INF/spring.factories 2在 ...

  10. 结合 Nginx 谈谈 Http 状态码

    [Http状态码简介] [百度百科]HTTP状态码(英语:HTTP Status Code)是用以表示网页服务器超文本传输协议响应状态的3位数字代码.它由 RFC 2616 规范定义的,并得到 RFC ...