<story><title>History of Spring Framework and Spring Boot</title><url>https://www.quickprogrammingtips.com/spring-boot/history-of-spring-framework-and-spring-boot.html</url></story><parent_chain><item><author>pritambarhate</author><text>The price one pays for the flexibility Spring offers is in terms of performance. Spring uses a lot of reflection. It makes it very slow. The startup time of Spring applications tends to be around 20-30 secs. If you add Hibernate to the mix the situation becomes even worse.&lt;p&gt;Yes, Spring offers a lot of flexibility in terms of IoC and testability. I generally avoid Spring for B2C apps. (For B2C apps, I tend to favor Jersey + MyBatis) But for B2B apps and in-house enterprise apps, Spring is a very good candidate.</text></item></parent_chain><comment><author>jacques_chester</author><text>&amp;gt; &lt;i&gt;Spring uses a lot of reflection. It makes it very slow. The startup time of Spring applications tends to be around 20-30 secs. If you add Hibernate to the mix the situation becomes even worse.&lt;/i&gt;&lt;p&gt;The load time of Spring apps is dominated by the number of classes loaded from disk, which is a function of the libraries pulled in. This is because the JVM loads classes out of JARs more or less linearly.&lt;p&gt;Think about it for a second: which is faster, in-memory operations (reflection) or I&amp;#x2F;O (loading classes from disk)?&lt;p&gt;Dave Syer has done more actual empirical investigation[0] of Spring&amp;#x27;s launchtime behaviour than anyone. If you can produce better evidence of &lt;i&gt;actual&lt;/i&gt; behaviour, I&amp;#x27;ll be very surprised.&lt;p&gt;[0] &lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;github.com&amp;#x2F;dsyer&amp;#x2F;spring-boot-startup-bench&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;github.com&amp;#x2F;dsyer&amp;#x2F;spring-boot-startup-bench&lt;/a&gt;&lt;p&gt;Disclosure: I work for Pivotal, we sponsor Spring development. I do not work on Spring.</text></comment>
<story><title>History of Spring Framework and Spring Boot</title><url>https://www.quickprogrammingtips.com/spring-boot/history-of-spring-framework-and-spring-boot.html</url></story><parent_chain><item><author>pritambarhate</author><text>The price one pays for the flexibility Spring offers is in terms of performance. Spring uses a lot of reflection. It makes it very slow. The startup time of Spring applications tends to be around 20-30 secs. If you add Hibernate to the mix the situation becomes even worse.&lt;p&gt;Yes, Spring offers a lot of flexibility in terms of IoC and testability. I generally avoid Spring for B2C apps. (For B2C apps, I tend to favor Jersey + MyBatis) But for B2B apps and in-house enterprise apps, Spring is a very good candidate.</text></item></parent_chain><comment><author>nikanj</author><text>During development, you can throw money(=hardware) at the problem and get pretty decent results. In production, the startup time should not matter much, as warming of caches etc will take longer than tens of secs anyway.&lt;p&gt;I guess the biggest issue is restarting services in production, but that is mostly alleviated by not having singular copies of crucial services.</text></comment>