Monday, 9 April 2018

How to create spring hello world project using maven (Import as maven project) | Spring Tutorial

Enjoying this Java & Spring tutorial?

Subscribe to Ram N Java on YouTube

Introduction

Apache Maven simplifies Java development by automating build tasks, standardizing directory layouts, and handling third-party dependencies seamlessly. When kickstarting your journey with Spring, generating and importing a simple Maven-based project into your IDE is the ideal first step.

In this step-by-step tutorial, you will learn how to set up a clean Spring Hello World project using Maven, configure the essential dependencies in pom.xml, import it into Eclipse, and execute your first Spring IoC container application.

1. Configure Maven Dependencies (pom.xml)

To enable core Spring features, add the spring-context artifact to your project's pom.xml:

<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
         http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.ramnjava</groupId>
    <artifactId>spring-hello-world-maven</artifactId>
    <version>1.0-SNAPSHOT</version>

    <dependencies>
        <!-- Spring Core & Context -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>5.3.30</version>
        </dependency>
    </dependencies>
</project>
  

2. Create the Java Bean Class (HelloWorld.java)

Create a simple Java POJO with a property and a greeting method under src/main/java:

package com.ramnjava;

public class HelloWorld {
    private String message;

    public void setMessage(String message) {
        this.message = message;
    }

    public void sayHello() {
        System.out.println("Message: " + message);
    }
}
  

3. Configure Spring Beans (applicationContext.xml)

Place applicationContext.xml inside src/main/resources to define your Spring bean:

<beans xmlns="http://www.springframework.org/schema/beans"
       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.xsd">

    <bean id="helloWorldBean" class="com.ramnjava.HelloWorld">
        <property name="message" value="Hello World from Spring Maven Project!" />
    </bean>

</beans>
  

4. Bootstrap the Application (App.java)

Create the main executable class to load the context and retrieve your bean:

package com.ramnjava;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class App {
    public static void main(String[] args) {
        ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
        HelloWorld hello = (HelloWorld) context.getBean("helloWorldBean");
        hello.sayHello();
    }
}
  

5. Import into Eclipse IDE

To open and run this project in Eclipse:

  • Go to File > Import...
  • Select Maven > Existing Maven Projects and click Next.
  • Browse to your project directory containing pom.xml and click Finish.
  • Right-click App.java and choose Run As > Java Application.

Watch More Spring Tutorials


Click here to watch on Youtube:
https://www.youtube.com/watch?v=iw145wSv20o&list=UUhwKlOVR041tngjerWxVccw

Click the below Image to Enlarge:





How to create spring hello world project using maven (Import as maven project) | Spring Tutorial

How to create spring hello world project using maven (Import as maven project) | Spring Tutorial

How to create spring hello world project using maven (Import as maven project) | Spring Tutorial

How to create spring hello world project using maven (Import as maven project) | Spring Tutorial

How to create spring hello world project using maven (Import as maven project) | Spring Tutorial

How to create spring hello world project using maven (Import as maven project) | Spring Tutorial

How to create spring hello world project using maven (Import as maven project) | Spring Tutorial

How to create spring hello world project using maven (Import as maven project) | Spring Tutorial

How to create spring hello world project using maven (Import as maven project) | Spring Tutorial

How to create spring hello world project using maven (Import as maven project) | Spring Tutorial

How to create spring hello world project using maven (Import as maven project) | Spring Tutorial

How to create spring hello world project using maven (Import as maven project) | Spring Tutorial

How to create spring hello world project using maven (Import as maven project) | Spring Tutorial


Maven Commands and Spring 5 dependencies.txt


Generate project structure with Maven:

mvn archetype:generate -DgroupId=com.ram.core -DartifactId=SpringHelloWorld -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false


Convert to Eclipse project:

mvn eclipse:eclipse

Compile:

mvn clean compile


Spring 5 dependencies:

<properties>
    <spring.version>5.0.2.RELEASE</spring.version>
</properties>


<!-- Spring 5 dependencies -->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-core</artifactId>
    <version>${spring.version}</version>
</dependency>

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-context</artifactId>
    <version>${spring.version}</version>
</dependency>

pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0%20http://maven.apache.org/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.ram.core</groupId>
    <artifactId>SpringHelloWorld</artifactId>
    <packaging>jar</packaging>
    <version>1.0-SNAPSHOT</version>
    <name>SpringHelloWorld</name>
    <url>http://maven.apache.org</url>

    <properties>
        <spring.version>5.0.2.RELEASE</spring.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>3.8.1</version>
            <scope>test</scope>
        </dependency>

        <!-- Spring 5 dependencies -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>${spring.version}</version>
        </dependency>

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>${spring.version}</version>
        </dependency>

    </dependencies>
</project>

HelloWorld.java

package com.ram.core;

/**
 * Spring bean
 *
 */

public class HelloWorld
{
    private String name;

    public void setName(String name)
    {
        System.out.println("setName(String name) method is called, "+name);
        this.name = name;
    }

    public void printHello()
    {
        System.out.println("Spring 5 : Hello World! " + name);
    }
}

SpringBeans.xml

<beans xmlns="http://www.springframework.org/schema/beans"
    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-4.3.xsd">


    <bean id="helloBean" class="com.ram.core.HelloWorld">
        <property name="name" value="Peter" />
    </bean>

</beans>

App.java

package com.ram.core;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class App
{
    public static void main(String[] args)
    {
        ApplicationContext context = new ClassPathXmlApplicationContext(
                "SpringBeans.xml");

        HelloWorld helloWorldObj = (HelloWorld) context.getBean("helloBean");
        System.out.println(
                "Got helloWorldObj from the ApplicationContext(Spring Container)");
        helloWorldObj.printHello();

    }
}

Output

Mar 26, 2018 9:57:00 AM org.springframework.context.support.AbstractApplicationContext prepareRefresh
INFO: Refreshing org.springframework.context.support.ClassPathXmlApplicationContext@5b37e0d2: startup date [Mon Mar 26 09:57:00 IST 2018]; root of context hierarchy
Mar 26, 2018 9:57:00 AM org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
INFO: Loading XML bean definitions from class path resource [SpringBeans.xml]
setName(String name) method is called, Peter
Got helloWorldObj from the ApplicationContext(Spring Container)
Spring 5 : Hello World! Peter

Click the below link to download the code:
https://sites.google.com/site/ramj2eev2/java_basics/SpringHelloWorld_import_maven.zip?attredirects=0&d=1

Github Link:
https://github.com/ramram43210/javaee/tree/master/Spring_2018/SpringHelloWorld_import_maven

Bitbucket Link:
https://bitbucket.org/ramram43210/spring/src/a60a91aa34013374c842d2668a441068c9cc47ff/Spring_2018/SpringHelloWorld_import_maven/?at=master

See also:

  • All JavaEE Videos Playlist
  • All JavaEE Videos
  • All JAVA EE Links
  • Servlets Tutorial
  • All Design Patterns Links
  • JDBC Tutorial
  • Java Collection Framework Tutorial
  • JAVA Tutorial
  • Kids Tutorial
  • Cooking Tutorial
  • No comments:

    Post a Comment

    Tutorials