zoukankan      html  css  js  c++  java
  • 装配bean,基于xml

    一、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();

  • 相关阅读:
    OpenStack(queens)最小化搭建记录——控制与计算共两个节点
    CentOS7 minimal(最小化安装)后增加的软件安装
    redis
    layui 单击事件,选中 checkbox f
    DLL 引用查询工具
    自定义JS Map 函数
    修改MSSQL字段类型
    苹果ATS特性服务器配置指南 HTTPS 安卓可以用 IOS 报错。
    基础连接已经关闭: 未能为 SSL/TLS 安全通道建立信任关系。
    不能将多个项传入“Microsoft.Build.Framework.ITaskItem”类型的参数
  • 原文地址:https://www.cnblogs.com/zhuxiang1633/p/8485961.html
Copyright © 2011-2022 走看看