zoukankan      html  css  js  c++  java
  • Bean作用域实例

    1.单例

    <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-2.5.xsd">
    
           <bean id="customerService" 
                class="com.yiibai.customer.services.CustomerService" />
            
    </beans>

    执行结果:

    package com.yiibai.common;
    
    import org.springframework.context.ApplicationContext;
    import org.springframework.context.support.ClassPathXmlApplicationContext;
    
    import com.yiibai.customer.services.CustomerService;
    
    public class App 
    {
        public static void main( String[] args )
        {
            ApplicationContext context = 
             new ClassPathXmlApplicationContext(new String[] {"Spring-Customer.xml"});
    
            CustomerService custA = (CustomerService)context.getBean("customerService");
            custA.setMessage("Message by custA");
            System.out.println("Message : " + custA.getMessage());
            
            //retrieve it again
            CustomerService custB = (CustomerService)context.getBean("customerService");
            System.out.println("Message : " + custB.getMessage());
        }
    }

    输出结果:

    Message : Message by custA
    Message : Message by custA 

    2.原型

    在原型作用域,必须为每个 getBean()方法中调用返回一个新的实例。

    <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-2.5.xsd">
    
       <bean id="customerService" class="com.yiibai.customer.services.CustomerService" 
             scope="prototype"/>
            
    </beans>

    3. Bean作用域注释

    注释来定义 bean 的作用域

    package com.yiibai.customer.services;
    
    import org.springframework.context.annotation.Scope;
    import org.springframework.stereotype.Service;
    
    @Service
    @Scope("prototype")
    public class CustomerService 
    {
        String message;
        
        public String getMessage() {
            return message;
        }
    
        public void setMessage(String message) {
            this.message = message;
        }
    }

    启用自动组件扫描

    <beans xmlns="http://www.springframework.org/schema/beans"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns:context="http://www.springframework.org/schema/context"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context-2.5.xsd">
    
           <context:component-scan base-package="com.yiibai.customer" />
            
    </beans>
  • 相关阅读:
    [置顶] 移动应用不得不看的三张图
    重新签名apk文件(手工用命令行)
    o(n)解决问题:调整数组顺序是奇数位于偶数的前面
    安装DBMS_SHARED_POOL包
    sql server 实现sleep延时
    【Unity 3D】使用 2DToolkit 插件 制作2D精灵动画
    消息对话框(MessageBox)用法介绍
    java监控之ManagementFactory分析
    Java内存模型深度解析:总结--转
    Java内存模型深度解析:final--转
  • 原文地址:https://www.cnblogs.com/diaoniwa/p/6490828.html
Copyright © 2011-2022 走看看