zoukankan      html  css  js  c++  java
  • Spring 自动装配

    通过配置defalut—zutowire属性,Spring IOC容器可以自动为程序注入Bean;默认是no(不启用自动装配)。

    default—autowire的类型有:

    byName:通过名称自动进行匹配

    byType:通过属性自动进行匹配

    示例如下:

    一个实体类people

    beans.xml配置:

    复制代码
    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
            http://www.springframework.org/schema/beans/spring-beans.xsd" 
            default-autowire="byName">
            <!-- byName通过属性名、byType通过类型只要类型与属性类型相同就可以自动装配,当然如果有多个同类型的就会报错啦 -->
            
        <bean id="dog" class="com.maya.model.Dog">
            <property name="name" value="jack"></property>    
        </bean>
        <bean id="dog1" class="com.maya.model.Dog">
            <property name="name" value="tom"></property>    
        </bean>
        <!-- 在这里不需要,手动进行注入bean,因为people中的属性名师dog,那么它会自动装配id是dog的类 -->
        <bean id="people1" class="com.maya.model.People">
            <property name="id" value="1"></property>
            <property name="name" value="小明"></property>
            <property name="age" value="15"></property>        
        </bean>              
    </beans>
    复制代码

    建议:自动装配机制慎用,它屏蔽了装配细节,容易产生潜在的错误;

    方法注入:

    Spring 管理的bean的作用域默认是单例的singleton; 但是可以通过配置prototype,实现多例;

    那么就需要用到方法注入:lookup-method

    如果我想让Spring管理的bean在我每次调用的时候都是新的,那么就需要如下配置(但是这样做的前提条件是:我没有手动将这条狗注入到people中)

    如果将dog手动注入到了people中的话,这样做是无法改变其单例的模式,依然会是同一条狗。

  • 相关阅读:
    JDBC遇到向ORACLE数据库表执行插入操作时,报错“列在此处不允许”
    关于对称加密和非对称加密以及签名,认证和证书的理解
    .net framework 各版本区别
    数据库设计三大范式
    业务系统设计
    修改 Windows 服务器默认远程端口3389
    iis读取不到本地证书问题 提示已经导入成功
    HTTPS 建立连接的详细过程
    使用ServiceStack构建Web服务
    转-微信支付(公众号支付JSAPI)
  • 原文地址:https://www.cnblogs.com/claricre/p/6636805.html
Copyright © 2011-2022 走看看