Android 釋出開原始碼到 jitpack 給別人使用
阿新 • • 發佈:2020-09-02
分散式和微服務
單體應用:系統介面、靜態資源、業務元件等都會在一個工程裡,將來發布需要全部發布到一臺tomcat伺服器上。 分散式:將一個系統的介面、靜態資源、業務處理進行拆分,釋出到不同的伺服器上,然後使用者請求過來,呼叫多個伺服器資源處理,給使用者響應。 微服務:屬於開發分散式應用的架構思想,將大型系統的業務處理部分,進行微型化拆分,拆分出的業務可以獨立部署, 這些業務之間可以通過協議進行呼叫,從而實現一個完整業務處理。 優點:提升系統的效能、擴充套件性。 微服務架構技術主流有以下兩種: 1. SpringBoot+SpringCloud (國外,Pivotal) 2. Dubbo+Zokeerper(國內,阿里)
SpringBoot
SpringBoot是對Spring框架及其相關技術進行的封裝,可以簡化Spring應用搭建和開發過程。(敏捷開發)
SpringBoot優點:
1. 去除了XML配置方式,完全採用Java配置方式
2. 內建tomcat伺服器,自動釋出應用(main方法啟動)
3. 基於jar包方式釋出程式
4. 提供一系列的啟動器(jar包集合),便於匯入
5. 採用properties或yml檔案做配置
6. 提供了自動配置機制,自動建立一些常用物件,例如JdbcTemplate、DataSource、DispatcherServlet等
MAVEN
MAVEN是一個專案構建工具,可以對建立、編譯、打包、生成文件等過程進行管理。maven工程都有一個pom.xml檔案, 通過在pom.xml追加定義,實現jar包和工具的匯入。 MAVEN優點:一種標準化的方式構建專案,一個清晰的方式定義專案的組成,一個容易的方式釋出專案的資訊, 以及一種簡單的方式在多個專案中共享JARs。
SpringBoot程式結構
1. pom.xml匯入boot啟動器 spring-boot-starter-parent //啟動器父項,統一控制版本、jdk版本、編碼等 spring-boot-starter //spring核心、boot自動配置、yaml解析等 spring-boot-starter-jdbc //spring-jdbc、hikari spring-boot-starter-web //springmvc、jackson、restful、tomcat spring-boot-starter-test //spring-test、junit spring-boot-starter-data-redis //spring-data-redis spring-boot-starter-data-jpa //spring-data-jpa spring-boot-devtools //熱啟動,程式碼修改後自動重啟 2. 新增application.properties或者application.yml properties格式 server.port=8888 yml格式 server: port: 8888 3. 新增啟動類RunXxxx @SpringBootApplication public class RunBoot { public static void main(String[] args) { SpringApplication.run(RunBoot.class); } } 4. 業務處理元件(Controller、Service、Dao等) 注意:業務元件一定要放在啟動類包下或子包下。
SpringBoot程式啟動過程
1. Boot程式啟動入口為SpringApplication.run(RunBoot.class, args);
2. 靜態run方法內部建立了一個SpringApplication物件,並且執行該物件的run方法
3. 建立SpringApplication物件時,做了一些初始化工作載入Initializers和Listeners元件(根據spring.factories定義載入)
4. run方法內部會建立一個Spring容器物件ApplicationContext(根據底層Env環境不同建立不同的ApplicationContext)
5. run方法內部還會載入啟動Logo Banner資訊
6. run方法內部對ApplicationContext容器進行各項資訊設定,例如bean物件(refreshContext),環境引數(prepareContext),啟動Banner等
7. 如果有tomcat等伺服器啟動伺服器,釋出程式執行