ZeroTurnaround Blog

Product Updates, Company News & Fun

Develop Spring applications without restarts

For the impatient: see the screencast and download.

Spring is nowadays one of the most popular frameworks for developing enterprise Java applications. It is therefore our greatest pleasure to announce that with the release of JavaRebel 1.2-M2 and the JavaRebel Spring plugin 1.0-M1 it is now possible to develop Spring applications without redeploying the container.

JavaRebel Spring plugin takes advantage of JavaRebel class reloading to reload Spring dependencies. It supports registering new Spring beans, adding/removing dependencies and adding new MVC controllers and handler methods. These can be done using either XML configuration or annotations.

We have prepared a screencast that demonstrates extending Petclinic sample application on-the-fly. You can also check out the Spring plugin installation manual or just proceed to download.

Although we have tested the plugin in several environments it should be considered a beta release and is not guaranteed to work perfectly in your application. However the plugin is open source and we welcome both your feedback and contributions to make future releases better.

  • http://queezu.com/ feli

    Great, i’ve been waiting for something like this!

  • http://queezu.com feli

    Great, i’ve been waiting for something like this!

  • Toby Hobsob

    Quick question … is there any chance that JR will be able to support annotation based AOP e.g. TX support? Sometimes when developing we forget to add a @Transaction attribute to a bean and it would be great if we could add it without needing to restart the container. Thanks

  • Toby Hobsob

    Quick question … is there any chance that JR will be able to support annotation based AOP e.g. TX support? Sometimes when developing we forget to add a @Transaction attribute to a bean and it would be great if we could add it without needing to restart the container. Thanks

  • Toomas Römer

    If it is not working at the moment we’ll need tighter integration with AOP. We do reload the annotation but I guess it is not used because of cache somewhere. Added as a task.

  • Toomas Römer

    If it is not working at the moment we’ll need tighter integration with AOP. We do reload the annotation but I guess it is not used because of cache somewhere. Added as a task.