SpringBoot | 第一章:第一個SpringBoot應用

SpringBoot | 第一章:第一個SpringBoot應用

springboot簡單介紹

概述

隨着動態語言的流行(Ruby、Groovy、Scala、Node.js),Java的開發顯得格外的笨重:繁多的配置、低下的開發效率、複雜的部署流程以及第三方技術集成難度大。
在上述環境下,Springboot應運而生。它使用"習慣優於配置"(項目中存在大量的配置,此外還內置一個習慣性的配置,讓你無須手動進行配置)的理念讓你的項目快速運行起來。使用springboot很容易建立一個獨立運行(運行jar,內嵌servlet容器)、準生產級別的基於Spring框架的項目,使用springboot你能夠不用或者只須要不多的Spring配置。css


Spring Boot 的核心功能

  • 獨立運行的Spring項目

Spring Boot能夠以jar包的形式獨立運行,運行一個Spring Boot項目只須要經過java -jar xx.jar。html

  • 內置Servlet容器

Spring Boot可選擇內嵌Tomcat、Jetty或者Undertow,這樣無須以war包形式部署。java

  • 提供starter簡化maven配置

Spring提供了一系列的starter pom來簡化maven依賴加載,例如:當你使用了spring-boot-starter-web時,會自動加入相關依賴,無需你手動一個一個的添加座標依賴。git

  • 自動配置Spring

Spring Boot會根據在類路徑中的jar包、類,爲jar包裏的類自動配置Bean,這樣會極大地減小咱們要使用的配置。固然,Spring Boot只是考慮了大多數的開發場景,並非全部場景,若在實際開發中,咱們須要自動配置bean,而Spring Boot沒有提供支持,則能夠自定義自動配置。github

  • 無代碼生成和xml配置

Spring Boot的神奇的不是藉助於代碼生成來實現的,而是經過條件註解來實現的,這是Spring 4.x提供的新特性,Spring 4.x提倡使用java配置和註解配置相結合,而Spring Boot不須要任何xml配置便可實現Sping Boot的全部配置。web

優缺點

優勢
  1. 快速構建項目:省略了繁瑣且重複的xml配置,分分鐘構建一個web工程;
  2. 對主流開發框架的無配置集成:提供了不少Starter 依賴包,開箱即用,無需多餘配置;
  3. 項目可獨立運行:無需外部依賴Servlet容器;
  4. 極大地提供了開發、部署效率;
  5. 監控簡單:提供了actuator包,可使用它來對你的應用進行監控。
缺點
  1. 依賴太多:一個簡單的SpringBoot應用都有好幾十M只有;
  2. 缺乏監控集成方案、安全管理方案:只提供基礎監控,要實現生產級別的監控,監控方案須要本身動手解決;(後期講解soringCloud時,會結合pinpointskywalking分佈式鏈路工具進行應用監控)

工程搭建

使用的工具爲:Spring Tool Suite(3.9.3.RELEASE) SpringBoot:1.5.14.RELEASEspring

Spring Tool Suite 下載地址:https://spring.io/tools/sts/allapache

建立項目

利用**Spring Initializr**進行快速建立項目json

  • 選擇Dashboard-->CREATE SPRING STARTER PROJECT進行建立項目,或者能夠選擇file-->new-->Spring Starter Project,打開建立面板

第一種方式: bootstrap

第二種方式:

  • 出現建立面板,填寫項目信息

這裏url建議直接填寫:https://start.spring.io(默認是http方式)

maven相關命名說明

  1. Group:通常爲逆向域名格式,如本博客域名爲lqdev.cn,則group通常以cn.lqdev開頭
  2. Artifact:惟一標識,通常爲項目名稱。 具體maven相關信息,可自行搜索,這裏只簡單闡述
  • 選擇依賴包和版本

除此下載包時,可能會比較慢,建議替換成阿里雲的maven鏡像

項目結構

- src
    -main
        -java
            -cn.lqdev.learning.springboot.chapter1
                #主函數,啓動類,運行它若是運行了 Tomcat、Jetty、Undertow 等容器
                -Chapter1Application    
        -resouces
            #存放靜態資源 js/css/images 等
            - statics
            #存放 html 模板文件
            - templates
            #主要的配置文件,SpringBoot啓動時候會自動加載application.properties/bootstrap.properties        
            - application.properties
    #測試文件存放目錄        
    -test
 # pom.xml 文件是Maven構建的基礎,裏面包含了咱們所依賴JAR和Plugin的信息
- pom

pom依賴

因爲使用了Spring Initializr直接建立項目,相關依賴自動添加好了。

<?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>cn.lqdev.learning</groupId>
    <artifactId>springboot-chapter1</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>

    <name>chapter-1</name>
    <description>Spring Boot | 第一章:第一個Springboot應用</description>

    <!-- Springboot的版本,你們選擇時,應該選擇 RELEASE 版本 -->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.14.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>
        <!-- 內嵌了tomcat服務器,開發簡單的web應用,此依賴便可  -->
         <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>

主入口

/**
 *  啓動類
 * @author oKong 
 *
 */
@SpringBootApplication
public class Chapter1Application {

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

編寫controller

/**
 * 第一個springboot應用 
 * @author oKong
 *
 */
//@RestController = @Controller + @ResponseBody 默認直接返回json
@RestController
public class DemoController {

    @RequestMapping(value = "/demo", method = RequestMethod.GET)
    public String demo() {
        return "hello,SpringBoot!";
    }
}

啓動應用

直接Chapter1Application,右鍵 run as --> Spring Boot App 便可。

看見如下提示,說明啓動成功:

2018-07-11 22:47:38.170  INFO 15396 --- [           main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(s): 8080 (http)

簡單說明

  1. springboot 默認的端口號爲:8080,此時瀏覽器訪問:127.0.0.1:8080/demo便可查看。
  2. 須要修改默認端口號時及上下文路徑時,只須要在application.properties設置如下屬性:
# 端口號
server.port=8888
# 應用上下文路徑
server.context-path=/chapter1

訪問:http://127.0.0.1:8888/chapter1/demo

自此,一個簡單的SpringBoot就開發完成了。比起原來的springmvc時的開發效率,簡直是一個質的飛躍,無需再煩擾煩人的xml配置文件了。終於能夠快樂的擼代碼了~

總結

目前互聯網上不少大佬都有springboot系列教程,若有雷同,請多多包涵了。本文是做者在電腦前一字一句敲的,每一步都是親身實際過的。若文中有所錯誤之處,還望提出,謝謝。

老生常談

  • 我的QQ:499452441
  • 微信公衆號:lqdevOps

我的博客:https://blog.lqdev.cn

源碼完整實例:chapter-1

本文地址:https://blog.lqdev.cn/2018/07/11/springboot/chapter-one/

相關文章
相關標籤/搜索