Jodd 框架是否提供机制来为其他框架创建的对象注入 petitebeans 引用。
以下是场景
- 域/服务对象由 Spring 框架
创建 - 域对象由 ORM 框架创建
- 这些对象需要注入 Repository/DAO 对象(通过 AutomagicPetiteConfigurator 注册为 PetiteBean 的单例对象)
下面是示例代码,在小容器关闭后,调用 pc.getBean(Greetings.class).message(null) 时调用 initMethod() 而没有调用 destroyMethod(),请指出我做错了什么?
@PetiteBean("greetings")
public class EnglishGreetings implements Greetings {
@Override
public String message(String message) {
if (message == null) {
return "defaultMessage";
}
return message;
}
@PetiteInitMethod
public void initMethod() {
System.out.println("Entered initMethod");
}
@PetiteDestroyMethod
public void destroyMethod() {
System.out.println("Entered destroyMethod");
}
}
public class GreetingRunner {
final static Logger logger = LoggerFactory.getLogger(GreetingRunner.class);
@PetiteInject
public Greetings greetings;
public static void main(String s[]) {
jodd.log.LoggerFactory.setLoggerFactory(new Slf4jLoggerFactory());
PetiteContainer pc = new PetiteContainer();
AutomagicPetiteConfigurator configurator = new AutomagicPetiteConfigurator();
configurator.setIncludedEntries("com.rans.*");
configurator.configure(pc);
pc.shutdown();
System.out.println(pc.getBean(Greetings.class).message(null));
}
}