zoukankan      html  css  js  c++  java
  • spring的一些配置和重要的接口和类

    spring的配置文件

    通常是applicationContext.xml(具体的bean配置会在后面内容中详解)

    setter方法注入:

    <property name=“” value=“jake”>
    或者<property name=“”>
      <value>xxx</value>

    集合注入:

    集合的注入都是给<property>添加子标签

    例子:数组:
    <array>

    <value>zzz</value>
    <value>zzz</value>
    <value>zzz</value>

    </array>


    map:

    <map>
    <entry key=“” value="">
    </map>

    property:

    <property name="">
    <props>
    <prop key="xx"> </prop>
    </props>

    </property>

    spring的基本使用(第一个特征ioc控制反转):

    //获取一个spring容器接口的实例:(用此方法获取的bean是实时bean)

    ApplicationContext applicationContent= new classpathxmlapplicationcontent(xml);

    //根据一个id获得一个bean容器

    U u= (U)applicationContent.getBean("id号");

    spring的另一个重要特征di:依赖注入

    依赖:一个对象需要使用另一个对象
    注入:通过setter方法进行另一个对象实例设置

    <property>用于进行属性注入
    name:bean的属性名,通过setter方法获得
    ref:另一个bean的id值的引用

    几个重要的接口和类:

    beanFactory(懒加载):这是一个工厂,用于生产任意bean 加载xml运行位置--》web-inf/class/xml
    application是beanFactory的子接口功能更强大(当配置文件被加载,就进行对象的实例化,这就是bean的自动装配,不是懒加载)
    (国际化处理,事件传递,bean自动装配,各种不同应用层的context实现)

    想要使用延时加载的话 则使用BeanFactory接口

    BeanFactory benaFactory= new XmlBeanFactory(new ClassPathResource(xmlpath));


    装配bean的三种实例化方式

    3种bean实例化方式:默认构造,静态工厂,实例工厂

    静态工厂:

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

    它用于生产实例对象,所有的方法必须是static

    <bean id=“” class="工厂全限定类名" factory-method=“静态工厂中的方法”>

    实例工厂:

    与静态工厂不一样的是bean工厂不需要是static

    <bean id=“” class="工厂全限定类名" factory-method="??” factory-bean=“??”>

    factory-bean 确定工厂实例
    factory-method 确定普通方法


    spring的生命周期

    1.初始化和销毁:

    目标方法执行前执行后,将进行初始化或销毁
    <bean id="" class="" init-method="" destory-method="">

    init-method 用于配置初始化方法,准备数据

    destory-method销毁方法必须是单例的

    bean接口.close()方法来销毁实例

    2.beanpostprocessor后处理

    spring提供一种机制,只要实现此接口beanpostPostprocessor,并将实现类提供给Spring容器,spring容器将自动在初始化(init方法)前before(),后执行after()。

    3.postprocessbeforeinit/afterinit处理

    spring提供工厂钩子,用于修改实例对象,可以生成代理对象,是aop底层。将a的实例对象传递给后处理,可以生成代理对象并返回(postprocessbeforeinit。。。)

    在init后方法中生成代理,因为在前方法中不会执行init方法(除非你在接口中声名全了实现类中的方法)

    可以在init后面加代理,这也是spring可以事务管理的原因



    spel表达式

    对property进行统一编程:
    <property name=“” value=“”>
    #{benaID}:另一个bean的引用
    #{beanId.property}:操作数据

    #{beanId.property}通过另一个bena来获得属性,调用方法

    #{beanId.property?.toUpperCase()}如果对象不为null,将调用方法

  • 相关阅读:
    grep命令详解
    Git命令详解(一)-个人使用
    android intent和intent action大全
    android 监控EditText的变化
    第86章、系统服务之TELEPHONY_SERVICE(从零开始学Android)
    android中getSystemService详解
    关于android各种双卡手机获取imei,imsi的处置(mtk,展讯,高通等)
    Android 获取运营商信息(完整版)-解决高通,MTK等双卡问题
    Android 移动缩放的ImageView
    Android 读写SD卡的文件
  • 原文地址:https://www.cnblogs.com/zhongyimeng/p/9826701.html
Copyright © 2011-2022 走看看