I see the following spring and JDK version requirement:
JDK 6+ for Spring 4
JDK 5+ for Spring 3
Just have a dumb question: so if I use Spring 4 and my installed JDK is 6+, most of java code are Java 6+ style, but some legacy java code is still using Java 2 or pre Java 5... Does that break this compatibility requirement ?
No. The requirement is a requirement for the JDK version. It says nothing about when you wrote the code. And Java is designed to be forward-compatible, so there's really nothing like "Java 2 code". You may be using things which have been improved upon since Java 2, but they will still run under any later version of Java.
One warning though - Oracle has actually been removing parts of what JSE provided. Before Java 11 there wasn't anything major, but in Java 11 all of the JEE functionality like JAXB and JAF (Java Activation Framework) have been removed. You need to explicitly add these as a dependency to your project.