1. 程式人生 > >idea 建立spring boot + maven + mybatis 專案並打包部署

idea 建立spring boot + maven + mybatis 專案並打包部署

前言: 由於在程式碼中使用註解編寫sql 會導致後期難以維護和混亂, 這裡使用的mybatis是 用xml 檔案。連線的是oracle12c

步驟:

1:

 點選next:

 填寫: group   , artifact ,  packaging 選war

選擇:web

下一步:

建立後的目錄是這樣的:

紅色目錄刪除: 我有強迫症, 所以我把它刪了, 沒有強迫症的可刪可不刪

在上面的目錄刪除後,

1:在test > java 下新建一個  test 包, 在包下建一個 BaseTest.class, 內容如下:這是測試類, 配置好就可以在裡面寫方法測試了, 注入介面,或者dao 都可以。

//獲取啟動類,載入配置,確定裝載 Spring 程式的裝載方法,它會去尋找  主配置啟動類(@SpringBootApplication 註解)
@SpringBootTest(classes = Main.class)
//讓Junit執行spring的測試環境, 獲得Spring上下文的支援
@RunWith(SpringRunner.class)
//獲取上下文支援
@WebAppConfiguration
public class BaseTest {

     @Test
     public  void test1()
     {
          System.out.println("test1");
     }
}

2: 將 com.test.demo 下的兩個類: ServletInitializer   , DemoApplication 移動到com.test下, 將demo包刪除, 將DemoApplication   ReName 為 Main.class

接下來啟動一下:

出現 Tomcat started on port(s): 8080  就是啟動成功了, 這個是tomcat 啟動後的埠。

配置 pom.xml

1 改為: 1.0-SNAPSHOT

2: 刪除

在 pom.xml  dependencies 標籤 中引入 以下包

<!-- 熱部署模組 -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-devtools</artifactId>
    <optional>true</optional> <!-- 這個需要為 true 熱部署才有效 -->
</dependency>

<!-- spring-boot整合mybatis -->
<dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>1.2.2</version>
</dependency>

<!--pagehelper -->
<dependency>
    <groupId>com.github.pagehelper</groupId>
    <artifactId>pagehelper-spring-boot-starter</artifactId>
    <version>1.2.7</version>
</dependency>


<!-- a阿里巴巴 druid-->
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid-spring-boot-starter</artifactId>
    <version>1.1.9</version>
</dependency>
<!-- jsckson -->
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>1.2.15</version>
</dependency>

<!-- oracle  jdbc> -->
<dependency>
    <groupId>oracle.jdbc</groupId>
    <artifactId>ojdbc8</artifactId>
    <version>12.2.0.1</version>
</dependency>

點選1 , 在點選2  下載包

配置 application.properties

#內建tomcat埠
server.port=8080

#配置字元編碼
spring.http.encoding.force=true
spring.http.encoding.charset=UTF-8
spring.http.encoding.enabled=true
server.tomcat.uri-encoding=UTF-8

#資料庫連線地址
spring.datasource.url=jdbc:oracle:thin:@192.168.32.128:1521/orcl
#使用者名稱
spring.datasource.username=dev
#密碼
spring.datasource.password=dev
#連線驅動
spring.datasource.driver-class-name=oracle.jdbc.OracleDriver
#資料來源型別
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource

#mybatis配置

# 對應實體類的路徑
mybatis.type-aliases-package=com.test.model
#一定要對應mapper對映xml檔案的所在路徑
mybatis.mapper-locations=classpath:mapper/*.xml

#分頁設定
pagehelper.helperDialect=oracle
pagehelper.reasonable=true
pagehelper.supportMethodsArguments=true
pagehelper.params=count=countSql

#日誌配置 列印sql
logging.level.com.test.interfaces.dao = debug

建立 model  實體 和 mapper

建立 dao  interface

建立  userService  interface

建立 userServiceImpl  類

建立 controller  class

配置 啟動類:

1:掃描 dao層

2: 重寫spring boot的json

/*
  *重寫spring  boot  Json  ,  用的是阿里巴巴的 FastJson
  * 有兩種方式
  * 1:繼承 ,重寫 configureMessageConverters 這個方法, 推薦使用這一種,
  *    因為當物件有空值時, 空值不會返回
  * 2: 注入bean的方式, 不推薦使用,  當物件有空值時, 空值也會返回json鍵值
 */
@Override
public void  configureMessageConverters(List<HttpMessageConverter<?>> converters)
{
    super.configureMessageConverters(converters);
    FastJsonHttpMessageConverter fhc = new FastJsonHttpMessageConverter();
    FastJsonConfig config = new FastJsonConfig();
    config.setSerializerFeatures(SerializerFeature.PrettyFormat);
    fhc.setFastJsonConfig(config);
    converters.add(fhc);
}

整個 demo的目錄:

在 Main.class 啟動類啟動後 訪問一下: localhost:8080/add

關於: 熱部署, 只需要 以下引入 就可以熱部署, 不需要其他配置,

熱部署原理是: 兩個classLoader, 一個classLoader監聽修改的檔案,重啟應用,發生的時機的儲存的時候。重啟大概是5秒以內

打包要制定打包後的名字,在pom中新增:

打包:可以直接打包為 jar , 然後 java -jar  demo.jar, 修改以下:將war改為jar就可以 打包成jar ,  改為war 就可以打包為 war釋出到tomcat

執行  clean   install, 在目錄下出現 target 下  demo.war  ,將  demo.war  放置 tomcat > webapps 下, 啟動 tomcat,

輸入 tomcat所在ip : 8080/demo/add  就能成功訪問。