eclipse run on server 点不了finish_分享点经验 | springboot入门及编码
點擊藍字關注我們
AMP
很多新人在剛剛接觸后端開發的時候,可能對springboot的概念、如何快速上手一個springboot項目多多少少有些一知半解;此外寫出來的代碼也因為不夠規范而可讀性較低,導致后期難以維護。本文旨在站在新手的視角,盡可能給出一個通俗的解釋。
Let's get started~
Spring是什么?
Spring是一個支持快速開發Java EE應用程序的框架。它提供了一系列底層容器和基礎設施,并可以和大量常用的開源框架無縫集成,可以說是開發Java EE應用程序的必備。
Spring的兩個核心思想是:
1、IOC-控制反轉
我們知道,java中是通過new關鍵字來創建對象的,不僅麻煩而且容易造成資源浪費。所以IOC應運而生,有了它我們在實際代碼中無需去一個個地手動new 對象,而是把對象的創建、對象間的關系、對象的銷毀(生命周期管理)交給Spring容器去管理,只要從spring容器中拿對象來使用。
我們就先簡單的理解為不用去new一個對象。
2、AOP-面向切片編程
SpringBoot是什么?
Spring Boot是一個基于Spring的套件,它幫我們預組裝了Spring的一系列組件,以便以盡可能少的代碼和配置,來開發基于Spring的Java應用程序。
Spring Boot和Spring的關系就是整車和零部件的關系:
Spring相當于提供了汽車的零部件,但是要裝好汽車上路,還需要我們自己動手。
而Spring Boot則相當于已經幫我們預裝好了一輛可以上路的汽車,如果有特殊的要求,例如把發動機從普通款換成渦輪增壓款,可以通過修改配置或編寫少量代碼完成。
總之,Spring和Springboot都是為了減少開發代碼中的重復工作、給代碼解耦(不至于改一個而動全局)、方便引入其他框架(可以理解成模板)而存在的框架。
最簡單的Springboot工程
Step1:maven安裝和配置。初次需要,此略
Step2:使用Idea的 Spring Initializr:
選擇 SDK,點擊【new】這里就是使用 JAVA SDK 要求版本 1.8+,選擇你默認安裝在 C:\Program Files\Java\jdk1.8.0_191 目錄:
Step3:然后選擇默認的 url (不用管)點擊【Next】:
Step4:然后填寫一下項目的信息:
注意:
1、此處group一般是域名反寫,如
com.chinalife.xxx
2、Java版本選擇當前安裝的版本
Step5:先勾選上 Web 依賴:
Step6:勾選 SQl 下的 MySQL,MyBatis 依賴(連接數據庫的):(根據自己的項目選擇,后面可加)
Step7:選擇好項目的位置,點擊【Finish】。
此時我們來看看默認生成的有什么:
SpringbootApplication:一個帶有 main() 方法的類,用于啟動應用程序。即從這里開始RUN。
application.properties:一個空的 properties 文件,后期可以根據需要添加配置屬性。如我們的項目使用了polardb,則該數據庫的信息就添加在這里:
pom.xml:Maven 構建說明文件。即如果需要引入其他的包,在這里添加那個包的依賴信息即可。比如上段提到我們使用了polardb,就需要在此引入其依賴。如果沒有這段依賴,我們需要手動把polardb相關代碼復制進本工程,可讀性極低。
SpringbootApplicationTests:一個空的 Junit 測試了,它加載了一個使用 Spring Boot 字典配置功能的 Spring 應用程序上下文。
Java應用工程分層
1、Dao層
Dao層:持久層,主要與數據庫交互,簡言之就是通過將SQL語句和本項目中函數的對應,來封裝對數據庫的訪問,將數據庫中的對象“拿來”使用。
DAO層首先會創建Dao接口,接著就可以在配置文件中定義該接口的實現類。
2、Entity層
Entity層:實體層,數據庫在項目中的類
主要用于定義與數據庫對象應的屬性,提供get/set方法,tostring方法,有參無參構造函數。
實例:我們的項目一個餐食管理系統,所以其中之一的實體類就是Dish。
3、Service層
Service層:業務層 控制業務
業務模塊的邏輯應用設計,和DAO層一樣都是先設計接口,再創建要實現的類,然后在配置文件中進行配置其實現的關聯。Service主要存放業務相關的邏輯,比如我們的餐食系統里,存放餐食的增刪改查功能。
好處:封裝Service層的業務邏輯有利于業務邏輯的獨立性和重復利用性。
接口
實現
4、Controller層
Controller層:控制層 控制業務邏輯
具體的業務模塊流程的控制,controller層主要調用Service層里面的接口控制具體的業務流程。
Controller和Service的區別是:Controller負責具體的業務模塊流程的控制;Service層負責業務模塊的邏輯應用設計
總結:controller層調用了Service層的方法,Service層調用Dao層的方法,其中調用的參數是使用Entity層進行傳遞的。
一些其他便于理解的相關概念
容器、Docker和鏡像:
容器是鏡像的實例化:運行中的這個鏡像稱為容器。
Docker是一個開源的應用容器引擎,是一個輕量級容器技術。
Docker支持將軟件編譯成一個鏡像;然后在鏡像中各種軟件做好配置,將鏡像發布出去,其他使用者可以直接使用這個鏡像。
為什么使用容器?
兼容各種環境+提供底層服務:
代碼寫好后難免會在不同的環境中運行(如在window/linux),容器的出現使之能適配各種環境,開發人員可以僅關注程序本身,省去很多繁瑣的適配環境的配置工作。
此外,容器還提供了許多底層服務。例如,Servlet容器底層實現了TCP連接,解析HTTP協議等非常復雜的服務,如果沒有容器來提供這些服務,我們就無法編寫像Servlet這樣代碼簡單,功能強大的組件。
常見的編碼規范
1.命名的大小寫:
類名使用UpperCamelCase風格,如:XmlService
方法名、參數名、成員變量、局部變量使用lowerCamelCase風格,如:inputUserId
包名使用小寫,點分隔符之間有且僅有一個自然語義的英文單詞。包名統一用單數形式。但類名如果有復數含義可以用復數形式。如:com.chinalife.ai.util
2.[]的位置:
類型和[]之間無空格相連定義數組,如:String[] args,int[] arrayDemo。而非String args[],int ?[]arrayDemo
3.縮進:
良好的縮進有利于讓他人在維護代碼時,迅速的了解代碼的邏輯結構。
(1)大括號的使用約定。如果是大括號內為空,則簡潔地寫成{}即可,不需要換行;如果 是非空代碼塊則:1) 左大括號前不換行。2) 左大括號后換行。3) 右大括號前換行。4) 右大括號后還有 else 等代碼則不換行;表示終止的右大括號后必須換行。
(2)左小括號和字符之間不出現空格;同樣,右小括號和字符之間也不出現空格。反例:if (空格 a == b 空格)
(3)if/for/while/switch/do 等保留字與括號之間都必須加空格。
(4)采用 4 個空格縮進,禁止使用 tab 字符。說明:如果使用 tab 縮進,必須設置 1 個 tab 為 4 個空格。IDEA 設置 tab 為 4 個空格時, 請勿勾選 Use tab character;而在 eclipse 中,必須勾選 insert spaces for tabs。
如:
4.縮寫注意事項:
杜絕詞不達意的縮寫,杜絕無意義的命名。如int a;
注意:第3、4條的嚴格遵守,有利于他人在維護代碼時快速讀懂。
5.常量及變量命名:
在常量與變量的命名時,表示類型的名詞放在詞尾,以提升辨識度。如:nameList
6.接口類與實現類的命名:
對于Service和DAO類,暴露出來的服務一定是接口,內部的實現類用Impl后綴與接口區別。
如:CacheServiceImpl實現CacheService接口
7.接口規范:
接口類中的方法和屬性不要加任何修飾符號(public也不要加)。如:void commit();而非public abstract void commit();
其實在idea中,寫了修飾符號會被提醒標灰:
8.各層命名規范:
????? Service/DAO 層方法命名規約:
獲取單個對象的方法用 get 做前綴。
獲取多個對象的方法用 list 做前綴,復數結尾,如:listObjects。獲取統計值的方法用 count 做前綴。
插入的方法用 save/insert 做前綴。
刪除的方法用 remove/delete 做前綴。
修改的方法用 update 做前綴。
以上就是對Springboot和編碼規范的簡單介紹,希望能幫助剛入門的小伙伴們更好的理解。
記得關注我哦~
點擊下方
總結
以上是生活随笔為你收集整理的eclipse run on server 点不了finish_分享点经验 | springboot入门及编码的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python颜色表_Python+mat
- 下一篇: harmonyos公测招募,nova为主