Remove pippo-spring module from next major version of Pippo
The idea is that I used with success another, more natural approach. First of all I injected the needed services directly in Controller class:
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import ro.pippo.controller.Controller;
import ro.pippo.controller.Path;
@Path("/clients")
@Component
public class ClientController extends Controller {
@Autowired
private SubscriptionService subscriptionService;
@Autowired
private ClientService clientService;
// GET, POST methods
}
Add all controllers in Application after they were collected by Spring:
import org.springframework.stereotype.Component;
import ro.pippo.controller.ControllerApplication;
@Component
public class MyApplication extends ControllerApplication {
@Autowired
private List<? extends Controller> controllers;
@Override
protected void onInit() {
addControllers(controllers.toArray(new Controller[controllers.size()]));
}
}
The content of this issue is related somehow with https://github.com/pippo-java/pippo/issues/538.
Also related to Spring support in Pippo, see below how you can use the Pippo hot reload mechanism when Spring is used for DI:
public class Launcher {
public static void main(String[] args) {
Pippo pippo = new Pippo() {
@Override
protected Application createReloadableApplication() {
return new AnnotationConfigApplicationContext(SpringConfiguration.class).getBean(Application.class);
}
};
pippo.start();
}
}
It would be nice to note in some way what we have to create / update in the documentation. Pippo has a lot of cool stuff!
I will update the documentation. Yes, Pippo has a lot of cool stuff that are not documented and it is easy to add some new ones.