Spring is the most famous and established Java framework. It is fully supported by devonfw as an option and alternative to quarkus.
Dependent on the intention you are reading this document, you might be most interested in the following chapters:
-
If you are not yet familiar with Spring, you may be interested in pros and cons of Spring. Also take a look at the official Spring website.
-
If you already have experience developing with Spring but are new to devon4j, take a look at devon4j’s recommendations on general best practices. Check out the chapters on architecture design, project structuring and coding conventions. Follow the referenced links to go deeper into a topic.
-
If you have already developed with devon4j and Spring and need more information on a specific topic, check out the devon4j guides for Spring. If you don’t find what you are looking for there, check out the general section. devon4j uses general solutions for Java, so solutions for both Spring and Quarkus are documented there.
-
If you want to get started or create your first Spring application using devon4j, check out the guide about creating a new application or the Jump the Queue and My Thai Star reference applications.
Spring offers the following benefits:
-
highly flexible
Spring is famous for its great flexibility. You can customize and integrate nearly everything. -
well established
While JEE application servers including very expensive commercial products turned out to be a dead-end, spring has guided projects through the changing trends of IT throughout decades. It may be the framework with the longest history track and popularity. As a result you can easily find developers, experts, books, articles, etc. about spring. -
non-invasive and not biased
Spring became famous for its non-invasive coding based on patterns instead of hard dependencies. It gives you a lot of freedom and avoids tight coupling of your (business) code.
See Why Spring? for details.
Spring has the following drawbacks:
-
history and legacy
Due to the pro of its long established history, spring also carries a lot of legacy. As a result there are many ways to do the same thing while some options may be discouraged. Developers needs some guidance (e.g. via devon4j) as they may enter pitfalls and dead-ends when choosing the first solution they found on google or stackoverflow. -
lost lead in cloud-native
While for the last decades spring was leading innovation in Java app development, it seems that with the latest trends and shift such as cloud-native, they have been overtaken by frameworks like quarkus. However, spring is trying to catch up with spring-native.
Spring-boot is a project and initiaitve within the spring-ecosystem that brought a lot of innovation and simplification into app development on top of spring. As of today we typically use the terms spring and spring-boot rather synonymously as we always use spring together with spring-boot.
Spring-native adds cloud-native support to the spring ecosystem and allows to build a spring app as cloud-native image via GraalVM. You may also consider Quarkus if you are interested in building cloud-native images. For a comparison of both Spring Native and Quarkus, you may refer to our Spring Native vs. Quarkus guide.