我正在制作一个要集成 Wicket + Spring 的应用程序。应用程序是用户来购买东西的杂货店。我知道有两种方法可以做到这一点。
使用注释方法。Wicket-Spring 集成展示了如何将 Spring Beans 注入 Wicket 页面的各种方法。
public class FormPage extends WebPage { @SpringBean private IContact icontact; ... Form<Object> form = new Form<Object>("contactForm", new CompoundPropertyModel<Object>(contact)) { private static final long serialVersionUID = 1L; protected void onSubmit(Contact contact) { icontact.saveContact(contact); } };
@SpringBean 当然是有效的,并且被许多人认为是最佳实践。但是还有另一种方法,您的 Wicket 应用程序可以提供您需要的服务。
public class YourWicketApp extends WebApplication{ public static YourWicketApp get(){ return (YourWicketApp) Application.get(); } private ServiceA serviceA; // getter and setter for serviceA here }
现在在您的组件中,调用
YourWicketApp.get().getServiceA();
我想知道将 spring 与 wicket 集成的最佳方法是什么,以及每种情况下的缺点是什么。
但是据我所知,Wicket 页面和组件不是由 Spring 容器管理的,因此您不能在它们上使用 @Transactional 注释(无论如何这都是个坏主意 - 事务属于更深层次)。 这个说法有效吗?