zoukankan      html  css  js  c++  java
  • 在IoC容器中装配Bean

    一、

    Spring启动时读取应用程序提供的Bean配置信息,并在Spring容器中生成生成一份对应的Bean配置注册表,然后根据这张注册表实例化Bean,装配好Bean之间的依赖关系

    二、Bean的配置信息包括4个方面

    Bean的实现类

    Bean的属性信息:如数据源

    Bean的依赖关系

    Bean的行为配置:如生命周期

    三、配置方法有xml、注解、java、Groovy

    四、Sping支持三种依赖注入方式属性注入与够造函数注入还有工厂(需要额外的类和代码)

    属性注入:

    通过SetXXX()方法,灵活性高

    要求提供一个默认的构造函数

    Spring先调用Bean的默认构造函数实例化Bean,然后通过反射的方式调用set

    构造函数注入:

    保证属性在Bean实例化后就可以使用

    五、引用其他Bean

    <ref>元素有3个属性

    bean:引用同一容器或父容器中的Bean

    local:只能访问同一配置文件中的Bean

    parent:引用父容器中的Bean

    六、内部Bean,类似内部类

    七、null值

    <property name = "brand"><value></value></property>

    为brand属性注入一个null值,不会成功,Spring为将<value></value>解析为空字符串,要用<null/>

    <property name = "brand"><null/></property>

    八、Spring为List、Set、Map、Properties(map的特例,键与值必须是字符串)提供了专属的配置标签。

    还可以通过util配置结合类型的Bean

    九、简化配置,采用p命名空间

    十、方法注入

    lookup注入

    Spring IoC容器拥有复写Bean方法的能力,为Bean动态粗昂见子类或实现类

    方法替换

    十一、Bean之间的关系

    继承、依赖depends-on、引用

    十二、Bean作用域

    singleton(默认):容器中只存在一个Bean实例

    prototype:每次从容器中嗲用Bean时,都返回一个新的实例

    request:每次Http请求都会创建一个新的Bean

    session:同一个Http Session共享一个Bean

    globalSession:同一个全局Session共享一个Bean

    十三、基于注解配置

    1.Spring提供的4个注解

    @Compoment总体

    下面三个是对其的细化

    @Repository:用于对DAO实现类进行标注

    @Service:用于对Service实现类进行标注

    @Controller:用于对Controller实现类进行标注

    2.Spring提供了一个context命名空间,提供了通过扫描类包

    3.自动装配Bean

    使用@Autowired进行自动注入

    如果容器中没有和标注变量类型匹配的Bean,那么Spring容器启动时将报NoSuchBeanDefinitionException异常,通过required = false进行标注

    @Qualifier指定注入的Bean的名称

    @Lazy延迟注入

  • 相关阅读:
    存储过程简介
    微信公众号开发之授权获取用户信息
    微信公众号开发之自定义菜单
    微信公众号开发之如何实现消息交互
    VS2012创建ATL工程及使用MFC测试COM组件
    Regsvr32 在64位机器上的用法(转载)
    模块加载失败 请确保该二进制文件在指定的路径中 找不到指定的模块(转载)
    [内核驱动] miniFilter 内核层与应用程序通信
    [内核驱动] VS2012+WDK 8.0 Minifilter实现指定扩展名文件拒绝访问
    InstallShield 2015 生成单个EXE包和 MSI包
  • 原文地址:https://www.cnblogs.com/jqqiang/p/7716285.html
Copyright © 2011-2022 走看看