HelloWorld using Maven + Spring
A step by step guide to create a HelloWorld java application using Spring framework.
Generate project structure with Maven
mvn archetype:generate -DgroupId=net.qstation.springapp -DartifactId=HelloWorld -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
Add Spring dependency
In pom.xml, add
:
<!-- Shared version number properties -->
<properties>
<org.springframework.version>3.1.2.RELEASE</org.springframework.version>
</properties>
:
:
<!-- Spring framework -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${org.springframework.version
}</version>
</dependency>
:
Create the bean
Create src/main/java/net/qstation/springapp/HelloWorld.java
package net.qstation.springapp; /** * Spring bean * */ public class HelloWorld { private String name; public void setName(String name) { this.name = name; } public void printHello() { System.out.println("Hello ! " + name); } }
Configure the bean
Create src/main/resources/HelloWorld-bean.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-2.5.xsd"> <bean id="helloBean" class="net.qstation.springapp.HelloWorld"> <property name="name" value="q-station" /> </bean> </beans>
Create the app
Modify src/main/java/net/qstation/springapp/App.java
package net.qstation.springapp; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; /** * Hello world! * */ public class App { public static void main( String[] args ) { ApplicationContext context = new ClassPathXmlApplicationContext( "HelloWorld-bean.xml"); HelloWorld obj = (HelloWorld) context.getBean("helloBean"); obj.printHello(); } }
Package & run it
Plugin one-jar may be use to produce a all in one jar with all dependency included.
<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <configuration> <archive> <manifest> <mainClass>net.qstation.springapp.App</mainClass> </manifest> </archive> </configuration> </plugin> <plugin> <groupId>org.dstovall</groupId> <artifactId>onejar-maven-plugin</artifactId> <version>1.4.4</version> <executions> <execution> <configuration> </configuration> <goals> <goal>one-jar</goal> </goals> </execution> </executions> </plugin> </plugins> </build> <pluginRepositories> <pluginRepository> <id>onejar-maven-plugin.googlecode.com</id> <url>http://onejar-maven-plugin.googlecode.com/svn/mavenrepo</url> </pluginRepository> </pluginRepositories>
Then,
mvn clean package java -jar target/HelloWorld-1.0-SNAPSHOT.one-jar.jar