大家好塘安,我是“貓瑪尼”,一名程序員援奢。
百度的解釋?zhuān)篠pringBoot是由Pivotal團(tuán)隊(duì)提供的全新框架兼犯,其設(shè)計(jì)目的是用來(lái)簡(jiǎn)化新Spring應(yīng)用的初始搭建以及開(kāi)發(fā)過(guò)程从诲。該框架使用了特定的方式來(lái)進(jìn)行配置坯辩,從而使開(kāi)發(fā)人員不再需要定義樣板化的配置喻杈。
SpringBoot的設(shè)計(jì)初衷是聋庵,為了讓廣大開(kāi)發(fā)者盡可能快的把系統(tǒng)給跑起來(lái)典徊,它倡導(dǎo) “習(xí)慣優(yōu)于配置”盯腌,開(kāi)發(fā)過(guò)程中能夠明顯減少冻辩,以前使用SpringMvc開(kāi)發(fā)系統(tǒng)需要的那堆配置文件晓猛。
優(yōu)點(diǎn)很多栽连,而且非常的實(shí)用险领。我在工作當(dāng)中,現(xiàn)在使用的都是SpringBoot秒紧。
我們一步一步來(lái)創(chuàng)建一個(gè)簡(jiǎn)單绢陌、可運(yùn)行的SpringBoot項(xiàng)目。
打開(kāi)IDEA熔恢,點(diǎn)選“Create New Project”脐湾,彈出項(xiàng)目類(lèi)型選擇框。選擇Maven項(xiàng)目叙淌,基于原型“maven-archetype-webapp”秤掌,然后點(diǎn)擊“next”。(maven-archetype-webapp指的是Maven的Webapp工程樣例鹰霍。)
Maven項(xiàng)目需要輸入Maven的坐標(biāo)闻鉴,即GroupId、ArtifactId茂洒、Version等信息孟岛。根據(jù)個(gè)人情況輸入即可:
一般,正在開(kāi)發(fā)中的項(xiàng)目,我們可以使用“SNAPSHOT”標(biāo)記的版本名稱(chēng)渠羞。這種版本可以不升級(jí)版本號(hào)就能不斷刷新覆蓋代碼斤贰。
接下去,可以不用改變默認(rèn)配置次询,一路Next最后Finish就行荧恍。如下:
點(diǎn)擊“Finish”之后,IDEA有一小會(huì)時(shí)間的項(xiàng)目構(gòu)建屯吊。構(gòu)建好之后送巡,記得點(diǎn)擊右下角的“Import Changes”,導(dǎo)入Maven依賴(lài)雌芽,以后大家每次都要記得導(dǎo)入授艰,或者一勞永逸的設(shè)置成“Enable Auto-Import”,即自動(dòng)導(dǎo)入世落,這樣就不需要每次手動(dòng)點(diǎn)擊導(dǎo)入了:
接下去,我們配置pom.xml文件糟需。
修改打包方式為“jar”屉佳,因?yàn)槲覀兒罄m(xù)打算通過(guò)直接運(yùn)行Jar包的方式,啟動(dòng)該web應(yīng)用洲押。并且還需要加上一個(gè)“打包成可執(zhí)行的jar文件”Maven插件武花。
添加outputEncoding編碼為UTF-8。由于我使用的是JDK8杈帐,所以把版本設(shè)置成1.8体箕。由于是SpringBoot項(xiàng)目,還需要加上最關(guān)鍵的“spring-boot-starter-parent”挑童。
給我們的系統(tǒng)配置一個(gè)中心倉(cāng)庫(kù)累铅,我使用的是
“https://repo.maven.apache.org/maven2”。
再加上必要的依賴(lài)站叼,最終配置好的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.mmn</groupId>
? ?<artifactId>share</artifactId>
? ?<version>1.0-SNAPSHOT</version>
? ?<packaging>jar</packaging>
? ?<name>share Maven Webapp</name>
? ?<!-- FIXME change it to the project's website -->
? ?<url>http://www.example.com</url>
? ?<properties>
? ? ? ?<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
? ? ? ?<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
? ? ? ?<maven.compiler.source>1.8</maven.compiler.source>
? ? ? ?<maven.compiler.target>1.8</maven.compiler.target>
? ?</properties>
? ?<!-- Inherit defaults from Spring Boot -->
? ?<parent>
? ? ? ?<groupId>org.springframework.boot</groupId>
? ? ? ?<artifactId>spring-boot-starter-parent</artifactId>
? ? ? ?<version>1.5.6.RELEASE</version>
? ?</parent>
? ?<dependencies>
? ? ? ?<dependency>
? ? ? ? ? ?<groupId>junit</groupId>
? ? ? ? ? ?<artifactId>junit</artifactId>
? ? ? ? ? ?<version>4.11</version>
? ? ? ? ? ?<scope>test</scope>
? ? ? ?</dependency>
? ? ? ?<!--web模塊-->
? ? ? ?<dependency>
? ? ? ? ? ?<groupId>org.springframework.boot</groupId>
? ? ? ? ? ?<artifactId>spring-boot-starter-web</artifactId>
? ? ? ?</dependency>
? ? ? ?<!-- lombok 簡(jiǎn)化臃腫代碼 -->
? ? ? ?<dependency>
? ? ? ? ? ?<groupId>org.projectlombok</groupId>
? ? ? ? ? ?<artifactId>lombok</artifactId>
? ? ? ? ? ?<version>1.16.18</version>
? ? ? ? ? ?<scope>provided</scope>
? ? ? ?</dependency>
? ?</dependencies>
? ?<repositories>
? ? ? ?<repository>
? ? ? ? ? ?<id>central</id>
? ? ? ? ? ?<name>Central Repository</name>
? ? ? ? ? ?<url>https://repo.maven.apache.org/maven2</url>
? ? ? ? ? ?<layout>default</layout>
? ? ? ? ? ?<snapshots>
? ? ? ? ? ? ? ?<enabled>false</enabled>
? ? ? ? ? ?</snapshots>
? ? ? ?</repository>
? ?</repositories>
? ?<build>
? ? ? ?<finalName>share</finalName>
? ? ? ?<pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
? ? ? ? ? ?<plugins>
? ? ? ? ? ? ? ?<plugin>
? ? ? ? ? ? ? ? ? ?<artifactId>maven-clean-plugin</artifactId>
? ? ? ? ? ? ? ? ? ?<version>3.1.0</version>
? ? ? ? ? ? ? ?</plugin>
? ? ? ? ? ? ? ?<!-- see http://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_war_packaging -->
? ? ? ? ? ? ? ?<plugin>
? ? ? ? ? ? ? ? ? ?<artifactId>maven-resources-plugin</artifactId>
? ? ? ? ? ? ? ? ? ?<version>3.0.2</version>
? ? ? ? ? ? ? ?</plugin>
? ? ? ? ? ? ? ?<plugin>
? ? ? ? ? ? ? ? ? ?<artifactId>maven-compiler-plugin</artifactId>
? ? ? ? ? ? ? ? ? ?<version>3.8.0</version>
? ? ? ? ? ? ? ?</plugin>
? ? ? ? ? ? ? ?<plugin>
? ? ? ? ? ? ? ? ? ?<artifactId>maven-surefire-plugin</artifactId>
? ? ? ? ? ? ? ? ? ?<version>2.22.1</version>
? ? ? ? ? ? ? ?</plugin>
? ? ? ? ? ? ? ?<plugin>
? ? ? ? ? ? ? ? ? ?<artifactId>maven-war-plugin</artifactId>
? ? ? ? ? ? ? ? ? ?<version>3.2.2</version>
? ? ? ? ? ? ? ?</plugin>
? ? ? ? ? ? ? ?<plugin>
? ? ? ? ? ? ? ? ? ?<artifactId>maven-install-plugin</artifactId>
? ? ? ? ? ? ? ? ? ?<version>2.5.2</version>
? ? ? ? ? ? ? ?</plugin>
? ? ? ? ? ? ? ?<plugin>
? ? ? ? ? ? ? ? ? ?<artifactId>maven-deploy-plugin</artifactId>
? ? ? ? ? ? ? ? ? ?<version>2.8.2</version>
? ? ? ? ? ? ? ?</plugin>
? ? ? ? ? ? ? ?<!--打包成可執(zhí)行的jar文件-->
? ? ? ? ? ? ? ?<plugin>
? ? ? ? ? ? ? ? ? ?<groupId>org.springframework.boot</groupId>
? ? ? ? ? ? ? ? ? ?<artifactId>spring-boot-maven-plugin</artifactId>
? ? ? ? ? ? ? ?</plugin>
? ? ? ? ? ?</plugins>
? ? ? ?</pluginManagement>
? ?</build>
</project>
繼續(xù)。創(chuàng)建一個(gè)resources目錄尽楔,用于存放所有的配置文件投储;創(chuàng)建一個(gè)源文件存放目錄“java”,并添加包結(jié)構(gòu)“com.mmn.share”阔馋。在該包下玛荞,添加一個(gè)APP.java類(lèi),用于啟動(dòng)SpringBoot應(yīng)用呕寝,代碼如下:
package com.mmn.share;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.ServletComponentScan;
/**
* Created by Mmn on 2018/12/16.
* To be a happy coder!
*/
@SpringBootApplication
@ServletComponentScan
public class App {
? ?public static void main(String[] args) {
? ? ? ?SpringApplication.run(App.class, args);
? ?}
}
想要在瀏覽器里面訪(fǎng)問(wèn)一下這個(gè)系統(tǒng)勋眯,那我們還需要?jiǎng)?chuàng)建一個(gè)控制器類(lèi),來(lái)處理請(qǐng)求。創(chuàng)建一個(gè)包“controller”凡恍,在里面創(chuàng)建一個(gè)“HelloWorldController”控制器志秃,用于處理“/helloWorld/”的請(qǐng)求,代碼如下:
package com.mmn.share.controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* Created by Mmn on 2018/12/16.
* To be a happy coder!
*/
@RestController
@RequestMapping("helloWorld")
public class HelloWorldController {
? ?@GetMapping(value = {"", "helloWorld"})
? ?public String helloWorld() {
? ? ? ?return "helloWorld";
? ?}
}
項(xiàng)目創(chuàng)建好了嚼酝,通過(guò)運(yùn)行APP.java浮还,啟動(dòng)系統(tǒng)。默認(rèn)分配的端口號(hào)是8080闽巩。我們?cè)跒g覽器中輸入“http://127.0.0.1:8080/helloWorld/”钧舌,就能訪(fǎng)問(wèn)該系統(tǒng)了:
本項(xiàng)目的代碼,我放在百度云上了涎跨,地址是:
https://pan.baidu.com/s/1AYxkGzKptZG3RD4iW7Ok1w
創(chuàng)建SpringBoot非常的簡(jiǎn)單洼冻。后續(xù)我還會(huì)分享跟SpringBoot相關(guān)的內(nèi)容。
出去吃飯隅很,下午爬山撞牢。晚上回來(lái)打算用爬蟲(chóng)技術(shù),分析一下杭州的租房情況叔营。
點(diǎn)贊是一種態(tài)度~感謝老鐵屋彪!
【我平時(shí)的開(kāi)發(fā)環(huán)境】
飯碗:Mac Pro 13寸
IDE:IntelliJ IDEA2018、PyCharm2017
JDK:8
打包:Maven 3
Python:2绒尊、3
歡迎圍觀(guān)《貓瑪尼》畜挥,基本每天都會(huì)給大家?guī)?lái)后端的技術(shù)分享: