原创 多線程學習之Lock和Condition(二)

在多線程領域,有兩大問題,一個是同步(線程之間如何通信、協作),一個是互斥(同一時刻只能允許一個線程對共享資源進行訪問),Lock鎖是用於解決互斥問題,Condition用於解決同步問題。 一、爲什麼需要使用Lock鎖? Java中提供了

原创 Spring單體事務機制(傳播、隔離、回滾)

一、Spring事務傳播機制 Spring事務傳播機制,是Spring針對事務嵌套而制定的解決方案。所謂事務嵌套,就是我們有方法A和方法B,方法A和方法B都是事務方法,那麼假如我們在方法A中調用了方法B,這就形成了一個事務嵌套。這裏默認大

原创 mybatis的demo

1.導入依賴,配置mybatis使用環境         <dependencies> <dependency> <groupId>org.mybatis</groupId> <artifactId>my

原创 Java序列化writeObject方法、transient關鍵字、defaultWriteObject介紹

1.概念: 序列化:指將對象轉換成ObjectOutPutStream存儲到硬盤的過程就叫做序列化。 反序列化:將文本存儲的對象字節轉換成ObjectInputStream的過程。 在java中,實現了Serializable接口的類才能

原创 springboot依賴注入的三種方式(非autowired)

Springboot會自動加載resources文件下面的application.yml或者application.properties配置文件,因爲yml格式可以替代xml格式,功能properties更強大,所以一般都使用yml格式進

原创 springboot源碼閱讀之Application.run()--new SpringApplication(primarySources)

1.通過SpringApplication.run(DemoApplication.class, args);進入run方法。 2.用一個Class數組把傳入的Class對象裝起來,調用另一個run方法。 public static C

原创 自定義類加載器(破壞雙親委派模型)

寫這個自定義類加載器是因爲瞭解到熱部署的原理,是通過打破了雙親委派模型的自定義類加載器來加載的,使用新的類加載器實例來加載新的類,然後替換掉方法區中的舊的類。 兩個類,一個KaJong類,一個MyClassLoader類。直接調用find

原创 maven目錄結構以及springboot目錄結構

1.maven目錄結構 src/main/java Application/Library sources src/main/resources Application/Library resources src/main/filters

原创 MySQL學習筆記之索引

我們的數據存儲於計算機的磁盤上,以512個字節爲一個扇區,InnoDB的數據頁大小是16KB每頁,同一個應用程序的數據可能是連續存儲的,也可能是分開存儲的,如果沒有索引,MySQL要查找指定的數據,只能挨個讀取各個扇區的數據並進行比較,如

原创 多線程學習之基礎理論知識(一)

多線程的三大問題:可見性、原子性,有序性。 1.可見性:因CPU緩存導致,因爲多線程的本質就是利用上多核CPU的性能,由於每個現代CPU都有一級或者二級CPU cache用來提升性能,所以如果使用多線程對堆數據進行修改操作,勢必會先讀取到

原创 MySQL學習之——事務

事務是什麼?事務就是把對數據的一系列操作進行打包,實現ACID(Atomicity、Consistency、Isolation、Durability)四個特性,即原子性、一致性、隔離性、持久性。 說說隔離性。 1.MySQL事務有四種隔離

原创 springboot javaConfig使用註解代替XML配置Bean

1.Spring一直以來使用XML進行文件配置,但XML配置文件有一個最大的問題是,配置好的XML不能夠在編譯時檢查到錯誤,只能在運行時才能檢查錯誤,極大的影響了開發效率,所以SpringBoot設計出了JavaConfig,用註解的方式

原创 springboot按照類型、名稱注入(autowired、qualifier、resource)

1.使用autowired註解springboot默認是按照類型進行注入 2.如果在IOC容器中一個接口有多個實現類,那麼不能夠按照類型注入,需要按照名稱進行注入 (1).可以通過@Qualifier和@Autowired註解搭配,在@Q

原创 SpringAOP實現原理(JDK動態代理、CGLib)

AOP,面向切面編程,是面向對象編程的補充,因爲面向對象只能做到由上至下編程,但是AOP可以做到從左到右編程。 在我們的應用程序中,使用AOP可以將日誌、事務、權限檢查、性能監控等等通用功能代碼橫向織入到業務邏輯代碼當中。 那麼實現AOP

原创 SpringAOP之AspectJ+攔截自定義註解

一、AOP基本概念 假設現在我們要對一個Test類進行事務代碼織入,那麼我們需要知道這個類有哪些方法,然後需要知道這個類的哪些方法需要織入事務代碼。 1.目標類:需要織入日誌代碼的類,也就是Test類。 2.連接點:目標類的所有方法,都叫