Remove the spring-core and spring-web and spring-context dependencies from your POM and upgrade the version of <org.springframework-version> to something like 4.3.10.RELEASE.
Add the following underneath your <dependencies> node:
Putting spring-context under dependencyManagement means: "I don't directly depend on spring-context, but if one of my direct dependencies does, make sure to exclude commons-logging".
You should try to make your dependency graph a tree as much as possible. I removed spring-core, spring-web and spring-context because they are already transitive dependencies from spring-webmvc, and they're causing version conflicts.
You should also move log4j under dependency management, and remove the <version> element.