zoukankan      html  css  js  c++  java
  • [Spring Boot] Singleton and Prototype

    When we use Bean to do autowired, it actually use singleton, so even we create multi instanses, they are the same:

    @SpringBootApplication
    public class In28minutesApplication {
    
        public static void main(String[] args) {
            // Application Context
            ApplicationContext applicationContext =
                    SpringApplication.run(In28minutesApplication.class, args);
            //BinarySearchImpl binarySearch = new BinarySearchImpl(new QuickSortAlgo());
            BinarySearchImpl binarySearch = applicationContext.getBean(BinarySearchImpl.class);
            BinarySearchImpl binarySearch1 = applicationContext.getBean(BinarySearchImpl.class);
            int result = binarySearch.binarySearch(new int[] {1,2,3,4}, 3);
            System.out.println(binarySearch);
            System.out.println(binarySearch1);
    
        }
    }

    It print out:

    com.example.in28minutes.BinarySearchImpl@704deff2
    com.example.in28minutes.BinarySearchImpl@704deff2

    We can also tell Spring boot to use Singleton or using proptype:

    @Component
    @Scope(ConfigurableBeanFactory.SCOPE_SINGLETON) // by default
    public class BinarySearchImpl { }
    
    // the same as
    
    @Component
    public class BinarySearchImpl { }

    But if we switch to Prototype, it will use differnet address in memory:

    @Component
    @Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)
    public class BinarySearchImpl { }
    com.example.in28minutes.BinarySearchImpl@4eaf3684
    com.example.in28minutes.BinarySearchImpl@40317ba2
  • 相关阅读:
    系统结构实践——第一次作业
    个人作业——软件工程实践总结作业
    个人作业——软件评测
    软件工程第五次作业--结队编程
    软件工程第四次作业--结队作业
    第一次个人编程作业
    第一次软工作业
    java第五周上机练习
    Java作业5
    java4
  • 原文地址:https://www.cnblogs.com/Answer1215/p/10658830.html
Copyright © 2011-2022 走看看