Instalação do Spring MVC com Kotlin

Instalação do Spring MVC com Kotlin

1. Visão geral

Neste tutorial rápido, daremos uma olhada no que é necessário para criar um projeto Spring MVC simples com a linguagem Kotlin.

2. Maven

Para a configuração do Maven, precisamos adicionar o seguinteKotlin dependencies:


    org.jetbrains.kotlin
    kotlin-stdlib-jre8
    1.1.4

Também precisamos adicionar o seguinteSpring dependencies:


    org.springframework
    spring-web
    4.3.10.RELEASE


    org.springframework
    spring-webmvc
    4.3.10.RELEASE

Para compilar nosso código, precisamos especificar nosso diretório de origem e configurarKotlin Maven Plugin na seção de construção de nossopom.xml:


    kotlin-maven-plugin
    org.jetbrains.kotlin
    1.1.4
    
        
            compile
            compile
            
                compile
            
        
        
            test-compile
            test-compile
            
                test-compile
            
        
    

3. Configuração do Spring MVC

Podemos usar a configuração de anotação Kotlin ou uma configuração XML.

3.1. Configuração Kotlin

A configuração da anotação é bem simples. Configuramos os controladores de exibição, o resolvedor de modelos e o mecanismo de modelos. Depois disso, podemos usá-los para configurar o resolvedor de exibição:

@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 }
    }
}

A seguir, vamos criar uma classeServletInitializer. A classe deve estenderAbstractAnnotationConfigDispatcherServletInitializer.. Esta é uma substituição para a configuração tradicionalweb.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. Configuração XML

O XML equivalente para a classeApplicationWebConfig é:


    

    

    

    
        
        
        
    

    
        
    


    
        
        
    

Neste caso, temos que especificar a configuração deweb.xml também:



    Spring Kotlin MVC Application

    
        spring-web-mvc
        
            org.springframework.web.servlet.DispatcherServlet
        
        1
        
            contextConfigLocation
            /WEB-INF/spring-web-config.xml
        
    

    
        spring-web-mvc
        /
    

4. As visualizações Html

O recurso html correspondente está localizado no diretório/WEB-INF/view. Na configuração do controlador de exibição acima, definimos um controlador de exibição básico,welcome.html. O conteúdo do recurso correspondente é:


    Welcome

    
        

Body of the welcome view

5. Conclusão

Depois de executar o projeto, podemos acessar a página de boas-vindas configurada emhttp://localhost:8080/welcome.html.

Neste artigo, configuramos um projeto simples do Spring MVC usando as configurações Kotlin e XML.

O código-fonte completo está disponívelover on GitHub.