1. 程式人生 > 實用技巧 >Android 釋出開原始碼到 jitpack 給別人使用

Android 釋出開原始碼到 jitpack 給別人使用

分散式和微服務

單體應用:系統介面、靜態資源、業務元件等都會在一個工程裡,將來發布需要全部發布到一臺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等伺服器啟動伺服器,釋出程式執行