title: How can i use Guice in JavaFX controllers?
body: <p>I have a JavaFX application where I would like to introduce Guice because my Code
  is full of factorys right now, only for the purpose of testing.</p>
  
  <p>I have one use case where i have a controller class of a certain view.
  This controller class has a viewmodel and I pass the model to the viewmodel via
  the constructor of the controller class.</p>
  
  <p>In the controller class I have a contactservice object that provides the edit/save/delete operations. 
  As of now I have an interface of that object and provide an implementation and a Mock. This object can be retrieved by a Factory.getInstance() method.</p>
  
  <p>What I want to do is something like this:</p>
  
  <pre><code>public class NewContactController implements Initializable {
      // ------------------------------------------------------------------------
      // to inject by guice
      // ------------------------------------------------------------------------
      private ContactService contactService;
  
      @Inject
      public void setContactService(ContactService srv) {
          this.contactService = srv;
      }
      // edit window
      public NewContactController(Contact c) {
          this.viewModel = new NewContactViewModel(c);
      }
      // new window
      public NewContactController() {
          this.viewModel = new NewContactViewModel();
      }
  
      @FXML
      void onSave(ActionEvent event) {
          //do work like edit a contcat, 
          contactService.editContact(viewModel.getModelToSave());
      }
  
      @Override
      public void initialize(URL location, ResourceBundle resources) {
          // bind to viewmodel---------------------------------------------------
      }
  }
  </code></pre>
  
  <p>How can I achive this? Is it a good a idea to do something like that?
  While I was searching for a solution I found <a href="https://github.com/cathive/fx-guice" rel="noreferrer">fx-guice</a> and similar frameworks but how can i combine these two? 
  Specially how can I let this fields be injected AND instanciate the controller myself or at least give it some constructor args?</p>