美文网首页程序员
创建你的第一个应用

创建你的第一个应用

作者: beeMonkey | 来源:发表于2018-04-30 14:48 被阅读0次

    11.1 创建POM

    我们需要通过创建一个Maven的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>2.0.1.RELEASE</version>
        </parent>
        <!-- Additional lines to be added here... -->
    </project>
    

    上述的列表能够让你有一个可行的构建。你可以通过运行mvn package(目前,你可以无视“jar will be empty - no content was marked for inclusion!”的警告)

    在这节,你可以导入项目到IDE中(大部分现代的Java IDE都内置了对Maven的支持)

    11.2 添加依赖

    Spring Boot提供了一系列的Starters使你能添加jar包到classpath中。我们的应用已经在POM中的parent节点使用了spring-boot-starter-parent。它是一个特殊的starter,能够提供有用的Maven默认值。它同时也提供依赖管理,你就可以省略依赖的versions标签。

    其他的Starters提供你在开发特殊种类应用所需的依赖。因为我们开发的是一个网页应用,所以添加了spring-boot-starter-web这个依赖。在此之前,我们可以通过运行以下的命令来查看目前的项目依赖

    $ mvn dependency:tree
    [INFO] com.example:myproject:jar:0.0.1-SNAPSHOT

    命令mvn dependency:tree打印了一个树形的项目依赖。你可以看到spring-boot-web-starter它自身并不提供依赖。为了添加所需的依赖,编辑你的pom.xml并立即在parent节下面添加以下的依赖spring-boot-starter-web

    <dependencies>
        <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>
    

    如果你再次运行mvn dependency:tree的话,你可以看到一系列额外的依赖,包括Tomcat web服务器和Spring Boot

    11.3 编写代码

    为了完成我们的程序,我们需要创建一个Java文件。Maven默认从src/main/java中编译资源,所以你需要创建那样的文件目录结构然后添加一个名为src/main/java/Example.java的文件并包含以下代码:

    import org.springframework.boot.*;
    import org.springframework.boot.autoconfigure.*;
    import org.springframework.web.bind.annotion.*;
    
    @RestController
    @EnableAutoConfiguration
    public class Example{
              @RequestMapping("/")
              String home(){
                         return "Hello World";
              }
    
              public static void main(String[] args) throws Exception{
                            SpringApplication.run(Example.class,args)
                }
    }
    

    虽然这里没有很多的代码,但却发生很多我们看不到的事情,我们在不知不觉中经历了下一些节章节中重要的部分。

    11.3.1 @RestController和@RequestMapping 注解

    在我们的Example类中第一个注解就是@RestController.我们都知道它是一个固定的注解。它为阅读代码的人提供了暗示,对Spring来说这个类扮演了重要的角色。在这个例子中,我们的类是一个web @Controller ,所以在处理发起的web请求时,Spring就解析它们。

    @ReqeustMapping注解提供了路由信息。它告诉Spring任何/路径的HTTP请求都应该被映射到home方法中。@RestController注解则告知Spring将字符串结果直接返回给请求者。

    @RestController和@RequestMapping注解都是Spring MVC注解(它们并不是Spring Boot特有的)。详细信息请阅读MVC section中的Spring参考文档。

    11.3.2 @EnableAutoConfiguration注解

    第二个类级的注解就是@EnableAutoConfiguration。这个注解告知Spring Boot去“猜测”你想怎样配置Spring,基于你添加的jar依赖。由于spring-boot-starter-web添加了Tomcat和Spring MVC,自动配置则根据它假设你正在开发一个web程序

    Starters和Auto-Configuration
    自动配置是设计来搭配Starters更好工作的,但这两个概念并不是直接捆绑在一起的。你可以随心选择starters以外的jar依赖。Spring Boot照样能很好地自动配置你的应用。

    11.3.3 main方法

    关于我们应用的最后一部分是main方法,这就是应用入口的一个标准方法,它遵循Java的惯例。我们通过调用run将main方法委托给了SpringApplication类。SpringApplication启动我们的应用,开启Spring,相应地启动自动配置好的Tomcat web服务器。我们需要将Example.class作为一个参数传给run方法以告知SpringApplication哪个是基本的Spirng组件。通过args数组暴露任何的命令行参数。

    相关文章

      网友评论

        本文标题:创建你的第一个应用

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