Spring boot 入门第一天Hello world

来源:互联网 发布:人变老的软件 编辑:程序博客网 时间:2024/05/20 10:12

现在很多spring boot都是用IDEA去开发,这里我们使用的是在Eclipse里使用SpringBoot,首先要安装下STS插件。
安装插件之前,我一般建议大伙开下vpn 因为是下载国外的东西 用vpn会很快,这个具体怎么玩我也没尝试过,有小伙伴有经验的可以交流下。
以及提前配置下Eclipse里的Maven插件,改成国内阿里云镜像,具体方式:http://www.jianshu.com/p/893d5f4351ed
后面新建springboot项目的时候,会下载jar包,用国内镜像会快很多;

搭建一个简单的web项目

打开Eclipse 菜单栏 Help -> Eclipse Marketplace…
选择Popular,然后下载。


之后点击confirm


下载完成后,会重启eclipse。
这时候我们可以开始创建我们第一个spring boot项目了,


我们看到是这样的,这里我们改几个参数。


改项目名,包名,点击next。


到了 配置依赖的界面,我们这里暂时不需要用到其他的,仅选择一个Web依赖即可;


然后点击Finish,这时候会下载很多Jar包,如果有小伙伴么有修改成国内镜像,那就可以好好体验下什么叫做龟速了;
生成的项目结构如下,HelloWorldApplication是启动类。


我们右击Run As 选择 Spring Boot app
这里我们不需要Tomcat 因为SpringBoot把Tomcat集成了,默认端口8080
Tomcat启动成功,端口8080,耗时7.984秒。


接着我们打开浏览器输入地址:http://localhost:8080,出现下面内容则表示项目启动成功。


spring boot项目创建成功,我们现在写我们第一个helloWorld。
接着我们写一个helloWorld的请求,现在我们项目下面建一个HelloWorldController类。代码如下:

package com.zznode.springBootDemo;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;@RestControllerpublic class HelloWorldController {    @RequestMapping("/hello")    public String say(){        return "Spring Boot 你大爷!";    }}


指定/hello请求 返回Spring Boot 你大爷
然后我们重新启动HelloWorldApplication类
请求 http://localhost:8080/hello

这样一个简单的Spring Boot的项目就完成了,是不是很简单。

光速入门-开发一个web服务

没有比较就没有伤害,让我们先看看传统Spring MVC开发一个简单的Hello World Web应用程序,你应该做什么,我能想到一些基本的需求。
- 一个项目结构,其中有一个包含必要依赖的Maven或者Gradle构建文件,最起码要有Spring MVC和Servlet API这些依赖。
- 一个web.xml文件(或者一个WebApplicationInitializer实现),其中声明了Spring的DispatcherServlet。
- 一个启动了Spring MVC的Spring配置
- 一控制器类,以“hello World”相应HTTP请求。
- 一个用于部署应用程序的Web应用服务器,比如Tomcat。
最让人难以接受的是,这份清单里面只有一个东西是和Hello World功能相关的,即控制器,剩下的都是Spring开发的Web应用程序必需的通用模板。

项目结构

根据上面的操作已经初始化了一个Spring Boot的框架了:

  • pom.xml:Maven构建说明文件。
  • HelloWorldApplication.java:一个带有main()方法的类,用于启动应用程序(关键)。
  • HelloWorldApplicationTests.java:一个空的Junit测试类,它加载了一个使用Spring - Boot字典配置功能的Spring应用程序上下文。
  • application.properties:一个空的properties文件,你可以根据需要添加配置属性。

解析pom.xml

大家跟我一起移步pom.xml,看看Spring Boot的跟普通Spring MVC工程的Maven配置有啥不一样。

<?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.dudu</groupId>    <artifactId>chapter1</artifactId>    <version>0.0.1-SNAPSHOT</version>    <packaging>jar</packaging>    <name>chapter1</name>    <description>Demo project for Spring Boot</description>    <parent>        <groupId>org.springframework.boot</groupId>        <artifactId>spring-boot-starter-parent</artifactId>        <version>1.5.1.RELEASE</version>        <relativePath/> <!-- lookup parent from repository -->    </parent>    <properties>        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>        <java.version>1.8</java.version>    </properties>    <dependencies>        <dependency>            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-starter-web</artifactId>        </dependency>        <dependency>            <groupId>org.springframework.boot</groupId>            <artifactId>spring-boot-starter-test</artifactId>            <scope>test</scope>        </dependency>    </dependencies>    <build>        <plugins>            <plugin>                <groupId>org.springframework.boot</groupId>                <artifactId>spring-boot-maven-plugin</artifactId>            </plugin>        </plugins>    </build></project>

可以看出,有几个配置是不大一样的,我们挑几个重要的说说,要是客观不想过早的了解这些,自行跳过这一知识点即可。

Spring Boot父级依赖

<parent>        <groupId>org.springframework.boot</groupId>        <artifactId>spring-boot-starter-parent</artifactId>        <version>1.5.1.RELEASE</version>        <relativePath/> <!-- lookup parent from repository -->    </parent>````这块配置就是Spring Boot父级依赖,有了这个,当前的项目就是Spring Boot项目了,spring-boot-starter-parent是一个特殊的starter,它用来提供相关的Maven默认依赖,使用它之后,常用的包依赖可以省去version标签。关于Spring Boot提供了哪些jar包的依赖,可查看C:\Users\用户.m2\repository\org\springframework\boot\spring-boot-dependencies\1.5.1.RELEASE\spring-boot-dependencies-1.5.1.RELEASE.pom这里我就贴一点点意思意思,如下:<div class="se-preview-section-delimiter"></div>



应用入口类

SpringBootApplication是一个很关键的启动类,程序的入口就是这里,为了演示简单,我们不再新建控制类,而是直接在这个入口类中编写,添加@RestController以及say方法,如下:

1.@SpringBootApplication是Sprnig Boot项目的核心注解,主要目的是开启自动配置。后续讲解原理的时候再深入介绍。

2.main方法这是一个标准的Java应用的main的方法,主要作用是作为项目启动的入口。

3.@RestController注解等价于@Controller+@ResponseBody的结合,使用这个注解的类里面的方法都以json格式输出。

结束

虽然我上面讲解了那么多,但是实际开发步骤就是那么简单暴力,初始化一个Spring Boot,添加一个控制类,启动就能看到效果了。
本章作为入门Spring Boot的入门介绍,相关的需要理解的概念就只有这几点:
- Spring Boot父级依赖的概念
- 起步依赖 spring-boot-starter-xx的概念
- 应用入口类的作用


如果哪里写的不好或者写错了,大家可以在下方留言,一起交流。

原创粉丝点击