java lookup 在 spring 中如何配置

小樊
86
2024-08-18 19:33:35

在Spring中使用Java進(jìn)行查找可以通過(guò)使用@Lookup注解來(lái)實(shí)現(xiàn)。這個(gè)注解可以用在抽象方法上,并告訴Spring容器在運(yùn)行時(shí)動(dòng)態(tài)地為該方法返回一個(gè)bean實(shí)例。

首先,在配置類中定義一個(gè)抽象方法,并使用@Lookup注解標(biāo)記該方法:

@Configuration
public class AppConfig {

    @Bean
    public PrototypeBean prototypeBean() {
        return new PrototypeBean();
    }

    @Lookup
    public abstract PrototypeBean getPrototypeBean();
}

然后,在其他類中可以直接注入AppConfig并調(diào)用getPrototypeBean()方法來(lái)獲取PrototypeBean實(shí)例:

@Component
public class MyComponent {

    @Autowired
    private AppConfig appConfig;

    public void doSomething() {
        PrototypeBean bean = appConfig.getPrototypeBean();
        // 使用PrototypeBean實(shí)例進(jìn)行操作
    }
}

在運(yùn)行時(shí),Spring容器會(huì)為getPrototypeBean()方法返回一個(gè)PrototypeBean實(shí)例。需要注意的是,@Lookup注解只能用在抽象方法上,并且不能用在私有方法上。

0