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>
  • 相关阅读:
    021.10 IO流 打印流
    1、Node.js 我的开始+安装
    021.9 IO流 流总结
    021.8 properties(开发使用频率高)
    021.7 装饰设计模式
    021.6 IO流 练习
    021.5 IO流——字符流
    scrapy基础知识之 CrawlSpiders爬取lagou招聘保存在mysql(分布式):
    scrapy基础知识之 关于爬虫部分一些建议:
    scrapy基础知识之 处理Redis里的数据:
  • 原文地址:https://www.cnblogs.com/diaoniwa/p/6490828.html
Copyright © 2011-2022 走看看