Setting-up the development environment
This book recommends the Spring Tool Suite (Eclipse) 3.6 since it has all the Spring Framework 4.x plug-ins, and other dependencies needed by the projects. To start us off, the following image shows the dashboard of the STS IDE:
Conversely, Apache Maven 3.x will be used to build and deploy the project for this chapter. Apache Maven is a software project management and comprehension tool. Based on the concept of a project object model (POM), Maven can manage a project's build, reporting and documentation from a central piece of information (https://maven.apache.org/).
There is already a Maven plugin installed in the STS IDE that can be used to generate the needed development directory structure. Among the many ways to create Spring MVC projects, this chapter focuses on two styles, namely:
- Converting a dynamic web project to a Maven specimen
- Creating a Maven project from scratch
Converting a dynamic web project to a Maven project
To start creating the project, press CTRL + N to browse the menu wizard of the IDE. This menu wizard contains all the types of project modules you'll need to start a project. The menu wizard should look similar to the following screenshot:
Once on the menu, browse the Web option and choose Dynamic Web Project. Afterwards, just follow the series of instructions to create the chosen project module until you reached the last menu wizard, which looks like the following figure:
This last instruction (Web Module panel) will auto-generate the deployment descriptor (web.xml
) of the project. Always click on the Generate web-xml deployment descriptor checkbox option. The deployment descriptor is an XML file that must reside inside the /WEB-INF/
folder of all JEE projects. This file describes how a component, module or application can be deployed. A JEE project must always be in the web.xml
file otherwise the project will be defective.
Note
Since the Spring 4.x container supports the Servlet Specification 3.0 in Tomcat 7 and above, web.xml
is no longer mandatory and can be replaced by org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer
or org.springframework.web.servlet.support.AbstractDispatcherServletInitializer
class.
The next major step is to convert the newly created dynamic web project to a Maven one. To complete the conversion, right-click on the project and navigate to the Configure | Convert Maven Project command set, as shown in the following image:
It is always best for the developer to study the directory structure of the project folder created before the actual implementation starts. The following is the directory structure of the Maven project after the conversion:
The project directories are just like the usual Eclipse dynamic web project without the pom.xml
file.
Creating a Maven project from scratch
Another method of creating a Spring MVC web project is by creating a Maven project from the start. Be sure to install the Maven 3.2 plugin in STS Eclipse. Browse the menu wizard again, and locate the Maven option. Click on the Maven Project to generate a new Maven project.
After clicking this option, a wizard will pop up, asking if an archetype is needed or not to create the Maven project. An archetype is a Maven plugin whose main objective is to create a project structure as per its template. To start quickly, choose an archetype plugin to create a simple Java application here. It is recommended to create the project using the archetype maven-archetype-webapp
. However, skipping the archetype selection can still be a valid option.
After you've done this, proceed with the Select an Archetype window shown in the following screenshot. Locate maven-archetype-webapp
then proceed with the last process.
The selection of the Archetype maven-archetype-webapp
will require the input of Maven parameters before ending the whole process with a new Maven project:
The required parameters for the Maven group or project are as follows:
- Group ID (
groupId
): This is the ID of the project's group and must be unique among all the project's groups. - Artifact ID (
artifactId
): This is the ID of the project. This is generally the name of the project. - Version (
version
): This is the version of the project. - Package (
package
): The initial or core package of the sources.
For more information on Maven plugin and configuration details, visit the documentation and samples on the site http://maven.apache.org/.
After providing the Maven parameters, the project source folder structure will be similar to the following screenshot: