首页 > 编程语言 > 详细

韶光淑气_Spring_5.0 自动注入+懒加载_2020年4月10日13:48:45

时间:2020-04-10 16:01:02      阅读:60      评论:0      收藏:0      [点我收藏+]

懒加载实例

  • 默认情况下,容器会在初始化的时候就积极创建所有的实例,并且默认都以单例模式创建。

  • 还可以指定实例不在容器初始化的时候创建单例实例,而在首次请求时创建实例。这种创建实例的方式可理解为懒加载,即何时使用何时加载,与懒汉式单例方法名称中的懒相同。

  • 懒初始化实例需要在实例上使用lazy-init属性,并指定值为true:

    <bean id="lazy" class="com.something.ExpensiveToCreateBean" lazy-init="true"/>
  • 还可以在beans标签中添加default-lazy-init属性,以指定其中的所有实例是否为懒加载:true为懒加载,false为非懒加载,默认为false。

    <beans default-lazy-init="true"></beans>

自动装配

  • Spring可以自动的查找依赖,然后自动的将内容进行注入。自动装配可减少属性的指定和构造参数的必要。自动装配也可根据对象的改变进行动态的自动的修改。

    <bean id="createA" class="bean.A" autowire="byName"></bean>
  • 自动装配需要借助setter方法,故类中要存在属性的setter方法。

  • 可在bean中使用autowire属性进行装配指定,其中包含四种模式进行装配:

    模式说明
    no (默认)无自动装配。Bean引用必须由ref元素定义。对于较大的部署,建议不要更改默认设置,因为明确指定协作者可以提供更好的控制和清晰度。在某种程度上,它记录了系统的结构。
    byName 按属性名称自动装配。Spring寻找与需要自动装配的属性同名的bean。例如,如果一个bean定义被设置为按名称自动装配并且包含一个master属性(即它具有一个 setMaster(..)方法),那么Spring将查找一个名为的bean定义为master的,并使用它来设置该属性。
    byType 如果容器中恰好存在一个属性类型的bean,则使该属性自动连接。如果存在多个错误,则会引发致命异常,这表明您可能无法byType对该bean 使用自动装配。如果没有匹配的bean,则什么都不会发生(未设置该属性)。
    constructor 类似于byType但适用于构造函数参数。如果容器中不存在构造函数参数类型的一个bean,则将引发致命错误。
  • 项目全部采用自动装配可在beans标签中添加:default-autowire="byName"。

  • 使用自动装配时,所配置的property和constructor-arg将被覆盖

排除Bean的自动装配

  • 在自动装配时,可排除一个不进行注入的实例。要在autowire-candidate属性中设置bean为false,则此类不作为注入使用项进行注入到其他实例中。

  • 排除自动装配的autowire-candidate属性只作用与:根据属性装配,根据名称无效果。

  • 还可在bean中书写default-autowire-candidates属性,以指定多个不可自动装配进当前实例的bean。

韶光淑气_Spring_5.0 自动注入+懒加载_2020年4月10日13:48:45

原文:https://www.cnblogs.com/agoodjavaboy/p/12673016.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!