1. 程式人生 > >eclipse中使用spring boot 入門開發(包含:與jsp頁面和資料庫互動,cmd打包執行war包)

eclipse中使用spring boot 入門開發(包含:與jsp頁面和資料庫互動,cmd打包執行war包)

突然想到自己有一段時間沒使用spring boot了,熟悉了一下之後決定記錄一下這次使用的注意點

一:使用springBoot搭出來一個架子(從前端到資料庫)

1.eclipse已經整合了maven,所以新建一個maven專案,然後針對專案修改下jdk相關點

2.目錄如下:專案名為springBoot,建立的包名和類名也能看到,因為是測試,所以省略了service層

3.啟動類:Application.java(註解只有一個)

4.pom.xml檔案

<!-- 父依賴 -->  
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.1.RELEASE</version>
    </parent>

<dependencies>

<!-- 核心依賴 -->
    <dependency>  
           <groupId>org.springframework.boot</groupId>  
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

</dependencies>

    有以上兩個依賴,已經可以傳輸json串到前臺了,如果想整合jsp,還需要新增如下依賴:      

    <!-- servlet依賴. -->
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
    </dependency>
    <!-- 支援jsp一定要這個依賴 -->
    <dependency>
        <groupId>org.apache.tomcat.embed</groupId>
        <artifactId>tomcat-embed-jasper</artifactId>
    </dependency>

     如果想用jstl,再新增一個依賴       

    <!-- jstl依賴 -->
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>jstl</artifactId>
    </dependency>

再往後和ssm框架中一樣需要配置下jsp的訪問路徑,在resources下新建一個application.properties檔案(最好一開始就調整好檔案字符集),新增如下內容:

ps:該檔案中可以指定tomcat埠,新增,如: server.port=80

至此已經可以編寫相應的jisp頁面來實現前後端資料互動了------jsp頁面和springMVC部分與ssm框架一模一樣

整個過程並沒有在pom.xml的build標籤中新增tomcat外掛,另外新增的依賴也是試驗過多次,在保證功能的條件下,數量最少了。

接下來是和mybatis的整合:


springBoot中並沒有整合好的mybatis依賴,需要單獨新增,下面兩個依賴缺一不可

<!-- mybatis依賴,需要這兩個 -->
    <dependency>
        <groupId>org.mybatis.spring.boot</groupId>
        <artifactId>mybatis-spring-boot-starter</artifactId>
        <version>1.3.0</version>
    </dependency>
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.10</version>

  </dependency>

然後,在application.properties中新增如下:

至此,整合完畢。同時代碼部分和ssm框架一樣呼叫就可以了,注意的一點是:在mapper介面上新增@Mapper註解

回顧下:不需要涉及web.xml;application.properties(也可以是.yml格式)配置檔案中不需要開啟註解,掃描包等操作;pom.xml檔案中可以指定jdk版本,制定打包的方式(jar或者war),我是用的war包,因為cmd中命令:java -jar  xxx.war也可以執行,而且執行jar包訪問jsp會404(和目錄結構有關)

二:打包部署(war包)


1.因為eclipse整合了maven,使用maven命令即可,兩種方式:方式一、專案名上右鍵 Run As-->Maven Install  方式二、專案名上右鍵 Run As-->Maven build ,在對話方塊中如下輸入:

但是在我是直接打包成war或者jar,執行時總是報錯:無法進入清單或者找不到xx類,所以打包之前,需要在pom.xml檔案的build標籤中新增maven外掛,如下,然後再打包:

2.在workspace或者專案中的target目錄下找到對應的war包,如下:


3.cmd中輸入  java -jar  xx/xx.war  回車(war包名稱可以自己定義,路徑要能找到該war包)

4.在瀏覽器中輸入localhost/xx  (埠已經在application.properties中改為80) ,springMVC攔截請求實現程式碼中相應的方法,從而和後臺實現互動

總結:

a.程式碼部分和以前的smm框架沒什麼兩樣,只是多了一個application.java(我叫它啟動類)和mapper介面上的註解

b.在ssm框架整合方面,少了很多配置檔案,只有一個application.properties檔案即可,web.xml檔案也不需要新增任何東西(需要攔截器,監聽器,過濾器的話,再開一篇單獨記錄)

c.在pom.xml檔案中多了一個“父依賴”,其中已經包含了很多常用的依賴,並且會自動選用適合的版本號,所以自己新增的依賴可以不用輸入版本號。只是由於和jsp的整合不好,所以需要另外新增相關依賴;mybatis更不用說了,需要它就要新增相關以來。打包的時候最好新增maven外掛,這樣war包的內容更加完成,避免報找不到xxx的錯

d.springBoot專案不需要釋出到Tomcat伺服器中,直接命令列執行即可在網頁中訪問(本身集成了tomcat,也可以自己移除自帶tomcat)

更新:打war包

後來發現一種更簡單的打war包方法

1.啟動類中繼承 SpringBootServletInitializer 類,並重新 configure 方法,返回值型別 SpringApplicationBuilder

2.pom檔案中更改packaging中的jar為war;同時將springboot的web依賴中的自帶tomcat移除,如下即可:

        <dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
			<!-- 移除嵌入式tomcat外掛 -->
			<exclusions>
				<exclusion>
					<groupId>org.springframework.boot</groupId>
					<artifactId>spring-boot-starter-tomcat</artifactId>
				</exclusion>
			</exclusions>
		</dependency>

其他的都不用改動。只是此時產生的war包和以前使用ssm框架什麼生成的war包一樣,需要放到如tomcat中才可以訪問,一個普通的war包。
LG