Also, there are plenty of old, no longer working code samples on the internet for spring, but the official documentation is really great and should be preferred over some random blog that likely 6 years old already.
And can you show the nice official documentation? All my searches back then pointed me only at blogs and stuff. All of them full of outdated advice — for example, the version I started with was one of the first to change the default file extension for Freemarker from `.ftl` to `.ftlh` for some invalid reason, but none of the online blogs were updated for it, I found out after a few hours of trying out random things when I stumbled upon the change log for that release. (The reason was allegedly “security”, but what stops them from disabling the insecure features and keeping the extension?)
Another thing that was woefully under-documented was the default security thing, it also took me forever to figure out how to get a login page showing and working.
In the modern ASP.NET Core, things are much better organized and documented. The framework has far less magic involved. No magically auto-generated repositories, no @Autowired magic, and far less use of annotations. Things just make more sense.
As for the language itself, C# is nicer in many regards. Even basic things like properties instead of hand-written or Lombok-generated getters and setters, or operator overloading where it makes sense, lead to clearer code.
Regarding IDEs: I hate Visual Studio, but JetBrains Rider is basically IntelliJ for C#.