11.10 应用启动类

我们在main函数中调用SpringApplication类的静态run方法,我们的SpringBootApplication主类代码如下:

  1. package com.easy.kotlin.chapter11_kotlin_springboot
  2. import com.easy.kotlin.chapter11_kotlin_springboot.dao.ArticleRepository
  3. import com.easy.kotlin.chapter11_kotlin_springboot.entity.Article
  4. import org.springframework.boot.CommandLineRunner
  5. import org.springframework.boot.SpringApplication
  6. import org.springframework.boot.autoconfigure.SpringBootApplication
  7. import org.springframework.context.annotation.Bean
  8. import java.util.*
  9. @SpringBootApplication
  10. class Chapter11KotlinSpringbootApplication {
  11. @Bean
  12. fun init(repository: ArticleRepository) = CommandLineRunner {
  13. val article: Article = Article()
  14. article.author = "Kotlin"
  15. article.title = "极简Kotlin教程 ${Date()}"
  16. article.content = "Easy Kotlin ${Date()}"
  17. repository.save(article)
  18. }
  19. }
  20. fun main(args: Array<String>) {
  21. SpringApplication.run(Chapter11KotlinSpringbootApplication::class.java, *args)
  22. }

这里我们主要关注的是@SpringBootApplication注解,它包括三个注解,简单说明如下表:

注解 功能说明
@SpringBootConfiguration(它包括@Configuration 表示将该类作用springboot配置文件类。
@EnableAutoConfiguration 表示SpringBoot程序启动时,启动Spring Boot默认的自动配置。
@ComponentScan 表示程序启动时自动扫描当前包及子包下所有类。

11.10.1 启动运行

如果是在IDEA中运行,可以直接点击main函数运行,如下图所示:

Kotlin极简教程

如果想在命令行运行,直接在项目根目录下运行命令:

  1. $ gradle bootRun

我们可以看到控制台的日志输出:

  1. 2017-07-18 17:42:53.689 INFO 21239 --- [ restartedMain] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8000 (http)
  2. Hibernate: insert into article (author, content, deleted_date, gmt_created, gmt_modified, is_deleted, title, version) values (?, ?, ?, ?, ?, ?, ?, ?)
  3. 2017-07-18 17:42:53.974 INFO 21239 --- [ restartedMain] c.Chapter11KotlinSpringbootApplicationKt : Started Chapter11KotlinSpringbootApplicationKt in 16.183 seconds (JVM running for 17.663)
  4. <==========---> 83% EXECUTING [1m 43s]
  5. > :bootRun

我们在浏览器中直接访问: http://127.0.0.1:8000/listAllArticle , 可以看到类似如下输出:

  1. [
  2. {
  3. "id": 1,
  4. "version": 0,
  5. "title": "极简Kotlin教程",
  6. "content": "Easy Kotlin ",
  7. "author": "Kotlin",
  8. "gmtCreated": 1500306475000,
  9. "gmtModified": 1500306475000,
  10. "deletedDate": 1500306475000
  11. },
  12. {
  13. "id": 2,
  14. "version": 0,
  15. "title": "极简Kotlin教程",
  16. "content": "Easy Kotlin ",
  17. "author": "Kotlin",
  18. "gmtCreated": 1500306764000,
  19. "gmtModified": 1500306764000,
  20. "deletedDate": 1500306764000
  21. }
  22. ]

至此,我们已经完成了一个简单的REST接口从数据库到后端的开发。

下面我们继续来写一个前端的文章列表页面。