創建一個聚合項目

1  創建一個聚合項目

創建foodie-dev項目

在pom文件中設置聚合工程的頂級項目

    <packaging>pom</packaging>

選中項目,右鍵新建Module,foodie-dev-common

子工程的pom文件,

<!--    默認的打包方式是jar包-->
<packaging>jar</packaging>

 

新建module,foodie-dev-pojo,並且依賴common模塊,在pojo的pom文件中,

<dependencies>
    <dependency>
        <groupId>com.zte</groupId>
        <artifactId>foodie-dev-common</artifactId>
        <version>1.0-SNAPSHOT</version>
    </dependency>
</dependencies>

 添加其他模塊

    <modules>
        <module>foodie-dev-common</module>
        <module>foodie-dev-pojo</module>
        <module>foodie-dev-mapper</module>
        <module>foodie-dev-service</module>
        <module>foodie-dev-api</module>
    </modules>

依賴關係api-->service-->mapper-->pojo-->common

完成這些之後,去maven裏雙擊頂級項目的install,裝配起來。

繼續在父pom中添加各個配置項。

在api模塊中創建工程

運行工程之前,還是要執行一邊安裝install操作;

2 SpringBoot的自動裝配

@SpringBootApplication
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class,args);
    }
}

查看run方法的源碼

一個靜態助手,可以來運行一個來自特定source的SpringApplication,這個source就是參數中的primarySource,這個Class泛型。第二個參數通常是java main方法的參數,也就是args。返回的是正在運行的ApplicationContext。

具體看下@SpringBootApplication註解。

@ComponetScan是包掃描,會掃描啓動類Application所在包下面所有的class和子包下的class。

@SpringBootConfiguration

這個註解裏面是一個接口,上面有@Configuration,表明這是一個容器,類似Spring裏面的Beans,裏面有很多Bean,然後用xml文件進行配置。

@EnableAutoConfiguration
這個註解點擊進去之後,

查看@Import

註釋上說,用來導入一個或多個Configuration(容器)

來查看導入的這個 AutoConfigurationImportSelector.class。

 

 

 查看spring.factories

 當滿足一些要求的時候,會加載tomcat(springboot內嵌的tomcat)

點進去看一看到tomcat的默認配置。

幫忙自動裝配了Spring MVC

給web server運行自動裝配。

自動裝配,啓動tomcat

3 整合HikariCP

在父pom文件中添加mysql驅動和mybatis依賴

在api模塊的yml文件中加入配置

運行之前,要重新install一下。

1-4 MyBatis數據庫逆向生成

運行前同樣需要install

4  結合通用Mapper,編寫Restful風格Api

作爲service,需要被容器掃描到,所以加了@Service註解

control+i,引入所有接口方法。

編寫StuFooContorller,到StuServiceImpl,裏面的getStuInfo方法,需要事務的支持,因爲是查詢,只選擇SUPPOTS

1-10  事務傳播詳解

事務的聲明是在serviceImpl層添加的

  • [REQUIRED]沒有添加REQUIRED事務註解的時候,

第一個會被執行,把數據寫到數據庫中,因爲中斷,第二方法沒有把數據寫到數據庫中,但是第一個方法在因爲錯誤中斷沒有回滾; 

  •  [REQUIRED]給父級方法添加事務聲明,子級方法不填加,事務會傳遞到子級,報錯後操作回滾,數據庫中沒有數據。
  •  [REQUIRED]父級事務不填加事務聲明,子級方法添加;被添加的子方法會回滾;
  •  [SUPPORTS]父方法不聲明,子方法聲明,不會加事務,報錯數據庫也不會回滾;因爲查詢的時候不需要事務回滾,所以使用SUPPORTS
  • 父方法聲明[REQUIRED],子方法聲明[SUPPORTS]
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章