Spring MVC Setup avec Kotlin

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.