• 【sping揭秘】3、Spring容器中bean默认是保持一个实例


    Spring容器中bean默认是保持一个实例

    这里做一个测试,基础代码

    package cn.cutter.start.provider;
    
    import org.springframework.context.ApplicationContext;
    import org.springframework.context.support.ClassPathXmlApplicationContext;
    import org.springframework.stereotype.Component;
    
    @Component(value="FXNewsProvider")
    public class FXNewsProvider {
        //做个变量用来监控2个对象bean之间的值是否一致,来确认是否是一个对象
        private int testSpring;
        
        public FXNewsProvider() {
            System.out.println("hello IOC");
            ++testSpring;
        } 
        
        
        public static void main(String[] args) {
            ApplicationContext ctx = new ClassPathXmlApplicationContext("配置文件路径");
            FXNewsProvider fxNewsProvider = (FXNewsProvider) ctx.getBean("fXNewsProvider");
        }
    
    
        public int getTestSpring() {
            return testSpring;
        }
    
    
        public void setTestSpring(int testSpring) {
            this.testSpring = testSpring;
        }
        
        
    }

    测试案例:

    @Test
        public void test2() {
            
            //测试spring的IOC容器中,默认是保持在IOC容器中只有一个实例
            ApplicationContext ctx = new ClassPathXmlApplicationContext("classpath:application-bean.xml");
            FXNewsProvider fxNewsProvider = (FXNewsProvider) ctx.getBean("FXNewsProvider");
            
            System.out.println("第一次获取值:" + fxNewsProvider.getTestSpring());
            
            FXNewsProvider fxNewsProvider2 = (FXNewsProvider) ctx.getBean("FXNewsProvider");
            System.out.println("第二次获取值:" + fxNewsProvider2.getTestSpring());
            
            fxNewsProvider2.setTestSpring(998);
            
            if(fxNewsProvider2 == fxNewsProvider) {
                System.out.println("两次对象一样,值为:" + fxNewsProvider.getTestSpring());
            } else {
                System.out.println(fxNewsProvider.getTestSpring());
                System.out.println(fxNewsProvider2.getTestSpring());
            }
            
        }

    最后我们看一下测试结果

    果然如书中所料。。。

  • 相关阅读:
    「最小生成树」[HAOI2006]聪明的猴子
    「打表」[Beijing wc2012]算不出的算式
    『看毛片』kmp字符串匹配算法
    「主席树」[Ctsc2018]混合果汁
    Aiiage Camp Day3 B Bipartite
    Aiiage Camp Day2 D domino
    Aiiage Camp Day1 H Littrain wanna be rich
    Aiiage Camp Day1 E Littrain wanna be small
    Aiiage Camp Day1 C Littrain wanna be different
    Aiiage Camp Day1 A Littrain is a loser, in 2018
  • 原文地址:https://www.cnblogs.com/cutter-point/p/8597702.html
Copyright © 2020-2023  润新知