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 就能成功訪問。