1. 程式人生 > 程式設計 >主流框架小結

主流框架小結

熟悉Spring、SpringMVC、SpringBoot、SpringCloud、Mybatis、Hibernate、Jpa等框架;

Spring框架:理念DI/IOC和AOP容器的框架

    Di;就是依賴注入,比如A類需要一個資料庫Connection物件,Spring就會在需要的時候通過反射獲得一個Connection,DI的方式兩種:構造器或者set注入
	
    IOC:控制反轉,這是spring的核心,用Spring來負責控制物件的生命週期和物件間的關係,總的來說,就是所有類控制物件的許可權交給spring統一管理
 	
    AOP:面向切面程式設計,將業務邏輯鬆耦合,提高程式可重用性,相同的業務邏輯抽取,再切入到需要使用這段邏輯的模組中去.包含@ApsectJ註解新功能面,面內@Before @After 等 pointCut和joinput
複製程式碼
    @Aspect
public class AnnoationAspectJ {

   @Pointcut("execution(* com.bat.aspectJ.App.say(..))")
   public void joinPoint() {
   }
   @Before("joinPoint()")
   public void before() {
       System.out.println("切入前--------");
   }
   @After("joinPoint()")
   public void after() {
       System.out.println("切入後"
); } } 複製程式碼
Spring MVC:為了降低jsp和javaBean的耦合
M就是模型,( bean dao)

V:檢視,( 網頁),C:控制器,控制檢視和模型的一,一對應  
    Service層通過spring的宣告式事務操作DAO層,複製程式碼

SpringBoot: 為了消除大量配置

	1.	web.xml 為了載入spring和spring mvc
	2.	配置資料庫連線,和日誌檔案
	3.	配置對配置檔案的讀取,和註解支援
	4. 	mapper對映
複製程式碼
啟動配置	
    用idea 啟動spring initial建立工程,此時會生成啟動類SpringBootApplication和空測試類SpringBootApplicationTests和Application.properties以及Pom.xml 

    值得注意:
1.@SpringBootApplication 直接代表三個註釋(@Configuration、@EnableAutoConfiguration[根據jar包為專案進行自動配置]、@ComponentScan)

2.properties可以直接用yml替代	
    熱部署注意:修改程式碼後及時重啟boot,編譯新程式碼
複製程式碼

	增加jsp支援
	
		1.	包括servlet依賴和tomcat支援
複製程式碼

		2.	jsp定向
複製程式碼

		3.	修改RestController的註解為Controller
複製程式碼

		4.	依照配置新建jsp檔案

		5.	等待熱部署重新整理
複製程式碼

增加Mybastis支援

		1.	pom.xml
複製程式碼

        2.	yml增加配置
複製程式碼

3. 建立相關pojo實體類和Mapper對映

4. Controller呼叫

5. 寫jsp收資料

6.重啟boot 因為增加了依賴,熱部署失效

	Spring Cloud: 基於spring
	
	boot設計的微服務規範,增強了上下文的一套快速構建分散式系統的一系列框架的有序集合.
複製程式碼

變革:

從單體架構[一個應用,一個資料庫,一個web容器]到垂直架構[業務模組拆分]到服務架構SOA[服務之間用webservice或者dubbo治理] 再到微服務架構

微服務:一種軟體架構風格,專注於單一責任和功能的小型功能區為基礎,

1.大型系統需要服務拆分精細化,2.各個服務獨立部署(多個docker例項),3.服務獨立維護,4.服務治理要求高,

				元件協同微服務搭建:
					全覽圖:
複製程式碼

1.Eureka 服務的註冊和發現,將服務連線起來
2.Hystrix 監控服務呼叫情況,和提供熔斷機制
3.Hystrix dashboard,Turbine 監控熔斷情況提供圖形化展示
4.SpringCloudConfig 讀取Git/SVN的配置,統一的配置檔案中心
5.Spring CloudBus 通過和各個客戶端通訊,下發配置檔案的自動refresh	
6.zurl 所有內外的資源請求,都通過閘道器轉發,許可權校驗
7.Sleuth和Zipkin提供複雜的服務間呼叫跟蹤關係.監控,並記錄
複製程式碼

Mybatis

MyBatis 簡介 MyBatis是基於java的持久層框架

為什麼使用MyBatis

    傳統的jdbc操作需要手動操作Connection Statement ResultSet,使用Mybatis,相比於Hiberhate,上手簡單,適合經常的專案變化需求
複製程式碼