【無(wú)為則無(wú)心&SpringBoot】— 4.創(chuàng)建第一個(gè)Spring Boot項(xiàng)目

1、步驟

  • 創(chuàng)建一個(gè)Spring Boot的java項(xiàng)目。

  • 導(dǎo)入依賴Spring Boot相關(guān)的依賴。

  • 編寫(xiě)一個(gè)java類,用于啟動(dòng)Spring Boot項(xiàng)目(helloword.java)。

  • 編寫(xiě)相關(guān)業(yè)務(wù)類(hellocontroller.java)。

  • 運(yùn)行helloword.java中的main函數(shù),啟動(dòng)Spring Boot項(xiàng)目。

  • 通過(guò)瀏覽器訪問(wèn)Spring Boot項(xiàng)目。

2、操作

(1)創(chuàng)建一個(gè)Spring Boot的java項(xiàng)目

具體可以看博客:http://www.itdecent.cn/p/9e9a2613e901,不通過(guò)骨架創(chuàng)建Maven的Java項(xiàng)目。文章里已經(jīng)總結(jié)好。

(2)導(dǎo)入依賴Spring Boot相關(guān)的依賴

在項(xiàng)目中的pom.xml文件中,添加下面內(nèi)容,配置Spring Boot相關(guān)依賴。

<parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.9.RELEASE</version>
    </parent>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>

(3)編寫(xiě)一個(gè)java類,用于啟動(dòng)Spring Boot項(xiàng)目

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

/**
 * 用來(lái)來(lái)標(biāo)注一個(gè)java的主程序類,
 * 說(shuō)明這是一個(gè)Spring Boot應(yīng)用。
 */
@SpringBootApplication
public class helloword {

    public static void main(String[] args) {

        // Spring應(yīng)用啟動(dòng)起來(lái)
        SpringApplication.run(helloword.class,args);
    }
    
}

(4)編寫(xiě)相關(guān)業(yè)務(wù)類

業(yè)務(wù)類就是需要我們寫(xiě)的Controller層、Service層。

我們這里只寫(xiě)一個(gè)Controller層,能夠返回一個(gè)數(shù)據(jù)就可以。

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
public class hellocontroller {

    @ResponseBody
    @RequestMapping("/hello")
    public String hello() {
        return "Hello Spring Boot!";
    }
}

(5)運(yùn)行helloword.java中的main函數(shù),啟動(dòng)Spring Boot項(xiàng)目

我們不用在IDEA中配置tomcat服務(wù)器,只有就可以運(yùn)行main()函數(shù)。

可以看到控制臺(tái)結(jié)果如下,開(kāi)啟了一個(gè)8080端口的tomcat服務(wù)器。

(6)通過(guò)瀏覽器訪問(wèn)Spring Boot項(xiàng)目

在瀏覽器中輸入訪問(wèn)地址:localhost:8080/hello

可以看到輸出了Hello Spring Boot!,表示Spring Boot項(xiàng)目創(chuàng)建成功,并運(yùn)行起來(lái)。

是不是非常的方便,我們根本不需要做過(guò)多的配置,如SpringMVC的包掃描、視圖解析器、前端控制器等都不需要進(jìn)行配置了。

(7)Spring Boot部署非常簡(jiǎn)化

在部署的時(shí)候Spring Boot項(xiàng)目部署起來(lái)也非常方便,如果我們所在的服務(wù)器中,沒(méi)有配置tomcat之類的Servlet容器。我們可以把Spring Boot項(xiàng)目打成一個(gè)可執(zhí)行的jar包。通過(guò)java -jar 包名.jar直接運(yùn)行Spring Boot項(xiàng)目。

  • 在Maven的pom.xml文件中配置打jar包插件。

spring-boot-maven-plugin插件,在很大程度上簡(jiǎn)化了應(yīng)用的部署,只需要安裝了 JRE 就可以運(yùn)行。

<!-- 將應(yīng)用打包成一個(gè)可執(zhí)行的jar包;-->

   <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <version>1.5.4.RELEASE</version>
            </plugin>
        </plugins>
    </build>
  • 執(zhí)行Maven的打包命令

在項(xiàng)目的target目錄就能找到打包好的項(xiàng)目spring-boot-01-helloword-1.0-SNAPSHOT.jar。

  • 執(zhí)行java -jar命令啟動(dòng)項(xiàng)目

    我們可以把Spring Boot項(xiàng)目的jar包放到一個(gè)方便執(zhí)行的地方,來(lái)執(zhí)行命令。


  • 在瀏覽器中訪問(wèn)項(xiàng)目

可見(jiàn)Spring Boot中部署一個(gè)項(xiàng)目是非常的方便。

(8)關(guān)于spring-boot-maven-plugin插件的總結(jié)

spring-boot-maven-plugin插件介紹

Spring Boot Maven plugin能夠?qū)pring Boot應(yīng)用打包為可執(zhí)行的jar或war文件,然后以java -jar命令的方式運(yùn)行Spring Boot應(yīng)用。Spring Boot Maven plugin在2017.6.8發(fā)布的1.5.4.RELEASE版本,要求Java 8, Maven 3.2及以后。(需要配置阿里云Maven鏡像倉(cāng)庫(kù))

Spring Boot Maven plugin的5個(gè)Goals(目標(biāo))

  • spring-boot:repackage,默認(rèn)goal。在mvn package之后,再次打包可執(zhí)行的jar/war,同時(shí)保留mvn package生成的jar/war為.origin。
  • spring-boot:run,運(yùn)行Spring Boot應(yīng)用。
  • spring-boot:start,在mvn integration-test階段,進(jìn)行Spring Boot應(yīng)用生命周期的管理。
  • spring-boot:stop,在mvn integration-test階段,進(jìn)行Spring Boot應(yīng)用生命周期的管理。
  • spring-boot:build-info,生成Actuator使用的構(gòu)建信息文件build-info.properties。

關(guān)于Maven插件系列之spring-boot-maven-plugin的用法,可以網(wǎng)上自己搜索。

總結(jié):spring-boot-maven-plugin插件,是一個(gè)可以把Spring Boot項(xiàng)目打成一個(gè)可以使用java -jar命令執(zhí)行的jar包,Maven中的打包命令打成的jar不能直接運(yùn)行,需要放入Servlet容器中運(yùn)行。

(9)關(guān)于spring-boot-maven-plugin插件在使用過(guò)程中遇到的問(wèn)題

在Maven中配置spring-boot-maven-plugin插件的時(shí)候遇到的問(wèn)題就是,我們直接把上邊的spring-boot-maven-plugin插件坐標(biāo)復(fù)制到pom.xml中,不能直接下載。

原因

  • 在Maven中,plugin插件是有專屬的配置的,在沒(méi)有的配置的時(shí)候就去普通的倉(cāng)庫(kù)里面找。

  • 我們平時(shí)使用的plugin,都是maven官方的,然而這插件不是他家的,對(duì)此阿里有一個(gè)倉(cāng)庫(kù)https://maven.aliyun.com/repository/spring-plugin可以下載。

  • 在項(xiàng)目代碼里面,如果加上以下這段配置,就可以正常打包部署了!

<pluginRepositories>
    <pluginRepository>
            <id>alimaven spring plugin</id>
            <name>alimaven spring plugin</name>
            <url>https://maven.aliyun.com/repository/spring-plugin</url>
    </pluginRepository>
</pluginRepositories>
  • 為了不讓每個(gè)項(xiàng)目都如此煩所的加上上面的配置,需要在Maven的settings.xml配置代碼如下:
<profiles>
     <profile>
      <id>spring plugins</id>

      <activation>
        <jdk>spring plugins</jdk>
      </activation>

      <pluginRepositories>
        <pluginRepository>
          <id>spring plugins</id>
          <name>Spring plugins</name>
          <url>https://maven.aliyun.com/repository/spring-plugin</url>
          <layout>default</layout>
          <snapshotPolicy>always</snapshotPolicy>
        </pluginRepository>
      </pluginRepositories>
    </profile>
  </profiles>

或者簡(jiǎn)單一點(diǎn),直接配置阿里云的Maven鏡像倉(cāng)庫(kù)。

<mirror>
      <id>alimaven</id>
      <name>aliyun maven</name>
      <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
      <mirrorOf>central</mirrorOf>        
 </mirror>

參考:https://blog.csdn.net/MVP_PhoeNix/article/details/84925399
第九點(diǎn)是記錄一下,以后出現(xiàn)問(wèn)題可以做個(gè)參考。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容