私はvaadinとvaadin4springアドオンで春のブートアプリケーションを持っています。 私のビューでは、私はデータベースにあるデータを表示したいと思います。表示したいデータは、サービスクラスのメソッドによって返されます。スプリングブート、Vaadin - cant autowireサービスのビュー
@Service
public class UserService {
public List<Users> getUsers() ....
}
ビュー:サーバーの起動時にvaadin
@SpringView(name = Views.USERLIST) //static constant containing string "users"
public class UserlistView extends HorizontalLayout implements View {
@Autowired
private UserService userService;
@PostConstruct
public void construct() {
displaytable(userService.getUsers());
}
@Override
public void enter(ViewChangeListener.ViewChangeEvent viewChangeEvent) {}
}
UI class:
@SpringUI
@Theme("valo")
public class TUI extends UI {
@Autowired
private SpringViewProvider springViewProvider;
protected void init(VaadinRequest request) {
..
Navigator navigator = new Navigator(this, content);
navigator.addView(Views.USERLIST, UserlistView.class);
navigator.addProvider(springViewProvider);
}
}
はspringviewを認識 - "c.v.spring.navigator.SpringViewProviderは:1 SpringViewが見つかりました"、は例外または警告が表示されません。
私はナビゲータを表示するたびに、ビュー内のビュー(navigator.navigateTo("users")
)autowiredフィールドは挿入されず、ポストプロセスメソッドは呼び出されません。 navigatorオブジェクトにビューを追加して、直接ビューにアクセスするためにURLを使用しないと、何が見知らぬ人ですか? - localhost:8080 /#!ユーザーは、フィールドが正しく注入され、メソッドconstruct()が呼び出されます。
それは私のコンフィギュレーションクラスがあるのに役立ちます場合
@Configuration
@ComponentScan(basePackages = { "me.project" })
@EnableAutoConfiguration
@EnableVaadinEventBus
public class TheConfig {
// contains only one bean definition - sessionfactory
}
は、誰でも同様の問題に直面していますか?私はどこにでも助けを見つけることができませんでした誰も私が間違っていたことを教えてください。 あなたが
navigator.addView(Views.USERLIST, UserlistView.class);
を行うとそれは春で扱われていないStaticViewProvider
を作成し、「新しい」使用してビューを作成し、あなたに
あなたは解決策を見つけましたか?私も同様の問題があり、V_Jの答えはうまくいかない。 – vitfo