So Spring 4 had to support Java 6, 7 and 8. To maintain the backward compatibility, Spring framework didn't adapted many new features which Java 8 brought with itself e.g. Lambda programming. Spring 5 has baseline version 8, so it uses many new features of Java 8 and 9 as well .