11.10 应用启动类
我们在main函数中调用SpringApplication类的静态run方法,我们的SpringBootApplication主类代码如下:
1. package com.easy.kotlin.chapter11_kotlin_springboot
3. import com.easy.kotlin.chapter11_kotlin_springboot.dao.ArticleRepository
4. import com.easy.kotlin.chapter11_kotlin_springboot.entity.Article
5. import org.springframework.boot.CommandLineRunner
6. import org.springframework.boot.SpringApplication
7. import org.springframework.boot.autoconfigure.SpringBootApplication
8. import org.springframework.context.annotation.Bean
9. import java.util.*
11. @SpringBootApplication
12. class Chapter11KotlinSpringbootApplication {
13. @Bean
14. fun init(repository: ArticleRepository) = CommandLineRunner {
15. val article: Article = Article()
16. article.author = "Kotlin"
17. article.title = "极简Kotlin教程 ${Date()}"
18. article.content = "Easy Kotlin ${Date()}"
19. repository.save(article)
20. }
21. }
23. fun main(args: Array<String>) {
24. SpringApplication.run(Chapter11KotlinSpringbootApplication::class.java, *args)
25. }
这里我们主要关注的是@SpringBootApplication注解,它包括三个注解,简单说明如下表:
| 注解 | 功能说明 |
|---|---|
| @SpringBootConfiguration(它包括@Configuration) | 表示将该类作用springboot配置文件类。 |
| @EnableAutoConfiguration | 表示SpringBoot程序启动时,启动Spring Boot默认的自动配置。 |
| @ComponentScan | 表示程序启动时自动扫描当前包及子包下所有类。 |
11.10.1 启动运行
如果是在IDEA中运行,可以直接点击main函数运行,如下图所示:

如果想在命令行运行,直接在项目根目录下运行命令:
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接口从数据库到后端的开发。
下面我们继续来写一个前端的文章列表页面。
