Spring MVC Setup avec Kotlin
1. Vue d'ensemble
Dans ce rapide didacticiel, nous allons examiner ce qu'il faut pour créer un projet Spring MVC simple avec le langage Kotlin.
2. Maven
Pour la configuration Maven, nous devons ajouter lesKotlin dependencies suivants:
org.jetbrains.kotlin
kotlin-stdlib-jre8
1.1.4
Nous devons également ajouter lesSpring dependencies suivants:
org.springframework
spring-web
4.3.10.RELEASE
org.springframework
spring-webmvc
4.3.10.RELEASE
Pour compiler notre code, nous devons spécifier notre répertoire source et configurer lesKotlin Maven Plugin dans la section build de nospom.xml:
kotlin-maven-plugin
org.jetbrains.kotlin
1.1.4
compile
compile
compile
test-compile
test-compile
test-compile
3. Configuration Spring MVC
Nous pouvons utiliser la configuration d'annotation Kotlin ou une configuration XML.
3.1. Configuration de Kotlin
La configuration des annotations est assez simple. Nous avons configuré les contrôleurs de vue, le résolveur de gabarit et le moteur de gabarit. Ensuite, nous pouvons les utiliser pour configurer le résolveur de vues:
@EnableWebMvc
@Configuration
open class ApplicationWebConfig : WebMvcConfigurerAdapter(),
ApplicationContextAware {
private var applicationContext: ApplicationContext? = null
override fun setApplicationContext(applicationContext:
ApplicationContext?) {
this.applicationContext = applicationContext
}
override fun addViewControllers(registry:
ViewControllerRegistry?) {
super.addViewControllers(registry)
registry!!.addViewController("/welcome.html")
}
@Bean
open fun templateResolver(): SpringResourceTemplateResolver {
return SpringResourceTemplateResolver()
.apply { prefix = "/WEB-INF/view/" }
.apply { suffix = ".html"}
.apply { templateMode = TemplateMode.HTML }
.apply { setApplicationContext(applicationContext) }
}
@Bean
open fun templateEngine(): SpringTemplateEngine {
return SpringTemplateEngine()
.apply { setTemplateResolver(templateResolver()) }
}
@Bean
open fun viewResolver(): ThymeleafViewResolver {
return ThymeleafViewResolver()
.apply { templateEngine = templateEngine() }
.apply { order = 1 }
}
}
Ensuite, créons une classeServletInitializer. La classe devrait étendreAbstractAnnotationConfigDispatcherServletInitializer. Ceci est un remplacement de la configuration traditionnelle deweb.xml:
class ApplicationWebInitializer:
AbstractAnnotationConfigDispatcherServletInitializer() {
override fun getRootConfigClasses(): Array>? {
return null
}
override fun getServletMappings(): Array {
return arrayOf("/")
}
override fun getServletConfigClasses(): Array> {
return arrayOf(ApplicationWebConfig::class.java)
}
}
3.2. Configuration XML
L'équivalent XML de la classeApplicationWebConfig est:
Dans ce cas, nous devons également spécifier la configuration deweb.xml:
Spring Kotlin MVC Application
spring-web-mvc
org.springframework.web.servlet.DispatcherServlet
1
contextConfigLocation
/WEB-INF/spring-web-config.xml
spring-web-mvc
/
4. Les vues Html
La ressource html correspondante se trouve sous le répertoire/WEB-INF/view. Dans la configuration du contrôleur de vue ci-dessus, nous avons défini un contrôleur de vue de base,welcome.html. Le contenu de la ressource correspondante est:
Welcome
Body of the welcome view
5. Conclusion
Après avoir exécuté le projet, nous pouvons accéder à la page d'accueil configurée àhttp://localhost:8080/welcome.html.
Dans cet article, nous avons configuré un projet Spring MVC simple à l'aide d'une configuration Kotlin et XML.
Le code source complet est disponibleover on GitHub.