Wicket + Spring を統合したいアプリケーションを作成しています。アプリケーションは、ユーザーが来て何かを購入する食料品店です。これを行うには2つの方法があることを知っています。
注釈アプローチの使用。Wicket-Spring の統合では、Spring Bean を 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();
スプリングとウィケットを統合する最良の方法と、それぞれの場合の欠点を知りたい.
ただし、私が覚えている限り、Wicket ページとコンポーネントは Spring コンテナーによって管理されていないため、それらに @Transactional アノテーションを使用することはできません (これはとにかく悪い考えです - トランザクションはより深いレベルに属します)。 この声明は有効ですか?