zoukankan      html  css  js  c++  java
  • @lookup注解的使用

    背景,如果有一个类C,需要用到类B,如果使用@Autowired注解注入B,那么B每次调用都是同一个对象,即使B不是单例的,现在我希望每次调用B都是不一样的,那么实现方案有2个:

    方案A : 每次从容器中获取B:

    @Component
    @Scope(scopeName= ConfigurableBeanFactory.SCOPE_PROTOTYPE) //原型 也就是非单例
    public class B {
        public  void sayHi(){
            System.out.println("hi");
        }
    }
    @Component
    public  class C implements ApplicationContextAware {
        private ApplicationContext applicationContext;
        public void hello(){
            B b = (B)applicationContext.getBean("b");
            b.sayHi();
        }
    
    
        @Override
        public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
            this.applicationContext=applicationContext;
        }
    }

    方案B: 使用@lookup注解:

    @Component
    @Scope(scopeName= ConfigurableBeanFactory.SCOPE_PROTOTYPE) //原型 也就是非单例
    public class B {
        public  void sayHi(){
            System.out.println("hi");
        }
    }
    
    @Component
    public abstract class C {
    
        public void hello(){
            B b = getB();
            b.sayHi();
        }
    
        @Lookup
        public abstract B getB(); //一般都是抽象方法
    }
  • 相关阅读:
    CSS---伪类
    CSS---选择器
    CSS---如何引用样式表
    HTML-- 表单
    HTML-- 文本标签
    HTML--连接、锚点
    HTML--表格
    递归算法
    PHPCMS V9 友情链接的调用
    thinkcmf跳转用户登录和个人中心页面时出现Call to undefined function sp_sql_posts()错误
  • 原文地址:https://www.cnblogs.com/yangxiaohui227/p/13428067.html
Copyright © 2011-2022 走看看