You need have Maven Java project to start with Spring Framework. I you don't have one, you can run this maven command to generate some:
mvn archetype:generate -DarchetypeArtifactId=maven-archetype-quickstart -DgroupId={project packaging} -DartifactId=TestAppSpringMvn -Dverison=1.0-SNAPSHOT
Now
you can import generated project to IDE.
To start with Spring Framework you need add its artifacts to POM file. The following list contains all Spring Framework dependencies which allow you to work with Spring 3:
< groupId >org.springframework</ groupId > |
< artifactId >spring-core</ artifactId > |
< version >${org.springframework.version}</ version > |
< groupId >org.springframework</ groupId > |
< artifactId >spring-expression</ artifactId > |
< version >${org.springframework.version}</ version > |
< groupId >org.springframework</ groupId > |
< artifactId >spring-beans</ artifactId > |
< version >${org.springframework.version}</ version > |
< groupId >org.springframework</ groupId > |
< artifactId >spring-aop</ artifactId > |
< version >${org.springframework.version}</ version > |
< groupId >org.springframework</ groupId > |
< artifactId >spring-context</ artifactId > |
< version >${org.springframework.version}</ version > |
< groupId >org.springframework</ groupId > |
< artifactId >spring-context-support</ artifactId > |
< version >${org.springframework.version}</ version > |
< groupId >org.springframework</ groupId > |
< artifactId >spring-tx</ artifactId > |
< version >${org.springframework.version}</ version > |
< groupId >org.springframework</ groupId > |
< artifactId >spring-jdbc</ artifactId > |
< version >${org.springframework.version}</ version > |
< groupId >org.springframework</ groupId > |
< artifactId >spring-orm</ artifactId > |
< version >${org.springframework.version}</ version > |
< groupId >org.springframework</ groupId > |
< artifactId >spring-oxm</ artifactId > |
< version >${org.springframework.version}</ version > |
< groupId >org.springframework</ groupId > |
< artifactId >spring-web</ artifactId > |
< version >${org.springframework.version}</ version > |
< groupId >org.springframework</ groupId > |
< artifactId >spring-webmvc</ artifactId > |
< version >${org.springframework.version}</ version > |
< groupId >org.springframework</ groupId > |
< artifactId >spring-webmvc-portlet</ artifactId > |
< version >${org.springframework.version}</ version > |
< groupId >org.springframework</ groupId > |
< artifactId >spring-test</ artifactId > |
< version >${org.springframework.version}</ version > |
</
dependency
>
Now you have to define context configuration XML file. This file has contains bean declarations, but since Spring 3 support annotation-based bean declarations, the context file can also contains additional configuration such as the package paths which Spring should scan for annotation-based beans. This autoscan context file component can looks like this:
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-2.5.xsd">
<context:component-scan base-package="com.springApp.packt.maven" />
</beans>
If you using Spring in your project, you will need to write tests that require the injection of Spring Beans. Now I will show you simple example of that test:
First lets create service class:
package com.springApp.packt.maven.services;
import org.springframework.stereotype.Service;
@Service("myServiceOne")
public class MyServiceOneImpl {
public String getA(){
return "A";
}
}
@Service - annotation preceding the class definition and note that the annotation contains the bean name: @Service("beanNameHere")
Before you start to create your test class, you have to add jUnit dependencies to your pom.xml file:
</dependencies>
...
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.8.1</version>
</dependency>
</dependencies>
Test class with one simple test looks like this:
package com.springApp.packt.maven.services;
import junit.framework.Assert;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.AbstractJUnit4SpringContextTests;
@ContextConfiguration("classpath:context.xml")
public class MyServiceOneTest extends AbstractJUnit4SpringContextTests{
@Autowired
private MyServiceOneImpl myServiceOne;
@Test
public void shoulGetA(){
Assert.assertEquals(myServiceOne.getA(),"A");
}
}
AbstractIUnit4SpringContextTests-initialize Spring
@ContextConfiguration - define the location of the context file for Test
@Autowired - injecting the bean
Now if you build you project by command
mvn clean install, you should see short test execution raport in the end of your build process.
Brak komentarzy:
Prześlij komentarz