阿里云部署應(yīng)用

本文介紹使用spring boot應(yīng)用打包后的war包在阿里云平臺上部署并訪問應(yīng)用。

一、打包

  1. 首先我們對spring boot項(xiàng)目的pom.xml文件進(jìn)行修改:
<packaging>war</packaging>
  1. 點(diǎn)擊IDEA左下角的按鈕后選擇maven projects,雙擊lifecycle下的install按鈕即可打包:



    image.png

    打包后可發(fā)現(xiàn)在項(xiàng)目根目錄下的target目錄下出現(xiàn)以.war和.war.original后綴的文件

二、部署

我們先將上面生成的兩個war包上傳到阿里云后,執(zhí)行java -jar xxx.war 就可以啟動這個spring boot項(xiàng)目了。

部署過程中遇到操作上的誤解,只有這篇文章是可行的,分享一下:https://blog.csdn.net/wangrui8431/article/details/79022501

三、阿里云相關(guān)配置

(一)應(yīng)用配置

由于項(xiàng)目中默認(rèn)的端口號是8080,我們需要在阿里云上進(jìn)行配置才能成功訪問應(yīng)用:


image.png

從截圖看除了配置8080端口以外,安全組中還加了3306的端口配置,這是mysql數(shù)據(jù)庫默認(rèn)的端口號,下面馬上用到。

(二)數(shù)據(jù)庫配置

  1. 本例使用的數(shù)據(jù)庫是mysql,安裝好mysql后,我們首先進(jìn)入/usr/bin/目錄下執(zhí)行mysql -u root -p命令(默認(rèn)用戶是root),輸入密碼后登錄mysql執(zhí)行下面兩句命令:
grant all privileges on *.* to 'root'@'%' identified by 'password'; 
flush privileges; 

第一個*是數(shù)據(jù)庫,可以改成允許訪問的數(shù)據(jù)庫名稱 ,第二個 是數(shù)據(jù)庫的表名稱,代表允許訪問任意的表 ,root代表遠(yuǎn)程登錄使用的用戶名,可以自定義 ,%代表允許任意ip登錄,如果你想指定特定的IP,可以把%替換掉就可以了 ,password代表遠(yuǎn)程登錄時使用的密碼,可以自定義 ;flush privileges;這是讓權(quán)限立即生效 。

  1. 修改my.cnf配置文件
    這個是mysql的配置文件,如果你無標(biāo)題文章找不到在哪里的話,可以輸入find /* -name my.cnf 找到,在實(shí)際查找中發(fā)現(xiàn)my.cnf這個配置文件中并沒有bind-address這個配置,但是我在它關(guān)聯(lián)的其他配置文件/etc/mysql/mysql.conf.d/mysqld.cnf中找到這行配置了。通過vim編輯該文件,找到bind-address = 127.0.0.1這一句,然后在前面加個#號注釋掉,保存退出。

  2. 重啟服務(wù)
    service mysql restart或者執(zhí)行 /etc/init.d/mysql restart

  3. 配置阿里云上3306的端口配置

執(zhí)行完上述四點(diǎn)后,我們就可以使用mysql workbench來遠(yuǎn)程登錄并且創(chuàng)建數(shù)據(jù)庫和表了。

其他問題

  1. 由于項(xiàng)目中使用到了thymeleaf,之前寫法如下:
    public ModelAndView avatar(@PathVariable("username") String username, Model model) {
        User  user = (User)userDetailsService.loadUserByUsername(username);
        model.addAttribute("user", user);
        return new ModelAndView("/userspace/avatar", "userModel", model);
    }

userspace目錄位于template目錄下,在本地這樣請求頁面能正常打開,但是一部署到阿里云啟動后訪問就失敗,提示找不到這個目錄下的模板,后來上網(wǎng)查到并解決,正確的寫法應(yīng)該把userspace前面的斜杠去掉。

    public ModelAndView avatar(@PathVariable("username") String username, Model model) {
        User  user = (User)userDetailsService.loadUserByUsername(username);
        model.addAttribute("user", user);
        return new ModelAndView("userspace/avatar", "userModel", model);
    }

這樣thymeleaf才能正常訪問模板頁面。

2.在寫頁面的時候發(fā)現(xiàn)一個問題,那就是當(dāng)頁面顯示不下的時候沒有縱向的滾動條,后來發(fā)現(xiàn)設(shè)置滾動條的樣式加在了<div>元素上,將這個樣式加在<body>元素上后就出現(xiàn)滾動條了,下面是具體的代碼:

<body style="height: auto; overflow-y:scroll">
    <div class="container">
    ...
   </div>
</body>
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Boot 參考指南 介紹 轉(zhuǎn)載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 47,275評論 6 342
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,599評論 19 139
  • 【MySQL】Linux下MySQL 5.5、5.6和5.7的RPM、二進(jìn)制和源碼安裝 1.1BLOG文檔結(jié)構(gòu)圖 ...
    小麥苗DB寶閱讀 10,894評論 0 31
  • feisky云計(jì)算、虛擬化與Linux技術(shù)筆記posts - 1014, comments - 298, trac...
    不排版閱讀 4,355評論 0 5
  • 走的時候沒說出的玩笑話是,2月4日你到杭州,整4個月我還是走了。 二月在城站接你的是我,六月在東站送我的是你。 一...
    柳不浪閱讀 278評論 0 0

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