KotlinによるSpring MVCセットアップ
1概要
このクイックチュートリアルでは、Kotlin言語を使用して簡単なSpring MVCプロジェクトを作成するために必要なことを見ていきます。
2 Maven
Maven構成の場合は、以下のhttps://search.maven.org/classic/#search%7Cga%7C1%7Ca%3A%22kotlin-stdlib-jre8%22[Kotlin依存関係]を追加する必要があります。
<dependency>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-stdlib-jre8</artifactId>
<version>1.1.4</version>
</dependency>
次のものも追加する必要があります。 20OR%20a%3A%22spring-webmvc%22)[Springの依存関係]:
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>4.3.10.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>4.3.10.RELEASE</version>
</dependency>
コードをコンパイルするには、ソースディレクトリを指定してhttps://search.maven.org/classic/#search%7Cga%7C1%7Cg%3A%22org.jetbrains.kotlin%22%20AND%20a%を設定する必要があります。 3A%22kotlin-maven-plugin%22[Kotlin Mavenプラグイン]、__pom.xmlのビルドセクションにあります。
<plugin>
<artifactId>kotlin-maven-plugin</artifactId>
<groupId>org.jetbrains.kotlin</groupId>
<version>1.1.4</version>
<executions>
<execution>
<id>compile</id>
<phase>compile</phase>
<goals>
<goal>compile</goal>
</goals>
</execution>
<execution>
<id>test-compile</id>
<phase>test-compile</phase>
<goals>
<goal>test-compile</goal>
</goals>
</execution>
</executions>
</plugin>
3 Spring MVCの設定
Kotlinアノテーション設定かXML設定のどちらかを使うことができます。
3.1. コトリンの設定
アノテーション設定はとても簡単です。 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<Class<** >>? {
return null
}
override fun getServletMappings(): Array<String> {
return arrayOf("/")
}
override fun getServletConfigClasses(): Array<Class<** >> {
return arrayOf(ApplicationWebConfig::class.java)
}
}
3.2. XML設定
ApplicationWebConfig
クラスのXMLと同等のものは、次のとおりです。
<beans xmlns="...">
<context:component-scan base-package="com.baeldung.kotlin.mvc"/>
<mvc:view-controller path="/welcome.html"/>
<mvc:annotation-driven/>
<bean id="templateResolver"
class="org.thymeleaf.spring4.templateresolver.SpringResourceTemplateResolver">
<property name="prefix" value="/WEB-INF/view/"/>
<property name="suffix" value=".html"/>
<property name="templateMode" value="HTML"/>
</bean>
<bean id="templateEngine"
class="org.thymeleaf.spring4.SpringTemplateEngine">
<property name="templateResolver" ref="templateResolver"/>
</bean>
<bean class="org.thymeleaf.spring4.view.ThymeleafViewResolver">
<property name="templateEngine" ref="templateEngine"/>
<property name="order" value="1"/>
</bean>
</beans>
この場合は、
web.xml
設定も指定する必要があります。
<web-app xmlns=...>
<display-name>Spring Kotlin MVC Application</display-name>
<servlet>
<servlet-name>spring-web-mvc</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/spring-web-config.xml</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>spring-web-mvc</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>
4 HTMLビュー
対応するhtmlリソースは
/WEB-INF/view
ディレクトリの下にあります。上記のView Controller設定では、基本的なView Controller、
welcome.html
を定義しました。対応するリソースの内容は次のとおりです。
<html>
<head>Welcome</head>
<body>
<h1>Body of the welcome view</h1>
</body>
</html>
5結論
プロジェクトを実行した後、http://localhost:8080/welcome.htmlにある構成済みのウェルカムページにアクセスできます。
この記事では、KotlinとXMLの両方の構成を使用して単純なSpring MVCプロジェクトを構成しました。
完全なソースコードはhttps://github.com/eugenp/tutorials/tree/master/spring-mvc-kotlin[over on GitHub]にあります。