When learning about a framework, it's critical to understand not just what it accomplishes but also the principles it adheres to. The following are the Spring Framework's guiding principles:
- Provide options at all levels. Spring allows you to postpone design choices as long as feasible. You may, for example, change persistence providers via settings without modifying your code. The same is true for many other infrastructure problems including third-party API connectivity.
- Allow for a variety of viewpoints. Spring values flexibility and is unconcerned with how things should be done. It meets a wide range of application demands from many angles.
- Maintain a high level of backward compatibility. Spring's progress has been carefully orchestrated such that there are minimal breaking changes between versions. Spring supports a carefully selected set of JDK versions and third-party libraries to make it easier to maintain Spring-dependent applications and libraries.
- Consider API design. The Spring team spends a lot of effort and work into creating APIs that are easy to use and will last for many versions and years.
- Set high code quality criteria. The Spring Framework places a high value on useful, up-to-date, and accurate Javadoc. It is one of the rare projects that can boast of having clean code with no circular dependencies between packages.