KotlinによるSpring MVCセットアップ

Kotlinを使用したSpring MVCセットアップ

1. 概要

このクイックチュートリアルでは、Kotlin言語を使用して単純なSpringMVCプロジェクトを作成するために必要なものを見ていきます。

2. メーベン

Maven構成の場合、次のKotlin dependenciesを追加する必要があります。


    org.jetbrains.kotlin
    kotlin-stdlib-jre8
    1.1.4

また、次のSpring dependenciesを追加する必要があります。


    org.springframework
    spring-web
    4.3.10.RELEASE


    org.springframework
    spring-webmvc
    4.3.10.RELEASE

コードをコンパイルするには、ソースディレクトリを指定し、pom.xmlのビルドセクションでKotlin Maven Pluginを構成する必要があります。


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

3. Spring MVC設定

Kotlin注釈構成またはXML構成のいずれかを使用できます。

3.1. Kotlinの構成

注釈の構成は非常に簡単です。 View Controller、テンプレートリゾルバ、およびテンプレートエンジンをセットアップします。 その後、それらを使用してビューリゾルバーを構成できます。

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

次に、ServletInitializerクラスを作成しましょう。 クラスはAbstractAnnotationConfigDispatcherServletInitializer.を拡張する必要があります。これは、従来のweb.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. XML構成

ApplicationWebConfigクラスに相当するXMLは次のとおりです。


    

    

    

    
        
        
        
    

    
        
    


    
        
        
    

この場合、web.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. HTMLビュー

対応するhtmlリソースは、/WEB-INF/viewディレクトリの下にあります。 上記のViewController構成では、基本的なView Controllerwelcome.htmlを定義しました。 対応するリソースの内容は次のとおりです。


    Welcome

    
        

Body of the welcome view

5. 結論

プロジェクトを実行した後、http://localhost:8080/welcome.htmlで構成されたウェルカムページにアクセスできます。

この記事では、KotlinとXMLの両方の構成を使用して、簡単なSpring MVCプロジェクトを構成しました。

完全なソースコードはover on GitHubで入手できます。