zoukankan      html  css  js  c++  java
  • 【Java高级工程师蜕变之路】010 Spring IOC的应用

    实现说明

    image

    BeanFactory与ApplicationContext的区别

    BeanFactory是整个Spring框架中IOC容器的顶层接口,主要定义容器的基本规范,ApplicationContext是BeanFactory的子接口,具备BeanFactory的所有功能。

    一般称BeanFactory为IOC的基础容器,ApplicationContext是容器的高级接口,有更多功能,比如国际化、资源访问等

    image

    纯XML模式

    bean实例化的三种方式

    方式一:无参构造器(推荐)

    <bean id="connectionUtils" class="com.test.transfer.utils.ConnectionUtils"></bean>
    

    方式二:静态方法

    <bean id="connectionUtilsStatic" class="com.test.transfer.utils.createConnectionFactory" factory-method="getInstanceStatic"/>
    

    方式三:实例化方法

    <bean id="createConnectionFactory" class="com.test.transfer.utils.createConnectionFactory"/>
    <bean id="connectionUtilsInstance" factory-bean="createConnectionFactory" factory-method="getInstance"/>
    

    bean的作用范围和生命周期

    scope:定义bean的作用范围(默认为singleton)

    Singleton:单例,IOC容器中只有一个对象

    单例模式对象的生命周期与容器相同

    prototype:原型,每次请求都是新对象

    多例模式Spring只负责创建,不负责销毁

    request

    session

    application

    websocket

    bean的属性

    id

    class

    name

    factory-bean

    factory-method

    scope

    init-method:初始化方法,必须是无参方法

    destroy-method:对象销毁前执行,只有在scope为sington的时候有效

    DI的依赖注入方式

    set注入

    使用property标签,注入bean使用ref,注入普通值用value

    构造器注入

    使用constructor-arg标签,属性主要使用index/name,ref,value

    复杂类型

    array:array子标签,value/ref

    map:map子标签,entry->key/value

    set:set子标签

    Properties:props子标签,prop->key

    xml与注解相结合模式

    纯xml很少使用

    引入注解不需要额外的jar

    IOC容器的启动仍然从加载xml开始

    使用规则:

    第三方使用xml,自定义使用注解

    @Autowired

    @Qualifier(Autowired无法区分类型的时候结合Autowired,用于区分具体是注入那个类型)

    @Resource(jdk11已经移除,需要引入javax.annotaton-api包使用)

    纯注解模式

    @Configuration:标记为配置类

    @CommonentScan:替代context:component-scan

    @PropertySource:引入外部资源文件

    @Import引入其他配置类

    @Value:变量赋值

    @Bean:自定对象注入到IOC容器

  • 相关阅读:
    ionic localstorage
    angular 中文鏈接
    把jqmobi 變成jQuery 的插件 從此使用jQuery
    jqmobi 的一些設置
    ionic ngcordova map 地圖
    ionic pull to refresh 下拉更新頁面
    json 對象的序列化
    鍵盤彈出,頁面佈局被推上去了.....
    Cordova V3.0.0中config.xml配置文件的iOS Configuration
    android ios 只能輸入數字 不能輸入小數點的 函數 cordova
  • 原文地址:https://www.cnblogs.com/tangyouwei/p/15690701.html
Copyright © 2011-2022 走看看