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中的话,这样做是无法改变其单例的模式,依然会是同一条狗。

  • 相关阅读:
    redis发布订阅
    redis学习笔记(面试题)
    redis安全 (error) NOAUTH Authentication required
    HDU3001 Travelling —— 状压DP(三进制)
    POJ3616 Milking Time —— DP
    POJ3186 Treats for the Cows —— DP
    HDU1074 Doing Homework —— 状压DP
    POJ1661 Help Jimmy —— DP
    HDU1260 Tickets —— DP
    HDU1176 免费馅饼 —— DP
  • 原文地址:https://www.cnblogs.com/claricre/p/6636805.html
Copyright © 2011-2022 走看看