Creating a Spring MVC project using Maven and Eclipse in one minute
- Details
- Written by Nam Ha Minh
- Last Updated on 20 February 2020   |   Print Email
- If you are using Eclipse Juno (4.2) or older, follow the tutorial Installing Maven plug-in for existing Eclipse IDE.
- If you have Eclipse Kepler (4.3) or newer, Maven is already integrated in the IDE so this step can be skipped.
- Archetype Group Id: co.ntier
- Archetype Artifact Id: spring-mvc-archetype
- Archetype Version: 1.0.2
- Repository URL: leave empty
- Group Id: MySpringMvc
- Artifact Id: MySpringMvc
- Version: leave this as default, 0.0.1-SNAPSHOT.
- Package: net.codejava.spring
- MvcConfiguration.java: this configuration class uses annotations in replacement of XML since annotations are preferred. It configures a default view resolver and a resource handler. We don’t see Spring application context XML file any more.
- HomeController.java: this controller is generated to handler the default URL mapping (/). Look at its code, it redirects the user to the “home” view.
- home.jsp: This JSP page will be displayed when the user access this application using the default URL (/). This is simply a hello world page.
- web.xml: bootstraps the Spring context loader listener and Spring dispatcher servlet.
- pom.xml: All dependencies for a Spring MVC application are listed here.
http://localhost:8080/MySpringMvc
Hit Enter, we should see the “Hello World!” page as seen below:Important Notes:
The spring-mvc-archetype from co.ntier was created long time ago so it comes with old versions of Java (1.6), Spring framework (3.1.0) with cglib 2.2.2, Servlet 2.4, etc. So it's strongly recommended to update the pom.xml file for newer versions, for example:<project ...> ... <properties> <java.version>1.8</java.version> <spring.version>5.2.3.RELEASE</spring.version> </properties> <dependencies> ... <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.1.0</version> <scope>provided</scope> </dependency> ... </dependencies> ... </project>If you use Spring 5, you need to remove the cglib dependency as it is no longer needed, and update the MvcConfiguration class to implement the WebMvcConfigurer interface like this:
... import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; public class MvcConfiguration implements WebMvcConfigurer { ... }Watch this video to see the steps visually:So to conclude, using the Maven archetype spring-mvc-archetype definitely saves us a lot of time in configuring the fundamental stuffs, avoiding common mistakes and following best practices. But basically, you still need to understand what the generated stuffs do, e.g. annotation types, bootstrap code in web.xml and dependencies in pom.xml. Although you may take more than one minute to read this till now, following the above steps take just a minute :). Enjoy coding!
Related Spring Tutorials:
- How to create Spring MVC project using Maven command
- Spring MVC beginner tutorial with Spring Tool Suite IDE
- How to bootstrap a Spring Web MVC application programmatically
- Understand the core of Spring framework
- Understand Spring MVC
- Understand Spring AOP
- Spring Dependency Injection Example with XML Configuration
Comments
One of the Nice Article
Good Work Nam Ma Minh
Please Send me the Notifications
Thanks
Thanks
Can't resolve Archetype co.ntier:spring-mvc-archetype:1.0.2
org.eclipse.core.runtime.CoreException: Could not resolve artifact co.ntier:spring-mvc-archetype:pom:1.0.2
Can you please tell me how to debug a maven project?
after this configuration to add archetype i was blocked with a message box
Unable to create project from archetype
org.eclipse.core.runtime.CoreException: Could not resolve artifact co.ntier:spring-mvc-archetype:pom:1.0.2 ". How may i resolve this problem? Thanks. Warm regards.