zoukankan      html  css  js  c++  java
  • Spring实战读书笔记 第三章 最小化 Spring XML配置

    1,自动装配(autowiring)有助于减少甚至消除配置<property>元素,让Spring自动识别如何装配Bean的依赖关系。
    2,自动检测(autodiscovery)让Spring自动识别那些类需要配置为Spring Bean,减少<bean>元素使用。
    3,四种自动装配:
        -1,byName:把与Bean的属性具有相同名字(或者ID)的其他Bean自动装配到Bean的对应属性中,如果没有跟属性名字相匹配的Bean,则该属性不进行装配。
        -2,byType:把与Bean的属性具有相同类的其他Bean自动装配到Bean对应的属性中去。如果不存在,则不进行装配。
        -3,constructor:把与Bean的构造入参具有相同类型的其他Bean自动装配到Bean的构造参数中。
        -4,autodetect:首先尝试constructor进行自动装配,如果失败则尝试byType。
    byName自动装配:
    如下代码为普通的装配
    <bean id="kenny2" class="chp02.springdol.Instrumentalist">
    <property name="song" value="122132"></property>
    <property name="inst" ref="sandbox"></property>
    </bean>
    <bean id="sandbox" class="chp02.springdol.Saxophone"></bean>

    使用byName自动装配:
    <bean id="kenny2" class="chp02.springdol.Instrumentalist" autowire="byName">
    <property name="song" value="122132"></property>
    </bean>
    <bean id="inst" class="chp02.springdol.Saxophone"></bean>
    byName自动装配遵循:为属性自动装配ID与该属性的名字相同的Bean。
    byType自动装配:
    byType自动寻找类型相同的Bean注入,如果Spring找到多个类型匹配的类,那么会抛出异常。为了避免这点,可以设置首选bean。
    constructor自动装配,与其他类似。
    4,设置默认制动装配,default-autowire
    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:p="http://www.springframework.org/schema/p"
    xmlns:mvc="http://www.springframework.org/schema/mvc"
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:util="http://www.springframework.org/schema/util"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans-3.0.xsd" default-autowire="byType">
    5,使用注解装配。
    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:p="http://www.springframework.org/schema/p"
    xmlns:mvc="http://www.springframework.org/schema/mvc"
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:util="http://www.springframework.org/schema/util"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans-3.0.xsd" default-autowire="byType">
     
    <context:annotation-config/>
    </beans>
    使用<context:annotation-config/>启用注解:
    -1,使用@Autowired
    @Autowired
    public void setInstrument(Instrument instrument) {
    this.instrument = instrument;
    }
    使用注解标识当前成员变量或者bean使用自动注入。
    6,自动检测标注Bean:
            -1,@Component:通用的构造型注解,标识该类为Spring组件。
            -2,@Controller:标识该类为Spring MVC Controller。
            -3,@Repository:标识该类为数据仓库。
            -4,使用@Component标注任意自动一注解。

























        



















































    欢迎转载,但转载请注明原文链接[博客园: http://www.cnblogs.com/jingLongJun/]
    [CSDN博客:http://blog.csdn.net/mergades]。
    如相关博文涉及到版权问题,请联系本人。
  • 相关阅读:
    “奇葩”控件向后台传数据
    借助cookie实现子网页修改父网页内容遇到的问题:同一个浏览器访问相同页面,会互相影响。 (已解决)
    JS 怎么控制某个div的滚动条滚动到顶部? (已解决)
    怎么在表单提交前检查数据输入。
    table布局, td内部元素溢出边界问题。 (已解决)
    怎么在两个内嵌的子网页之间通信?(已解决)
    关于div的滚动条滚动到底部,内容显示不全的问题。(已解决)
    怎么使用CKEDITOR
    新问题:关于网页中的文本框在手机上受软键盘弹出的影响问题。(已解决)
    Oracle多行查询(函数)
  • 原文地址:https://www.cnblogs.com/jingLongJun/p/4491060.html
Copyright © 2011-2022 走看看