1. IOC container: IOC container helps application to manage dependencies between objects and objects, dependencies between objects if a change is made, you only need to modify the configuration file instead of modifying the code, because the modification of the code may imply a rebuild of the project and a complete regression test. With the IOC container, programmers no longer need to write their own factories, Singleton, which is particularly in line with spring's spirit of "Don't reinvent the wheel."
2. AOP: Aspect-oriented programming, encapsulating all crosscutting concerns into facets (aspect), and dynamically adding crosscutting concerns to target code in a configured way, further separating the business logic from the system services. On the other hand, with AOP programmers can save a lot of their own job of writing proxy classes.
3. Mvc:spring's MVC framework is excellent and can be used to throw struts 2 of blocks from all aspects, providing a better solution for the Web presentation layer.
4. Transaction management: Spring embraces multiple persistence layer technologies with a broad mind and provides declarative transaction management to complete transaction management without requiring any line of code.
Why do you choose to use the Spring framework (the benefits of the spring Framework for enterprise development)?