SpringBoot初探

Posted Silentdoer

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringBoot初探相关的知识,希望对你有一定的参考价值。

一:前言

  今天面试得知对方会用到SpringBoot,而自己之前一直用的是SpringMVC,现通过写个简单的Demo来入个门;

二:项目创建

个人用的是IDEA来做Demo的;

1.先创建一个空项目,然后创建一个基于Maven的java application项目;

2.创建好后配置pom.xml文件并最终reimport

<?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>me.silentdoer</groupId>
    <artifactId>spring-boot-test</artifactId>
    <version>1.0-SNAPSHOT</version>

    <!-- 配置parent,这个就像applicationContext.xml里配置的一样,作为其它子元素的抽象父元素,但是允许子元素重写配置 -->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <!-- 注意大小写 -->
        <version>1.5.7.RELEASE</version>
        <relativePath/>
    </parent>
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.build.outputEncoding>UTF-8</project.build.outputEncoding>
        <java.version>1.8</java.version>
        <bootgi>org.springframework.boot</bootgi>
    </properties>
    <dependencies>
        <dependency>
            <!-- 由于上面配置了parent,故这里只需要配置那些需要覆写的即可(groupId还是得有),这个包里有包括web所需的所有SpringMVC的jar包 -->
            <groupId>${bootgi}</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>
    <build>
        <plugins>
            <plugin>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

3.创建me.silentdoer.springboot.MySpringBootApplication类

package me.silentdoer.springboot;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

/**
 * @author silentdoer
 * @version 1.0
 * @description the description
 * @date 4/12/18 7:17 PM
 */

/**
 * TODO 此注解指定下面的类是springboot的启动类,然后SpringApplication.run(...)时会自动去加载依赖的jar包/模块等(如tomcat)
 * 顺便还从这个注解的源码里学到了创建注解对象时还可以通过“构造方法”初始化“属性”,然后注解的声明里还可以声明内部注解
 */
@SpringBootApplication
public class MySpringBootApplication {
    public static void main(String[] args){
        // TODO 注意,tomcat本质上是一个java application,这里内部实际上是运行了一个tomcat
        // TODO 实现原理可以看:org.apache.catalina.startup.Bootstrap.main()方法
        SpringApplication.run(MySpringBootApplication.class, args);
    }
}

4.创建一个Controller类为me.silentdoer.springboot.controller.TestController

package me.silentdoer.springboot.controller;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * @author silentdoer
 * @version 1.0
 * @description the description
 * @date 4/12/18 8:02 PM
 */
@RestController  // 使得不返回视图
public class TestController {

    // RESTFul api with get method.
    @GetMapping("/hello")  // 可以理解为RequestMethod.GET的RequestMapping,这里默认就是返回字符串而不需要viewResolver,如果需要要配置pom和application.properties
    public String hello(){
        return "hello.";
    }
}

到这一步就可以对MySpringBootApplication run as java application了,然后浏览器里输入http://localhost:8080/hello得到输出hello.说明第一个SpringBoot程序创建成功;

以上是关于SpringBoot初探的主要内容,如果未能解决你的问题,请参考以下文章

SpringBoot原理初探以及第一个SpringBoot程序SpringBoot

SpringBoot运行原理初探—自动装配

Springboot日志初探

Springboot日志初探

SpringBoot初探

java初探之缓存技术