国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專(zhuān)欄INFORMATION COLUMN

最渣的 Spring Boot 文章

yanest / 3605人閱讀

摘要:如刪除臨時(shí)文件,清除緩存信息,讀取配置文件信息,數(shù)據(jù)庫(kù)連接等。提供的接口也可以滿(mǎn)足該業(yè)務(wù)場(chǎng)景。不同點(diǎn)中方法的參數(shù)為,而接口中方法的參數(shù)為數(shù)組。

spring-boot-starter-parent

Maven的用戶(hù)可以通過(guò)繼承spring-boot-starter-parent項(xiàng)目來(lái)獲得一些合理的默認(rèn)配置。這個(gè)parent提供了以下特性:

默認(rèn)使用Java 8

使用UTF-8編碼

一個(gè)引用管理的功能,在dependencies里的部分配置可以不用填寫(xiě)version信息,這些version信息會(huì)從spring-boot-dependencies里得到繼承。

識(shí)別過(guò)來(lái)資源過(guò)濾(Sensible resource filtering.)

識(shí)別插件的配置(Sensible plugin configuration (exec plugin, surefire, Git commit ID, shade).)

能夠識(shí)別application.properties和application.yml類(lèi)型的文件,同時(shí)也能支持profile-specific類(lèi)型的文件(如: application-foo.properties and application-foo.yml,這個(gè)功能可以更好的配置不同生產(chǎn)環(huán)境下的配置文件)。

maven把默認(rèn)的占位符${…?}改為了@..@(這點(diǎn)大家還是看下原文自己理解下吧,我個(gè)人用的也比較少
since the default config files accept Spring style placeholders (${…?}) the Maven filtering is changed to use @..@ placeholders (you can override that with a Maven property resource.delimiter).)

starter

啟動(dòng)器包含一些相應(yīng)的依賴(lài)項(xiàng), 以及自動(dòng)配置等.

Auto-configuration

Spring Boot 支持基于Java的配置, 盡管可以將 SpringApplication 與 xml 一起使用, 但是還是建議使用 @Configuration.

可以通過(guò) @Import 注解導(dǎo)入其他配置類(lèi), 也可以通過(guò) @ImportResource 注解加載XML配置文件.

Spring Boot 自動(dòng)配置嘗試根據(jù)您添加的jar依賴(lài)項(xiàng)自動(dòng)配置Spring應(yīng)用程序. 例如, 如果項(xiàng)目中引入 HSQLDB jar, 并且沒(méi)有手動(dòng)配置任何數(shù)據(jù)庫(kù)連接的bean, 則Spring Boot會(huì)自動(dòng)配置內(nèi)存數(shù)據(jù)庫(kù).

您需要將 @EnableAutoConfiguration 或 @SpringBootApplication 其中一個(gè)注解添加到您的 @Configuration 類(lèi)中, 從而選擇進(jìn)入自動(dòng)配置.
禁用自動(dòng)配置
import org.springframework.boot.autoconfigure.*;
import org.springframework.boot.autoconfigure.jdbc.*;
import org.springframework.context.annotation.*;

@Configuration
@EnableAutoConfiguration(exclude={DataSourceAutoConfiguration.class})
public class MyConfiguration {
}

如果該類(lèi)不在classpath中, 你可以使用該注解的excludeName屬性, 并指定全限定名來(lái)達(dá)到相同效果. 最后, 你可以通過(guò) spring.autoconfigure.exclude 屬性 exclude 多個(gè)自動(dòng)配置項(xiàng)(一個(gè)自動(dòng)配置項(xiàng)集合)

@ComponentScan

SpringBoot在寫(xiě)啟動(dòng)類(lèi)的時(shí)候如果不使用 @ComponentScan 指明對(duì)象掃描范圍, 默認(rèn)指掃描當(dāng)前啟動(dòng)類(lèi)所在的包里的對(duì)象.

@SpringBootApplication
@Target(value=TYPE)
 @Retention(value=RUNTIME)
 @Documented
 @Inherited
 @SpringBootConfiguration
 @EnableAutoConfiguration
 @ComponentScan(excludeFilters={@ComponentScan.Filter(type=CUSTOM,classes=TypeExcludeFilter.class),})
public @interface SpringBootApplication

使用 @SpringBootApplication 注解相當(dāng)于使用了下面三個(gè)注解.

@EnableAutoConfiguration: 啟用 Spring Boot 的自動(dòng)配置.
@ComponentScan: 對(duì)應(yīng)用程序所在的包啟用 @Component 掃描.
@Configuration: 允許在上下文中注冊(cè)額外的bean或?qū)肫渌渲妙?lèi).

ApplicationRunner or CommandLineRunner 區(qū)別

應(yīng)用服務(wù)啟動(dòng)時(shí),加載一些數(shù)據(jù)和執(zhí)行一些應(yīng)用的初始化動(dòng)作。如:刪除臨時(shí)文件,清除緩存信息,讀取配置文件信息,數(shù)據(jù)庫(kù)連接等。

1、SpringBoot提供了CommandLineRunner接口。當(dāng)有該接口多個(gè)實(shí)現(xiàn)類(lèi)時(shí),提供了@order注解實(shí)現(xiàn)自定義執(zhí)行順序,也可以實(shí)現(xiàn)Ordered接口來(lái)自定義順序。

注意:數(shù)字越小,優(yōu)先級(jí)越高,也就是@Order(1)注解的類(lèi)會(huì)在@Order(2)注解的類(lèi)之前執(zhí)行。

import com.example.studySpringBoot.service.MyMethorClassService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.CommandLineRunner;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;

@Component
@Order(value=1)
public class SpringDataInit implements CommandLineRunner {

    @Autowired
    private MyMethorClassService myMethorClassService;

    @Override
    public void run(String... strings) throws Exception {
        int result = myMethorClassService.add(8, 56);
        System.out.println("----------SpringDataInit1---------"+result);
    }
}

2、SpringBoot提供的ApplicationRunner接口也可以滿(mǎn)足該業(yè)務(wù)場(chǎng)景。不同點(diǎn):ApplicationRunner中run方法的參數(shù)為ApplicationArguments,而CommandLineRunner接口中run方法的參數(shù)為String數(shù)組。想要更詳細(xì)地獲取命令行參數(shù),那就使用ApplicationRunner接口

import com.example.studySpringBoot.service.MyMethorClassService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner;
import org.springframework.core.Ordered;
import org.springframework.stereotype.Component;

@Component
public class SpringDataInit3 implements ApplicationRunner,Ordered {

    @Autowired
    private MyMethorClassService myMethorClassService;

    @Override
    public void run(ApplicationArguments applicationArguments) throws Exception {
        int result = myMethorClassService.add(10, 82);
        System.out.println("----------SpringDataInit3---------"+result);
    }

    @Override
    public int getOrder() {
        return 3;
    }
}
外部化配置

Spring Boot允許你外部化你的配置,這樣你就可以在不同的環(huán)境中使用相同的應(yīng)用程序代碼,你可以使用 properties 文件、YAML文件、環(huán)境變量和命令行參數(shù)來(lái)外部化配置,屬性值可以通過(guò)使用 @Value 注解直接注入到你的bean中,通過(guò)Spring的 Environment 抽象訪(fǎng)問(wèn),或者通過(guò) @ConfigurationProperties 綁定到結(jié)構(gòu)化對(duì)象。

@ConfigurationProperties("spring.datasource.username")

Spring Boot使用一種非常特殊的 PropertySource 命令, 該命令旨在允許對(duì)值進(jìn)行合理的覆蓋, 屬性按以下順序考慮:

Devtools全局設(shè)置屬性在你的主目錄( ~/.spring-boot-devtools.properties 當(dāng)devtools處于激活狀態(tài)時(shí)。

測(cè)試中的 @TestPropertySource 注解

測(cè)試中的 @SpringBootTest#properties 注解屬性

命令行參數(shù)

來(lái)自 SPRING_APPLICATION_JSON(嵌入在環(huán)境變量或系統(tǒng)屬性中的內(nèi)聯(lián)JSON)的屬性

ServletConfig 初始化參數(shù)

ServletContext 初始化參數(shù)

java:comp/env 中的JNDI屬性

Java系統(tǒng)屬性(System.getProperties()

操作系統(tǒng)環(huán)境變量

一個(gè)只有random.*屬性的RandomValuePropertySource

在你的jar包之外的特殊配置文件的應(yīng)用程序?qū)傩裕?b>application-{profile}.properties 和YAML 變體)

在jar中打包的特殊配置文件的應(yīng)用程序?qū)傩裕?b>application-{profile}.properties 和YAML 變體)

在你的jar包之外的應(yīng)用程序?qū)傩裕?b>application.properties 和YAML 變體)

打包在jar中的應(yīng)用程序?qū)傩裕?b>application.properties 和YAML 變體)

@PropertySource 注解在你的 @Configuration 類(lèi)上

默認(rèn)屬性(通過(guò)設(shè)置 SpringApplication.setDefaultProperties 指定)

訪(fǎng)問(wèn)命令行屬性

在默認(rèn)情況下, SpringApplication 會(huì)轉(zhuǎn)換任何命令行選項(xiàng)參數(shù) (也就是說(shuō),參數(shù)從 -- 開(kāi)始, 像 --server.port=9000) 到一個(gè) property, 并將它們添加到Spring Environment 中, 如前所述, 命令行屬性總是優(yōu)先于其他屬性源.

如果不希望將命令行屬性添加到 Environment 中, 你可以使用 SpringApplication.setAddCommandLineProperties(false) 禁用它們.

應(yīng)用程序?qū)傩晕募?/b>

SpringApplication 在以下位置從 application.properties 文件加載屬性并將它們添加到Spring Environment :

當(dāng)前目錄子目錄的 /config

當(dāng)前目錄

類(lèi)路徑下 /config

類(lèi)路徑的根目錄

列表按優(yōu)先順序排序(在列表中較高的位置定義的屬性覆蓋在較低位置定義的屬性).

特殊配置文件的屬性

我們可能在不同環(huán)境下使用不同的配置, 這些配置有可能是在同一個(gè)文件中或不同文件中.

1.在相同文件中

##################################### Determime which configuration be used
spring: 
      profiles: 
            active: "dev"
      # Mysql connection configuration(share)
      datasource: 
            platform: "mysql"
            driverClassName: "com.mysql.cj.jdbc.Driver"
            max-active: 50
            max-idle: 6
            min-idle: 2
            initial-size: 6
            
---
##################################### for dev environment
spring: 
      profiles: "dev"
      datasource: 
            # mysql connection user(dev)
            username: "root"
            # mysql connection password(dev)
            password: "r9DjsniiG;>7"
---
##################################### for product environment
spring: 
      profiles: "product"
      datasource: 
            # mysql connection user(product)
            username: "root"
            # mysql connection password(product)
            password: "root"
---
##################################### for test environment
spring: 
      profiles: "test"
      datasource: 
            # mysql connection user(test)
            username: "root"
            # mysql connection password(test)
            password: "root"

這樣在配置完相同屬性的時(shí), 還可以對(duì)不同的環(huán)境進(jìn)行不同的配置.

2.多個(gè)配置文件.

我們可以把特定環(huán)境的配置, 放入多個(gè)配置文件中, 但是要按照 application-{profile}.properties 格式. 如下圖.

spring.profiles.active 屬性進(jìn)行設(shè)置.

我們也可以把配置文件放在 jar 外面, 使用 spring.config.location 屬性進(jìn)行設(shè)置.

java -jar beetltest-0.0.1-SNAPSHOT.jar -spring.config.location=classpath:/application.properties

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/77445.html

相關(guān)文章

  • 渣的有贊面試經(jīng)歷(一)

    摘要:和的區(qū)別,本想問(wèn)下要不要深入的講下源碼級(jí)別,結(jié)果面試官說(shuō)不用了。來(lái)分鐘不到,就再次打電話(huà)過(guò)來(lái)約了明早上午點(diǎn)的視頻面試。 出去面試的話(huà)還是得好好準(zhǔn)備,不然會(huì)被虐的有點(diǎn)慘! 有贊(框架組) 四月份面試有贊的時(shí)候,自己還在實(shí)習(xí),所以也沒(méi)有復(fù)習(xí),是在 Boss 直聘上投的,當(dāng)時(shí)看到了有贊的 2018 屆春招,就投了下,然后不知道怎么就被推到了框架組,結(jié)果后面就感覺(jué)自己被虐的可慘了。 關(guān)注我 s...

    GraphQuery 評(píng)論0 收藏0
  • 記錄一次用echarts插件畫(huà)餅圖時(shí)遇到的問(wèn)題.

    摘要:近期在開(kāi)發(fā)中遇到一個(gè)問(wèn)題就是用插件畫(huà)餅圖時(shí)圖例是橫向排布的時(shí)候如果換行了如何讓圖例圖標(biāo)對(duì)齊由于網(wǎng)上關(guān)于這個(gè)的處理方案具體實(shí)現(xiàn)細(xì)節(jié)的解答比較少所以寫(xiě)出來(lái)問(wèn)題展示圖如下如圖所示第二行的圖例并沒(méi)有和第一行的圖例對(duì)齊這是因?yàn)椴寮趫D例橫向排列的時(shí)候 近期,在開(kāi)發(fā)中遇到一個(gè)問(wèn)題,就是用echarts插件畫(huà)餅圖時(shí),圖例是橫向排布的時(shí)候,如果換行了,如何讓圖例圖標(biāo)對(duì)齊?由于網(wǎng)上關(guān)于這個(gè)的處理方案具體...

    Galence 評(píng)論0 收藏0
  • 一個(gè)JAVA渣渣的校招成長(zhǎng)記,附BAT美團(tuán)網(wǎng)易等20家面經(jīng)總結(jié)

    摘要:作者重慶森林鏈接來(lái)源??途W(wǎng)整個(gè)三月份通過(guò)??途W(wǎng)和網(wǎng)友分享的經(jīng)驗(yàn)學(xué)到了很多東西,現(xiàn)在反饋一下我的面試經(jīng)歷,希望對(duì)同學(xué)們有幫助。個(gè)人情況大三本方向渣碩,經(jīng)過(guò)實(shí)驗(yàn)室學(xué)長(zhǎng)內(nèi)推,于三月底完成面試。校招是實(shí)力和運(yùn)氣的結(jié)合,缺一不可。 歡迎關(guān)注我的微信公眾號(hào):Java面試通關(guān)手冊(cè)(堅(jiān)持原創(chuàng),分享美文,分享各種Java學(xué)習(xí)資源,面試題,以及企業(yè)級(jí)Java實(shí)戰(zhàn)項(xiàng)目回復(fù)關(guān)鍵字免費(fèi)領(lǐng)?。簊howImg(h...

    mozillazg 評(píng)論0 收藏0
  • 吐血整理 20 道 Spring Boot 面試題,我經(jīng)常拿來(lái)面試別人!

    摘要:你如何理解中的可以理解為啟動(dòng)器,它包含了一系列可以集成到應(yīng)用里面的依賴(lài)包,你可以一站式集成及其他技術(shù),而不需要到處找示例代碼和依賴(lài)包。如你想使用訪(fǎng)問(wèn)數(shù)據(jù)庫(kù),只要加入啟動(dòng)器依賴(lài)就能使用了。 面試了一些人,簡(jiǎn)歷上都說(shuō)自己熟悉 Spring Boot, 或者說(shuō)正在學(xué)習(xí) Spring Boot,一問(wèn)他們時(shí),都只停留在簡(jiǎn)單的使用階段,很多東西都不清楚,也讓我對(duì)面試者大失所望。 下面,我給大家總結(jié)...

    haoguo 評(píng)論0 收藏0
  • Spring Boot 學(xué)習(xí)資料收集

    摘要:系列文章更新計(jì)劃列表主要對(duì)一些中常用的框架進(jìn)行簡(jiǎn)單的介紹及快速上手,外加相關(guān)資料的收集更新列表會(huì)不定期的加入新的內(nèi)容以進(jìn)行擴(kuò)充,如果你對(duì)此感興趣可以站內(nèi)聯(lián)系我。 導(dǎo)讀: 從第一次接觸Spring Boot 至今已經(jīng)有半年多了,在這期間也瀏覽了許多和Spring Boot 相關(guān)的書(shū)籍及文章,公司里面的許多項(xiàng)目也一直在使用Spring Boot。關(guān)于Spring Boot的一些看法:Spr...

    mmy123456 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

yanest

|高級(jí)講師

TA的文章

閱讀更多
最新活動(dòng)
閱讀需要支付1元查看
<