for a simple microservices, to migrate from java 8 to java 17, could be as simple as 1) upgrading jdk 2) upgrade necessary libraries
however, for a monolithic application upgrade, it would require a lot of effort to fix the library compatibility issue.
At the moment, the application I am trying to migrate has a lot of code smell and anti patterns, for example, there are circular definition in the spring XML definition:
the service bean has a reference to a schedler bean, which circular back for a reference to the service bean.

the fix/hack for this problem is to force spring to allow circular reference (due to the implementation, lazy init is also not working)
similarly, due to the implementation, bean definition overriding has also to be enaled
spring.main.allow-bean-definition-overriding=true
spring:
main:
allow-circular-references: true
refer: https://lwpro2.wordpress.com/2021/03/22/spring-circular-reference/