First off, with pen testing you will want to ensure all aspects of your application are tested. This includes authenticated login and non-authenticated login. If you are simply spidering the application to find all the URLs then login and try as that will ensure successful connection to all the URLs. If you are pen testing via spidering and running additional tests on each URL then you will want to do both authenticated and non-authenticated tests to ensure each behaves the way it should.
Spring generates things based on the way it's setup and therefore will likely have a bigger structure than what appears to be on the surface. This will likely increase spider time as the spider will reverse engineer the rendered structure to locate all the URL paths that may exist. As the spider finds hidden things it will go down every possible path to locate URLs in the application. This takes time and 10 min. although lengthy, seems reasonable depending on what all is running at the same time via ZAP. URLs must be found, determined viable or not and many checks on these URLs are performed which requires network communication for the handshake checks of each URL. I'm not positive about ZAP settings, but you might be able to adjust some of the settings in the spidering to only check a few things instead of whatever the default settings are. If there are 3 checks on a URL and the handshakes takes 5 sec. now you could be at 15 sec. per URL.
Based on what I'm reading in the question there could be a performance improvement task on the application that you might want to look into. It really depends on the specifics though and if the spider is taking a longer time on the spring arch URL setup and not the user facing GUI then that performance hit likely will never affect the user experience.
Also, consider running the spider in headless mode to take out the GUI rendering time and speed up the process. If this part makes it alot faster then you might also want to look into boosting performance in your GUI rendering.