在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
注解只能用在抽象方法上,并且不能用在私有方法上。