摘要:前面一種使用的是模板進(jìn)行查詢的。并且最好在接口的方法內(nèi)使用注解來(lái)聲明下。,非常適合在應(yīng)用程序啟動(dòng)之初進(jìn)行一些數(shù)據(jù)初始化的工作。接下來(lái)我們直接創(chuàng)建一個(gè)類繼承,并實(shí)現(xiàn)它的方法。在實(shí)踐中,使用也可以達(dá)到相同的目的,兩著差別不大。
框架技術(shù):SpringBoot+Mybatis+MySQL等配置文件
配置文件application.propreties文件
spring.datasource.url=jdbc:mysql://localhost:3306/blogs?serverTimezone=UTC spring.datasource.username=root spring.datasource.password=root spring.datasource.driver-class-name=com.mysql.jdbc.Driver
如果使用yml文件 則使用下面配置
#spring配置 spring: profiles: active: dev thymeleaf: mode: HTML cache: false #視圖層配置 mvc: view: prefix: /templates favicon: enabled: false #數(shù)據(jù)庫(kù) datasource: url: jdbc:mysql://localhost:3308/blogs?characterEncoding=utf8&useSSL=true username: root password: root driver-class-name: com.mysql.jdbc.DriverController層
注意: 使用Restful時(shí) 要加上@PathVariable注解 。前面一種使用的是JDBCTemplate模板進(jìn)行查詢的。
Service層 ServiceImpl層注意:需要掃描Sercies包時(shí),加上@Service注解
Mapper層注意:需要掃描Mapper包時(shí),需要在接口前面聲明@Mapper注解。這里的方法可以使用@Select、@Insert、@Update、@Delete注解,后面跟上sql語(yǔ)句就可以查詢,當(dāng)然也可以使用Mapper.xml形式進(jìn)行查詢。后面帶有參數(shù)的使用一般使用#{params}或${params},前者會(huì)解析成字符串(也就是帶有雙引號(hào))后者會(huì)解析成原來(lái)的樣子(比如傳入的是int類型的數(shù)字,解析成數(shù)字,傳入字符串,則解析成字符串)。并且最好在接口的方法內(nèi)使用@Param()注解來(lái)聲明下。
,非常適合在應(yīng)用程序啟動(dòng)之初進(jìn)行一些數(shù)據(jù)初始化的工作。
@SpringBootApplication public class CommandLineRunnerApplication { public static void main(String[] args) { System.out.println("The service to start."); SpringApplication.run(CommandLineRunnerApplication.class, args); System.out.println("The service has started."); } }
接下來(lái)我們直接創(chuàng)建一個(gè)類繼承 CommandLineRunner ,并實(shí)現(xiàn)它的 run() 方法。
@Component public class Runner implements CommandLineRunner { @Override public void run(String... args) throws Exception { System.out.println("The Runner start to initialize ..."); } }
我們?cè)?run() 方法中打印了一些參數(shù)來(lái)看出它的執(zhí)行時(shí)機(jī)。完成之后啟動(dòng)項(xiàng)目進(jìn)行測(cè)試:
... The service to start. . ____ _ __ _ _ / / ___"_ __ _ _(_)_ __ __ _ ( ( )\___ | "_ | "_| | "_ / _` | / ___)| |_)| | | | | || (_| | ) ) ) ) " |____| .__|_| |_|_| |_\__, | / / / / =========|_|==============|___/=/_/_/_/ :: Spring Boot :: (v2.0.0.RELEASE) ... 2018-04-21 22:21:34.706 INFO 27016 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8080 (http) with context path "" 2018-04-21 22:21:34.710 INFO 27016 --- [ main] com.neo.CommandLineRunnerApplication : Started CommandLineRunnerApplication in 3.796 seconds (JVM running for 5.128) The Runner start to initialize ... The service has started.
根據(jù)控制臺(tái)的打印信息我們可以看出 CommandLineRunner 中的方法會(huì)在 Spring Boot 容器加載之后執(zhí)行,執(zhí)行完成后項(xiàng)目啟動(dòng)完成。
如果我們?cè)趩?dòng)容器的時(shí)候需要初始化很多資源,并且初始化資源相互之間有序,那如何保證不同的 CommandLineRunner 的執(zhí)行順序呢?Spring Boot 也給出了解決方案。那就是使用 @Order 注解。
我們創(chuàng)建兩個(gè) CommandLineRunner 的實(shí)現(xiàn)類來(lái)進(jìn)行測(cè)試:
第一個(gè)實(shí)現(xiàn)類:
@Component @Order(1) public class OrderRunner1 implements CommandLineRunner { @Override public void run(String... args) throws Exception { System.out.println("The OrderRunner1 start to initialize ..."); } }
第二個(gè)實(shí)現(xiàn)類:
@Component @Order(2) public class OrderRunner2 implements CommandLineRunner { @Override public void run(String... args) throws Exception { System.out.println("The OrderRunner2 start to initialize ..."); } }
添加完成之后重新啟動(dòng),觀察執(zhí)行順序:
... The service to start. . ____ _ __ _ _ / / ___"_ __ _ _(_)_ __ __ _ ( ( )\___ | "_ | "_| | "_ / _` | / ___)| |_)| | | | | || (_| | ) ) ) ) " |____| .__|_| |_|_| |_\__, | / / / / =========|_|==============|___/=/_/_/_/ :: Spring Boot :: (v2.0.0.RELEASE) ... 2018-04-21 22:21:34.706 INFO 27016 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8080 (http) with context path "" 2018-04-21 22:21:34.710 INFO 27016 --- [ main] com.neo.CommandLineRunnerApplication : Started CommandLineRunnerApplication in 3.796 seconds (JVM running for 5.128) The OrderRunner1 start to initialize ... The OrderRunner2 start to initialize ... The Runner start to initialize ... The service has started.
通過(guò)控制臺(tái)的輸出我們發(fā)現(xiàn),添加 @Order 注解的實(shí)現(xiàn)類最先執(zhí)行,并且@Order()里面的值越小啟動(dòng)越早。
在實(shí)踐中,使用ApplicationRunner也可以達(dá)到相同的目的,兩著差別不大。
轉(zhuǎn)載:https://www.cnblogs.com/ityou...
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/74080.html
摘要:市長(zhǎng)信箱郵件查詢服務(wù)將應(yīng)用部署到在上一章我完成了將部署到的工作和都具有能快速啟動(dòng)的特性因此是一對(duì)用來(lái)部署微服務(wù)的黃金搭檔在計(jì)劃中基于的應(yīng)用也將部署到之上那我們就開(kāi)始行動(dòng)吧將部署到上需要執(zhí)行以下步驟保證打包后的可執(zhí)行能正常啟動(dòng)在應(yīng)用中編寫(xiě)鏡像 市長(zhǎng)信箱郵件查詢服務(wù): 將SpringBoot應(yīng)用部署到Docker 在上一章, 我完成了將ES部署到Docker的工作. SpringBoot和...
摘要:前言體系中很多庫(kù)之間相互依賴,但是由于版本之間差異比較大,我們需要比較精確的知道每個(gè)庫(kù)的版本對(duì)應(yīng)關(guān)系,不然很容易造成庫(kù)與庫(kù)之間對(duì)應(yīng)不上,導(dǎo)致部分功能無(wú)效,甚至是異常情況。 前言:Spring體系中很多庫(kù)之間相互依賴,但是由于版本之間差異比較大,我們需要比較精確的知道每個(gè)庫(kù)的版本對(duì)應(yīng)關(guān)系,不然很容易造成庫(kù)與庫(kù)之間對(duì)應(yīng)不上,導(dǎo)致部分功能無(wú)效,甚至是異常情況。程序員排查起來(lái)一個(gè)頭兩個(gè)大,本篇...
摘要:錯(cuò)誤提示根據(jù)的來(lái)運(yùn)行會(huì)報(bào)出下面的錯(cuò)誤解決方法原來(lái)是是偷懶沒(méi)有把放到某個(gè)下面,而是直接放到了。 錯(cuò)誤提示 根據(jù)springboot的tutorial來(lái)運(yùn)行 https://spring.io/guides/gs/spring-boot/ 會(huì)報(bào)出下面的錯(cuò)誤: 2016-01-28 11:35:42.034 INFO 3732 --- [ main] Applicati...
摘要:自動(dòng)配置會(huì)根據(jù)項(xiàng)目中的包依賴,自動(dòng)做出配置,支持的自動(dòng)配置如下非常多甚至包含了備注如果我們不需要自動(dòng)配置,想關(guān)閉某一項(xiàng)的自動(dòng)配置,該如何設(shè)置呢比如我們不想自動(dòng)配置,想手動(dòng)配置。 SpringBoot 入門(mén) 1、SpringBoot 入口類說(shuō)明 1.1注解說(shuō)明 showImg(https://segmentfault.com/img/bVbjvc9?w=707&h=232);@Sprin...
摘要:簡(jiǎn)介它的設(shè)計(jì)目的就是為例簡(jiǎn)化開(kāi)發(fā),開(kāi)啟了各種自動(dòng)裝配,你不想寫(xiě)各種配置文件,引入相關(guān)的依賴就能迅速搭建起一個(gè)工程。它采用的是建立生產(chǎn)就緒的應(yīng)用程序觀點(diǎn),優(yōu)先于配置的慣例。另,本系列教程全部用的作為開(kāi)發(fā)工具。 簡(jiǎn)介 spring boot 它的設(shè)計(jì)目的就是為例簡(jiǎn)化開(kāi)發(fā),開(kāi)啟了各種自動(dòng)裝配,你不想寫(xiě)各種配置文件,引入相關(guān)的依賴就能迅速搭建起一個(gè)web工程。它采用的是建立生產(chǎn)就緒的應(yīng)用程序觀...
摘要:基于,支持后面的版本二基本使用網(wǎng)頁(yè)生成訪問(wèn)生成項(xiàng)目并下載。這里的配置項(xiàng)可以自動(dòng)提示。數(shù)據(jù)配置文件配置四整合映射跟之前一樣注冊(cè)注冊(cè)攔截器五整合基本整合使用映射文件映射文件和注解同時(shí)存在注解引入配置文件增加事務(wù)六自動(dòng)配置自動(dòng)原理配置項(xiàng) 一、SpringBoot簡(jiǎn)介 1. 使用SSM開(kāi)發(fā)項(xiàng)目的時(shí)候有什么不足之處 創(chuàng)建ssm項(xiàng)目比較麻煩 配置比較麻煩 依賴的配置比較多比較麻煩 手動(dòng)集成第三方...
閱讀 680·2021-09-30 09:47
閱讀 2873·2021-09-04 16:40
閱讀 856·2019-08-30 13:18
閱讀 3452·2019-08-29 16:22
閱讀 1555·2019-08-29 12:36
閱讀 586·2019-08-29 11:11
閱讀 1478·2019-08-26 13:47
閱讀 1132·2019-08-26 13:32