美文网首页
2017.08.10

2017.08.10

作者: 铁拳宝宝爱芝麻 | 来源:发表于2017-08-10 20:25 被阅读0次

学习 spring boot [https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#getting-started-first-application]

在官方 documentation 中的 "Developing your first Spring Boot application" 这一章节,教你如何开始一个 hello world 程序。

  1. 安装好 jdk 和 maven
    jdk 1.8.0.144
    maven 3.5.0
    spring boot 1.5.6 (稳定版本)

  2. 创建pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

<modelVersion>4.0.0</modelVersion>

<groupId>com.example</groupId>
<artifactId>myproject</artifactId>
<version>0.0.1-SNAPSHOT</version>

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.5.6.RELEASE</version>
</parent>

<!-- Additional lines to be added here... -->
</project>      

执行 mvn package 命令,下载相应的依赖包,同时,会创建 target 目录,并试图对当前程序打包,生成可执行的 jar 文件,有一个 warning: JAR will be empty - no content was marked for inclusion!

  1. spring boot 提供了很多 starters(dependency descriptors),能够很方便根据这些依赖描述下载 jars 添加到 classpath 中
    spring-boot-starter-parent: 提供了很有用发 maven 默认配置,同时提供了依赖管理器的部分功能,所以我们不需要关注 jars 的版本标签,maven 能够通过 starter 提供的依赖描述就能自动下载对应版本的依赖 jars

spring-boot-starter-web:web application

执行 mvn dependency:tree,能够打印项目依赖树,同时第一次执行,会下载对应的依赖包。
在 pom.xml 中加上 spring-boot-starter-web,继续执行上面的命令,发现:spring-boot-starter-parent 自己未提供依赖,spring-boot-starter-web展示了依赖树,包括 tomcat server 和 spring boot

  1. 创建目录结构,创建 java 文件
    src/main/java/Example.java
@RestController
@EnableAutoConfiguration
public class Example {

@RequestMapping("/")
String home() {
    return "Hello World!";
}

public static void main(String[] args) throws Exception {
    SpringApplication.run(Example.class, args);
}
}

解释:
@RestController:这是一个固定注解(stereotype annotation),能够为用户提供代码阅读提示。在 spring 中,被@RestController 注解的类,为 web @Controller 类,在 spring 处理 web requests 时,会使用该类进行处理。这个注解是在类层面的(class-level)

@RequestMapping:提供了路由信息,它告诉 spring 任何路径带有 '/' 的HTTP Requests 都应该被映射到 home method。而@RestController告诉 spring 直接向调用者提交结果

@EnableAutoConfiguration 注解,也是类层面的(class-level),它能根据你添加的依赖包告诉 spring 如何进行配置。比如 spring-boot-starter-web 添加了 Tomcat 和 Spring MVC,auto-configuration 就会认为你在创建 web 应用并按此进行配置
注意:
starters 和 auto-configuration 是一起工作的,但是两者并没有绑定。你可以在 starter 之外自由选择 jar dependencies, spring boot 仍能据此进行最合适的配置。

  1. The "main" method
    main方法是 Java 的标准方法,同时也是应用程序的入口点。我们的代码中的 main 方法代表了 spring boot 中的 SpringApplication 类,并且调用 run 方法。SpringApplication 引导我们的应用启动spring,spring在启动已经自动配置完成的 tomcat web server。我们需要将 Example.class 作为参数传递给 run 方法,告诉 SpringApplication 这才是 主 spring 组件 (primary spring component)

  2. run the example
    mvn spring-boot:run
    启动成功后,在浏览器上输入 http:127.0.0.1:8080,页面返回 hello world

  3. create excecutable jar
    spring boot 提供了一种方式,能够直接将 jar 打包在一起
    在 pom.xml 文件中的 dependencies 节点后面加上 spring-boot-maven-plugin,执行
    mvn package
    就能够在target 目录下创建 jar 文件

java -jar jar文件执行
jar tvf jar文件 // 查看 jar文件包含的所有文件信息

相关文章

  • 2017.08.10

  • 2017.08.10

    曾经夜以继日做过梦不再记得,这几日总是会梦到过去一些事和人。在生命的长河中,越来越明白一个人身边的位置也就这么多,...

  • 2017.08.10

    “谢谢惠顾四个字,刮出一个谢字就该停手了,没必要刮得干干净净。” 人一旦矫情起来就感觉所有的非主流金句都是在写自己。

  • 2017.08.10

    昨天一个朋友说我,出淤泥而不染……让我思想连篇

  • 2017.08.10

    第一次来。

  • 2017.08.10

    今天终于把花呗的分期付款付完了,9个月的分期终于是结束了。去年过得很不好,浑浑噩噩的完全不知道自己要干什么,然后把...

  • 2017.08.10

    首先我说的不是要针对谁,其次如果你有这些毛病那我先说声抱歉可能波及到你的自尊心了。以下言论也许会有错别字和伤及无辜...

  • 2017.08.10

    希望任何人都偷不走你的影子。

  • 2017.08.10

    @所有人 《命运乾坤4期》作业 (2017年8月10日,周四,请于明天早上8:00前上传到本群) 亲爱的学员:周四...

  • 2017.08.10

    今天是晚上写的,感觉忘了好多昨晚和今早的事。 今早早早出门搭公交,还是没有遇见她。怎么一大早也那么多人坐29,只能...

网友评论

      本文标题:2017.08.10

      本文链接:https://www.haomeiwen.com/subject/vzckrxtx.html