zoukankan      html  css  js  c++  java
  • Spring 之高级装配

    【环境与Profile】

    暂略

    【条件化的bean】

    暂略

    【处理自动装配歧义性】

    暂略

    【 bean 的作用域】

    在 @Componen 、 @Bean 下以及 XML 中的声明方式如下所示,

    @Component("LonelyHeartsClub")
    @Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)
    // Singleton 作用域是默认的,Prototype 作用域需要特别声明,每次注入都会创建一个新的 Bean 实例
    public class SgtPeppers implements CompactDisc {}
        @Bean
        @Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)
        public CompactDisc compactDisc() {
            return new SgtPeppers();
        }
    <bean id="compactDisc"
              class="soundsystem.bean.BlankDisc"
              scope="prototype"
              c:_0="..."
              c:_1="....">
            <constructor-arg>
                <list>
                    <value>...</value>
                    <value>....</value>
                </list>
            </constructor-arg>
        </bean>

    需要注意的是, 声明 Session 作用域Request 作用域必须先在 web.xml 中添加如下 listener

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
             version="3.1">
    
        <listener>
            <listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>
        </listener>
    
    </web-app>

    代理模式需要根据 bean 对应的是接口还是具体类而改动。

    @Component
    @Scope(value = WebApplicationContext.SCOPE_SESSION, proxyMode = ScopedProxyMode.INTERFACES )
    public class BlankDisc implements CompactDisc { }
    // @Bean 下的声明类似
        <bean id="cart"
              class="shopping.ShoppingCart"
              scope="session">
            <aop:scoped-proxy proxy-target-class="false"/>
        </bean>
  • 相关阅读:
    XML组成部分
    XML语法
    XML概念
    HTTP协议:响应消息的数据格式---Response
    KM HDU 3718
    KM最大匹配 HDU 2255
    匈牙利算法
    母函数
    最长公共子序列 LCS
    hdu 4632 区间DP
  • 原文地址:https://www.cnblogs.com/xkxf/p/7151713.html
Copyright © 2011-2022 走看看