Spring framework
Spring framework is the most widely used Java framework for building application. Spring framework has a lot of projects to develop java application.
For example:
You can avoid a lot of boilder plate code with Spring JDBC rather than using Java’s JDBC APIs.
Spring boot
As already stated above, Spring boot helps you to create Spring projects faster by eliminating boilerplate configurations.
It takes an opinionated view of Spring platform to bootstrap application faster.
Here are some advantages of Spring boot
Advantages of Spring Boot
- Spring provides a lot of default configurations which helps in bootstrapping spring application faster.
- It comes with embedded tomcat or jetty server.
- It reduces development time by avoiding a lot of boilerplate code.
- It increases productivity as you can create Spring application quickly.
- It provides a lot of starter project for easy maven integration. You don’t have to worry about version mismatch.
- You can quickly create using sample project using spring boot initializer
Spring vs Spring boot
We will see how Spring boot can reduce your efforts to bootstrapping any spring application.
Let’s say you want to create a web application.
We need to declare DispatcherServlet in web.xml for spring MVC. When DisplatcherServlet is initialized, spring tries to load application context from [servlet name]-servet.xml file
<?xml version="1.0" encoding="UTF-8"?><web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0"> <display-name>Archetype Created Web Application</display-name> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> <servlet> <servlet-name>springmvc-dispatcher</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>springmvc-dispatcher</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> </web-app>
Configuration in “springmvc-dispatcher-servlet.xml” to provide InternalResourceViewResolver.
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd"> <context:component-scan base-package="org.student.bootcamp.springmvc.controller" /> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix"> <value>/WEB-INF/</value> </property> <property name="suffix"> <value>.jsp</value> </property> </bean> <mvc:annotation-driven /></beans>
If you want to do same thing using Spring boot
spring.mvc.view.prefix=/WEB-INF/ spring.mvc.view.suffix=.jsp |
All the Spring configuration will be automatically loaded by adding
Spring boot starter and it will take care of all the default
configurations.
If you want to do any customization, it is very easy to do with Spring boot.
That’s all about difference between Spring and Spring boot.