成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

一起來(lái)學(xué)SpringBoot | 第一篇:構(gòu)建第一個(gè)SpringBoot工程

jayce / 3389人閱讀

摘要:由于本人更習(xí)慣使用所以后續(xù)案例都是基于與,同時(shí)這里是基于最新的編寫的哦創(chuàng)建項(xiàng)目初次接觸,我們先來(lái)看看如何創(chuàng)建一個(gè)項(xiàng)目,這里以為例,其他的工具小伙伴們自行搜索創(chuàng)建方式。創(chuàng)建完項(xiàng)目后,各位小伙伴請(qǐng)認(rèn)真細(xì)心的對(duì)比下與傳統(tǒng)的工程有何區(qū)別如目錄結(jié)構(gòu)。

SpringBoot 是為了簡(jiǎn)化 Spring 應(yīng)用的創(chuàng)建、運(yùn)行、調(diào)試、部署等一系列問(wèn)題而誕生的產(chǎn)物,自動(dòng)裝配的特性讓我們可以更好的關(guān)注業(yè)務(wù)本身而不是外部的XML配置,我們只需遵循規(guī)范,引入相關(guān)的依賴就可以輕易的搭建出一個(gè) WEB 工程

未接觸 SpringBoot 之前,搭建一個(gè)普通的 WEB 工程往往需要花費(fèi)30分鐘左右,如果遇到點(diǎn)奇葩的問(wèn)題耽擱的時(shí)間會(huì)更長(zhǎng)一點(diǎn),但自從用了SpringBoot 后,真正體會(huì)到什么叫分分鐘搭建一個(gè)WEB,讓我擁有更多的時(shí)間跟我的小伙伴們嘮嗑了。使用 SpringBoot 后發(fā)現(xiàn)一切是如此的簡(jiǎn)單(還記得讀書那會(huì)被JAR包,xml支配的恐懼嗎,如今都可以說(shuō) good bye

設(shè)計(jì)的目標(biāo)

為所有使用 Spring 的開發(fā)者提供一個(gè)更簡(jiǎn)單,快速的入門體驗(yàn)

提供一些常見(jiàn)的功能、如監(jiān)控、WEB容器,健康,安全等功能

干掉XML,遵循規(guī)范,開箱即用

前提

SpringBoot 為我們提供了一系列的依賴包,所以需要構(gòu)建工具的支持:MavenGradle。由于本人更習(xí)慣使用Maven所以后續(xù)案例都是基于MavenIntelliJ IDEA,同時(shí)這里是基于最新的SpringBoot2編寫的哦...

創(chuàng)建項(xiàng)目

初次接觸,我們先來(lái)看看如何創(chuàng)建一個(gè)Spring Boot項(xiàng)目,這里以IntelliJ IDEA為例,其他的IDE工具小伙伴們自行搜索創(chuàng)建方式。創(chuàng)建完項(xiàng)目后,各位小伙伴請(qǐng)認(rèn)真、細(xì)心的對(duì)比下與傳統(tǒng)的WEB工程有何區(qū)別(如:目錄結(jié)構(gòu))。

點(diǎn)擊File -> Project

如果用過(guò) Eclipse/IDEA 等工具的,對(duì)創(chuàng)建項(xiàng)目肯定不會(huì)陌生,但為了照顧第一次使用的我貼上了圖文

選擇Spring Initializr

到這一步選擇的時(shí)候,如圖中選項(xiàng)的是Spring Initializr(官方的構(gòu)建插件,需要聯(lián)網(wǎng)),第二個(gè)是自己選擇Maven構(gòu)建,為了更好的適合初學(xué)者,我們將在本章用插件構(gòu)建

填寫項(xiàng)目基本信息

Group: 組織ID,一般分為多個(gè)段,這里我只說(shuō)兩段,第一段為域,第二段為公司名稱。域又分為 org、com、cn等等,其中 org為非營(yíng)利組織,com為商業(yè)組織。如阿里、淘寶(com.alibaba/com.taobao)

Artifact: 唯一標(biāo)識(shí)符,一般是項(xiàng)目名稱

選擇包

Spring Initializr 為我們提供了很多的選項(xiàng),不同的選項(xiàng)有不同的作用,在初期我們只需要依賴Web -> Web 就可以了,選擇好依賴包之后點(diǎn)擊Next -> Finish

目錄結(jié)果
- src
    -main
        -java
            -package
                #主函數(shù),啟動(dòng)類,運(yùn)行它如果運(yùn)行了 Tomcat、Jetty、Undertow 等容器
                -SpringbootApplication    
        -resouces
            #存放靜態(tài)資源 js/css/images 等
            - statics
            #存放 html 模板文件
            - templates
            #主要的配置文件,SpringBoot啟動(dòng)時(shí)候會(huì)自動(dòng)加載application.yml/application.properties        
            - application.yml
    #測(cè)試文件存放目錄        
    -test
 # pom.xml 文件是Maven構(gòu)建的基礎(chǔ),里面包含了我們所依賴JAR和Plugin的信息
- pom
pom.xml 依賴

因?yàn)槭褂昧?Spring Initializr 插件,所以如下的配置都不需要我們自己去寫啦,需要注意的是版本要選擇 RELEASE ,穩(wěn)定版本BUG少



    4.0.0

    com.battcn
    chapter1
    0.0.1-SNAPSHOT
    jar

    chapter1
    我的用第一個(gè)SpringBoot工程

    
    
        org.springframework.boot
        spring-boot-starter-parent
        2.0.1.RELEASE
         
    

    
        UTF-8
        UTF-8
        1.8
    

    
        
        
            org.springframework.boot
            spring-boot-starter-web
        
        
        
            org.springframework.boot
            spring-boot-starter-test
            test
        
    

    
        
            
            
                org.springframework.boot
                spring-boot-maven-plugin
            
        
    



其它的依賴可以參考:官方文檔

主函數(shù)入口

注意事項(xiàng): 一個(gè)項(xiàng)目中切記不要出現(xiàn)多個(gè) main 函數(shù),否在在打包的時(shí)候 spring-boot-maven-plugin 將找不到主函數(shù)(主動(dòng)指定打包主函數(shù)入口除外...

/**
 * 我的第一個(gè)SpringBoot程序
 * 其中 @RestController 等同于 (@Controller 與 @ResponseBody)
 *
 * @author Levin
 */
@RestController
@SpringBootApplication
public class Chapter1Application {

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

    @GetMapping("/demo1")
    public String demo1() {
        return "Hello battcn";
    }

    @Bean
    public CommandLineRunner commandLineRunner(ApplicationContext ctx) {
        // 目的是
        return args -> {
            System.out.println("來(lái)看看 SpringBoot 默認(rèn)為我們提供的 Bean:");
            String[] beanNames = ctx.getBeanDefinitionNames();
            Arrays.sort(beanNames);
            Arrays.stream(beanNames).forEach(System.out::println);
        };
    }
}
初窺配置文件

從啟動(dòng)日志中可以發(fā)現(xiàn),SpringBoot 默認(rèn)的端口是 8080 ,那么如果端口被占用了怎么辦呢?不要慌,問(wèn)題不大,配置文件分分鐘解決你的困擾...

2018-04-20 16:14:46.725  INFO 11184 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port(s): 8080 (http) with context path ""
修改默認(rèn)配置
# 默認(rèn)的 8080 我們將它改成 9090 
server.port=9090
# 未定義上下文路徑之前 地址是 http://localhost:8080 定義了后 http://localhost:9090 你能在tomcat做的事情,配置文件都可以
server.servlet.context-path=/chapter1

在啟動(dòng)一次看看日志

2018-04-20 16:47:05.716  INFO 12108 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port(s): 9090 (http) with context path "/chapter1"
測(cè)試

本次測(cè)試采用 junit 進(jìn)行,當(dāng)然也可以啟動(dòng)項(xiàng)目后直接訪問(wèn) http://localhost:9090/chapter1/demo1 進(jìn)行測(cè)試

import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.web.client.TestRestTemplate;
import org.springframework.boot.web.server.LocalServerPort;
import org.springframework.http.ResponseEntity;
import org.springframework.test.context.junit4.SpringRunner;

import java.net.URL;

import static org.junit.Assert.assertEquals;

@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
public class Chapter1ApplicationTests {


    @LocalServerPort
    private int port;

    private URL base;

    @Autowired
    private TestRestTemplate template;

    @Before
    public void setUp() throws Exception {
        // TODO 因?yàn)槲覀冃薷牧?content-path 所以請(qǐng)求后面要帶上
        this.base = new URL("http://localhost:" + port + "/chapter1/demo1");
    }

    @Test
    public void demo1() throws Exception {
        ResponseEntity response = template.getForEntity(base.toString(), String.class);
        assertEquals(response.getBody(), "Hello battcn");
    }
}
拓展知識(shí) 自定義Banner

SpringBoot 啟動(dòng)的時(shí)候我們可以看到如下內(nèi)容,這一塊其實(shí)是可以自定義的哦,而且在 2.X 版本中,它支持的格式從文本擴(kuò)展到banner.txt、banner.jpg、banner.gif、banner.jpeg 等等,只需要在 resouces 目錄下添加指定命名的文件即可

  .   ____          _            __ _ _
 / / ___"_ __ _ _(_)_ __  __ _    
( ( )\___ | "_ | "_| | "_ / _` |    
 /  ___)| |_)| | | | | || (_| |  ) ) ) )
  "  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::        (v2.0.1.RELEASE)
總結(jié)

目前很多大佬都寫過(guò)關(guān)于 SpringBoot 的教程了,如有雷同,請(qǐng)多多包涵,本教程基于最新的 spring-boot-starter-parent:2.0.1.RELEASE編寫,包括新版本的特性都會(huì)一起介紹...

說(shuō)點(diǎn)什么

個(gè)人QQ:1837307557

battcn開源群(適合新手):391619659

微信公眾號(hào)(歡迎調(diào)戲):battcn

個(gè)人博客:http://blog.battcn.com/

全文代碼:https://github.com/battcn/spring-boot2-learning/tree/master/chapter1

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/71338.html

相關(guān)文章

  • SpringBoot 實(shí)戰(zhàn) () | 如何使用 IDEA 構(gòu)建 Spring Boot 工程

    摘要:它使用約定大于配置的理念讓你的項(xiàng)目快速運(yùn)行起來(lái)。如何使用構(gòu)建工程第一步,當(dāng)然是安裝傻瓜式教程,請(qǐng)自行百度。包名,填完和后自動(dòng)生成,默認(rèn)即可。確認(rèn)無(wú)誤,點(diǎn)完成創(chuàng)建即可。 微信公眾號(hào):一個(gè)優(yōu)秀的廢人如有問(wèn)題或建議,請(qǐng)后臺(tái)留言,我會(huì)盡力解決你的問(wèn)題。 前言 新年立了個(gè) flag,好好運(yùn)營(yíng)這個(gè)公眾號(hào)。具體來(lái)說(shuō),就是每周要寫兩篇文章在這個(gè)號(hào)發(fā)表。剛立的 flag 可不能這么快打臉。下面送上本周第...

    Ryan_Li 評(píng)論0 收藏0
  • SpringBoot非官方教程 | 篇:構(gòu)建個(gè)SpringBoot工程

    摘要:簡(jiǎn)介它的設(shè)計(jì)目的就是為例簡(jiǎn)化開發(fā),開啟了各種自動(dòng)裝配,你不想寫各種配置文件,引入相關(guān)的依賴就能迅速搭建起一個(gè)工程。它采用的是建立生產(chǎn)就緒的應(yīng)用程序觀點(diǎn),優(yōu)先于配置的慣例。另,本系列教程全部用的作為開發(fā)工具。 簡(jiǎn)介 spring boot 它的設(shè)計(jì)目的就是為例簡(jiǎn)化開發(fā),開啟了各種自動(dòng)裝配,你不想寫各種配置文件,引入相關(guān)的依賴就能迅速搭建起一個(gè)web工程。它采用的是建立生產(chǎn)就緒的應(yīng)用程序觀...

    Cheriselalala 評(píng)論0 收藏0
  • 從0開始學(xué)springboot之啟蒙篇

    摘要:下載地址百度谷歌一大堆以下介紹如何使用自帶的下載下載請(qǐng)選擇版本創(chuàng)建一個(gè)項(xiàng)目輸入輸入輸入修改為如下將自動(dòng)下載以及相關(guān)依賴包至此工程已經(jīng)搭建完畢,下一篇將是一個(gè) (why)為什么springboot火遍全世界 springboot 有個(gè)好爹spring springboot 遺傳了爹的優(yōu)秀基因而生 大神們都在講服務(wù)化(service),springboot做服務(wù)化再合適不過(guò)了 sprin...

    zhangxiangliang 評(píng)論0 收藏0
  • 起來(lái)學(xué)SpringBoot | 篇:集成Swagger在線調(diào)試

    摘要:但是這種手寫文檔帶來(lái)的弊端就是維護(hù)起來(lái)苦不堪言,對(duì)于接口容易發(fā)生變化的開發(fā)者來(lái)說(shuō),維護(hù)文檔就是噩夢(mèng)好在現(xiàn)如今市場(chǎng)上書寫文檔的工具有很多,常見(jiàn)的有阿里的但是能稱之為框架的,估計(jì)也只有了。 SpringBoot 是為了簡(jiǎn)化 Spring 應(yīng)用的創(chuàng)建、運(yùn)行、調(diào)試、部署等一系列問(wèn)題而誕生的產(chǎn)物,自動(dòng)裝配的特性讓我們可以更好的關(guān)注業(yè)務(wù)本身而不是外部的XML配置,我們只需遵循規(guī)范,引入相關(guān)的依賴...

    everfly 評(píng)論0 收藏0
  • 起來(lái)學(xué)SpringBoot | 二篇:SpringBoot配置詳解

    摘要:如何測(cè)試進(jìn)入到項(xiàng)目目錄,此處以我本地目錄為主然后打開程序,不會(huì)在當(dāng)前目錄打開的請(qǐng)自行百度,輸入打包完畢后進(jìn)入到目錄中去,我們可以發(fā)現(xiàn)一個(gè)名為的包接著在打開程序,輸入。 SpringBoot 是為了簡(jiǎn)化 Spring 應(yīng)用的創(chuàng)建、運(yùn)行、調(diào)試、部署等一系列問(wèn)題而誕生的產(chǎn)物,自動(dòng)裝配的特性讓我們可以更好的關(guān)注業(yè)務(wù)本身而不是外部的XML配置,我們只需遵循規(guī)范,引入相關(guān)的依賴就可以輕易的搭建出...

    leap_frog 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<