一、bean的实例化方式

1.默认构造

  <bean id="" class=""></bean> 必须提供默认构造方法

2.静态工厂

  用于生产实例对象,所有的方法必须都是静态的

  常用于spring整合其他框架(工具)

<bean id="" class="工厂实现类" factory-method="静态方法"></bean>

3.实例工厂

  必须先有实例对象,通过实例对象创建对象。所有的方法都是实例方法。

二、Bean的种类

1.普通bean:<bean id="" class=""></bean>

2.FactoryBean:是一个特殊的bean,具有工厂生产对象能力,只能生产特定的bean。

  bean必须实现FactoryBean接口,此接口提供getObject()方法,用于获得特定bean。

<bean id="" class="FB"></bean>

FB fb = new FB();

return fb.getObject();

三、作用域

<bean id="userService" class="scope.UserServiceImp" scope="singleton"></bean>
<bean id="userService" class="scope.UserServiceImp" scope="prototype"></bean>

四、生命周期

1.初始化和销毁

  构造目标对象前后,将进行初始化和销毁

<bean id="" class="" init-method="初始化方法名" destroy-method="销毁方法名">

2.BeanPostProcessor后处理Bean(构造Bean前后执行的方法,生成代理对象,本质是bean的装饰器)->AOP的底层

  spring提供一种机制,只要将实现BeanPostProcessor接口并且实现postProcessAfterInitialization(Object Bean,String BeanName)【返回代理对象】和postProcessBeforeInitialization()方法的类提供给spring容器,spring将自动执行这两个方法。执行初始化方法前

执行before方法,初始化后执行after方法。

  Factory hook (钩子)that allows for custom modification of new bean instances, e.g. checking for marker interfaces or wrapping them with proxies. ->工厂钩子允许用户修改bean实例,例如,检查实现接口或者用装饰者的方式生成代理。

  A a = new A();

  a = B.before(a);

  a.init();

  a = B.after(a)

  a.addUser(); //目标是在目标方法前后执行(例如事务,性能监控)

  a.destory();

装配bean,基于xml的更多相关文章

  1. 3.装配Bean 基于XML

    一.实例化方式 3种bean实例化方式:默认构造.静态工厂.实例工厂 1.默认构造 <bean id="" class=""> 必须提供默认构造 2 ...

  2. Spring装配Bean之XML装配bean

    在Spring刚出现的时候,XML是描述配置的主要方式,在Spring的名义下,我们创建了无数行XML代码.在一定程度上,Spring成为了XML的同义词. 现在随着强大的自动化配置和Java代码的配 ...

  3. 第2章—装配Bean—通过XML装配Bean

    通过XML装配Bean ​ 尽管我们在生成Bean的过程中可以用到很多方法,但我们依然需要Spring的XML配置来完善更多的需求,下面就来介绍下XML装配Bean的过程是怎样的. 3.1创建XML配 ...

  4. Spring IOC容器装配Bean_基于XML配置方式

    开发所需jar包 实例化Bean的四种方式 1.无参数构造器 (最常用) <?xml version="1.0" encoding="UTF-8"?> ...

  5. IOC装配Bean(XML方式)

    Spring框架Bean实例化的方式 提供了三种方式实例化Bean 构造方法实例化(默认无参数,用的最多) 静态工厂实例化 实例工厂实例化 无参数构造方法的实例化 <!-- 默认情况下使用的就是 ...

  6. IoC容器装配Bean(xml配置方式)(Bean的生命周期)

    1.Spring管理Bean,实例化Bean对象 三种方式 第一种:使用类构造器实例化(默认无参数) package cn.itcast.spring.initbean; /** * 使用构造方法 实 ...

  7. 6.装配Bean基于注解

    1.注解:就是一个类,使用@注解名称 开发中:使用注解 取代 xml配置文件. @Component取代<bean class=""> @Component(" ...

  8. Spring基础篇——通过Java注解和XML配置装配bean(转载)

      作者:陈本布衣 出处:http://www.cnblogs.com/chenbenbuyi 本文版权归作者和博客园共有,欢迎转载分享,但必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留 ...

  9. Spring实战2:装配bean—依赖注入的本质

    主要内容 Spring的配置方法概览 自动装配bean 基于Java配置文件装配bean 控制bean的创建和销毁 任何一个成功的应用都是由多个为了实现某个业务目标而相互协作的组件构成的,这些组件必须 ...

  10. SpringInAction读书笔记--第2章装配Bean

    实现一个业务需要多个组件相互协作,创建组件之间关联关系的传统方法通常会导致结构复杂的代码,这些代码很难被复用和单元测试.在Spring中,对象不需要自己寻找或创建与其所关联的其它对象,Spring容器 ...

随机推荐

  1. 【NOIP 2011】Mayan游戏(搜索+模拟)

    描述 Mayan puzzle是最近流行起来的一个游戏.游戏界面是一个7行5列的棋盘,上面堆放着一些方块,方块不能悬空堆放,即方块必须放在最下面一行,或者放在其他方块之上.**游戏通关是指在规定的步数 ...

  2. linux中sigsuspend和pause的区别

    pause和sigsuspend都是用于等待信号的发生 简单的说,sigsuspend = unblock + pause sigsuspend 函数是用于需要先接触 某个信号的阻塞状态 然后等待该信 ...

  3. C++学习笔记-关键词

    1.friend友元 采用类的机制后实现了数据的隐藏与封装,类的数据成员一般定义为私有成员,成员函数一般定义为公有的,依此提供类与外界间的通信接口.但是,有时需要定义一些函数,这些函数不是类的一部分( ...

  4. Job for postfix.service failed because the control process exited with error code. See "systemctl status postfix.service" and "journalctl -xe" for details.

    这是因为防火墙或者配置文件导致,无法启动的邮件服务!! 首先关闭防火墙! 修改配置文件 vim /etc/postfix/main.cf inet_protocols = ipv4 inet_inte ...

  5. Mybatis学习笔记(九) —— Mybatis逆向工程

    一.什么是Mybatis逆向工程? 简单的解释就是通过数据库中的单表,自动生成java代码. 我们平时在使用Mabatis框架进行Web应用开发的过程中,需要根据数据库表编写对应的Pojo类和Mapp ...

  6. Mysql tips 功能...

    1. mysql  GROUP_CONCAT() 使用 排序... SELECT shop.id, shop.name, shop.user_id, shop.address, shop.map_lo ...

  7. 读经典——《CLR via C#》(Jeffrey Richter著) 笔记_new新建对象

    CLR使用 new 操作符来创建新对象,例如:Employee e=new Employee("Param1");  以下是 new  操作符所做的事情. 它计算类型及其所有基类型 ...

  8. photoshop特效字体

    一.3D效果字 3D效果文字给人以纵伸感.立体感和真实感,是商家常用到的一种宣传文字.虽然Photoshop软件是平面软件,但是在制作3D效果文字时却游刃有余. 3D效果字的制作可分以下三步完成. 输 ...

  9. storm local logback

    <configuration> <property name="pattern" value="%d{yyyy-MM-dd HH:mm:ss.SSS} ...

  10. Vi编辑器和Vim编辑器的区别及联系

    Vi和Vim它们都是多模式编辑器,不同的是vim 是vi的升级版本,它不仅兼容vi的所有指令,而且还有一些新的特性在里面,vi使用于文本编辑,但是vim更适用于coding.vim的这些优势主要体现在 ...