Please follow these steps:
Step1: Add the spring dependencies to the build.sbt file.
libraryDependencies += "org.springframework" % "spring-context" % "4.1.6.RELEASE" libraryDependencies += "org.springframework" % "spring-core" % "4.1.6.RELEASE" libraryDependencies += "org.springframework" % "spring-beans" % "4.1.6.RELEASE" libraryDependencies += "org.springframework" % "spring-aop" % "4.1.6.RELEASE"
Step 2: Create a new class ( ApplicationGlobalSettings.java ) and implement the GlobalSettings class.
package com.ranga.global.settings; import org.springframework.context.ConfigurableApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import play.Application; import play.GlobalSettings; public class ApplicationGlobalSettings extends GlobalSettings { private static final String APPLICATION_CONTEXT_XML = "applicationContext.xml"; private ConfigurableApplicationContext applicationContext; @Override public void beforeStart(Application application) { super.beforeStart(application); } @Override public void onStart(Application application) { super.onStart(application); applicationContext = new ClassPathXmlApplicationContext(APPLICATION_CONTEXT_XML); } @Override public void onStop(Application application) { super.onStop(application); if(applicationContext != null) { applicationContext.close(); } }
}
Step 3: Create a new spring configuration file in the conf folder ( applicationContext.xml ). conf \ applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?> <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.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> <context:component-scan base-package="com.ranga.services, com.ranga.daos"/> </beans>
Step 4: Add the newly created GlobalSettings file location to the application configuration file ( conf / application.conf ).
.....some more configuration here.....
Step 5: Create a new service class in the com.ranga.service package (HelloWorldService.java).
package com.ranga.services; import javax.inject.Inject; import org.springframework.stereotype.Service; import com.ranga.daos.HelloWorldDAO; @Service public class HelloWorldService { @Inject private HelloWorldDAO helloWorldDAO; public String sayHello() { return helloWorldDAO.sayHello(); } }
Step6: Create a new dao class in the com.ranga.daos package ( HelloWorldDAO.java ).
package com.ranga.daos; import org.springframework.stereotype.Repository; @Repository public class HelloWorldDAO { public String sayHello() { return "Hello Ranga!"; } }
Step7: Finally, paste HelloWorldService into the Application.java file.
package com.ranga.controllers; import javax.inject.Inject; import org.springframework.beans.factory.annotation.Autowired; import com.ranga.services.HelloWorldService; import play.*; import play.mvc.*; import views.html.*; public class Application extends Controller { @Inject private HelloWorldService helloWorldService; public Result index() { return ok(index.render(helloWorldService.sayHello())); } }
Step 8: Finally, change the code for the index.scala.html file.
@(message: String) <h1>@message</h1>
Now let's do it ... launch the application.