當前位置:首頁 » 數據倉庫 » 註解怎麼讀取配置文件中的內容
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

註解怎麼讀取配置文件中的內容

發布時間: 2023-01-13 09:38:49

⑴ 怎麼使用postconstruct註解讀取配置表

使用postconstruct註解讀取配置表方法如下。
1、通過PostConstruct註解能夠通過一種更友好的方式將配置進行讀取。
2、伺服器載入Servlet-servlet構造函數的載入。
3、創建service時發生的事件。
4、PostConstruct註解把config配置讀取到bean變成靜態方法。
5、註解配置從Spring開始就可以使用註解來配置依賴注入。

⑵ springmvc中如何從配置文件中讀取信息

1、第一步,先新建一個.properties文件,
app.properties裡面內容
admin=admin
test=test
2、第二步,新建一個xml文件,在applicationContext.xml,
<!-- 用來解析Java Properties屬性文件值(注意class指定的類)-->
<bean id="placeholderConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>classpath:app.properties</value>
</list>
</property>
</bean>
<!-- 把properties裡面的信息讀進來: -->

<bean id="report" class="java.lang.String">
<constructor-arg value="${admin}"/>
</bean>

⑶ @Scheled註解中的值從配置文件中讀取

2020-03-04

1.例如:@Scheled(cron = ("${0/6 * * * * ?}"))corn表達式從配置文件中讀取

解決方法:

         @PropertySource("classpath:properties/config.properties")

        public class TaskController {

        //使spring能夠識別 ${cron}

        //@Scheled(cron = "0/5 * * * * ?")

            @Scheled(cron ="${cron}")

            public void testTask(){

            System.out.println("設置的每6s執行一次。。。。。。。。");

                }

            }

cron=0/6 * * * * ?

⑷ 如何在spring中讀取properties配置文件裡面的信息

一個系統中通常會存在如下一些以Properties形式存在的配置文件
1.資料庫配置文件demo-db.properties:

2.消息服務配置文件demo-mq.properties:

3.遠程調用的配置文件demo-remote.properties:

一、系統中需要載入多個Properties配置文件
應用場景:Properties配置文件不止一個,需要在系統啟動時同時載入多個Properties文件。
配置方式:
<!-- 將多個配置文件讀取到容器中,交給Spring管理 -->
我們也可以將配置中的List抽取出來:
<!-- 將多個配置文件位置放到列表中 -->

<!-- 將配置文件讀取到容器中,交給Spring管理 -->

二、整合多工程下的多個分散的Properties
應用場景:工程組中有多個配置文件,但是這些配置文件在多個地方使用,所以需要分別載入。

注意:其中order屬性代表其載入順序,而為是否忽略不可解析的 Placeholder,如配置了多個PropertyPlaceholderConfigurer,則需設置為true。這里一定需要按照這種方式設置這兩個參數。

三、Bean中直接注入Properties配置文件中的值
應用場景:Bean中需要直接注入Properties配置文件中的值 。例如下面的代碼中需要獲取上述demo-remote.properties中的值:

<!-- 這種載入方式可以在代碼中通過@Value註解進行注入,
可以將配置整體賦給Properties類型的類變數,也可以取出其中的一項賦值給String類型的類變數 -->
<!-- <util:properties/> 標簽只能載入一個文件,當多個屬性文件需要被載入的時候,可以使用多個該標簽 -->

<!-- <util:properties/> 標簽的實現類是PropertiesFactoryBean,
直接使用該類的bean配置,設置其locations屬性可以達到一個和上面一樣載入多個配置文件的目的 -->
Client類中使用Annotation如下:

四、Bean中存在Properties類型的類變數
應用場景:當Bean中存在Properties類型的類變數需要以注入的方式初始化
1. 配置方式:我們可以用(三)中的配置方式,只是代碼中註解修改如下

2. 配置方式:也可以使用xml中聲明Bean並且注入

<!-- 可以使用如下的方式聲明Properties類型的FactoryBean來載入配置文件,這種方式就只能當做Properties屬性注入,而不能獲其中具體的值 -->
<!-- 遠端調用客戶端類 -->
上述的各個場景在項目群中特別有用,需要靈活的使用上述各種配置方式。
http://blog.sina.com.cn/s/blog_6940cab30101evjf.html

⑸ SpringBoot有幾種讀取配置的方式

常見的讀取配置的方式有三種:

第一、@Value註解,比較常用的一種方式。也支持與@propertySource註解何用,指定使用的配置文件

第二、@Configuration註解,讀取配置到類中,批量注入配置屬性

第三、Environment對象,獲取配置文件中所有的屬性的對象

如果你想掌握時下熱門微服務技術棧,跟上時代技術步伐,就去黑馬程序員官網視頻庫看免費視頻。

⑹ php的類怎麼讀取到配置文件裡面的配置項

1、新建一個PHP文檔,該文檔的目的是檢測PHP的環境配置,示例:<?php phpinfo()。

⑺ SpringBoot 如何優雅讀取配置文件10分鍾教你搞定

很多時候我們需要將一些常用的配置信息比如阿里雲 oss 配置、發送簡訊的相關信息配置等等放到配置文件中。

下面我們來看一下 Spring 為我們提供了哪些方式幫助我們從配置文件中讀取這些配置信息。

application.yml 內容如下:

wuhan2020: 2020年初武漢爆發了新型冠狀病毒,疫情嚴重,但是,我相信一切都會過去!武漢加油!中國加油!my-profile:name: Guide哥email: [email protected]:location: 湖北武漢加油中國加油books:    -name: 天才基本法description: 二十二歲的林朝夕在父親確診阿爾茨海默病這天,得知自己暗戀多年的校園男神裴之即將出國深造的消息——對方考取的學校,恰是父親當年為她放棄的那所。    -name: 時間的秩序description: 為什麼我們記得過去,而非未來?時間「流逝」意味著什麼?是我們存在於時間之內,還是時間存在於我們之中?卡洛·羅韋利用詩意的文字,邀請我們思考這一亘古難題——時間的本質。    -name: 了不起的我description: 如何養成一個新習慣?如何讓心智變得更成熟?如何擁有高質量的關系? 如何走出人生的艱難時刻?

1.通過 @value 讀取比較簡單的配置信息

使用 @Value("${property}") 讀取比較簡單的配置信息:

@Value("${wuhan2020}")String wuhan2020;

需要注意的是 @value這種方式是不被推薦的,Spring 比較建議的是下面幾種讀取配置信息的方式。

2.通過@ConfigurationProperties讀取並與 bean 綁定

LibraryProperties 類上加了 @Component 註解,我們可以像使用普通 bean 一樣將其注入到類中使用。

importlombok.Getter;importlombok.Setter;importlombok.ToString;importorg.springframework.boot.context.properties.ConfigurationProperties;importorg.springframework.context.annotation.Configuration;importorg.springframework.stereotype.Component;importjava.util.List;@Component@ConfigurationProperties(prefix ="library")@Setter@Getter@{privateString location;privateList books;@Setter@Getter@ToStringstaticclassBook{        String name;        String description;    }}

這個時候你就可以像使用普通 bean 一樣,將其注入到類中使用:

packagecn.javaguide.readconfigproperties;importorg.springframework.beans.factory.InitializingBean;importorg.springframework.boot.SpringApplication;importorg.springframework.boot.autoconfigure.SpringBootApplication;/** *@authorshuang.kou */@ntsInitializingBean{privatefinalLibraryProperties library;(LibraryProperties library){this.library = library;    }publicstaticvoidmain(String[] args){        SpringApplication.run(.class,args);    }@(){        System.out.println(library.getLocation());        System.out.println(library.getBooks());    }}

控制台輸出:

湖北武漢加油中國加油[LibraryProperties.Book(name=天才基本法, description........]

3.通過@ConfigurationProperties讀取並校驗

我們先將application.yml修改為如下內容,明顯看出這不是一個正確的 email 格式:

my-profile:name: Guide哥email: koushuangbwcx@

ProfileProperties 類沒有加 @Component 註解。我們在我們要使用ProfileProperties 的地方使用@

EnableConfigurationProperties注冊我們的配置 bean:

importlombok.Getter;importlombok.Setter;importlombok.ToString;importorg.springframework.boot.context.properties.ConfigurationProperties;importorg.springframework.stereotype.Component;importorg.springframework.validation.annotation.Validated;importjavax.validation.constraints.Email;importjavax.validation.constraints.NotEmpty;/***@authorshuang.kou*/@Getter@Setter@ToString@ConfigurationProperties("my-profile")@{@NotEmptyprivateString name;@Email@NotEmptyprivateString email;//配置文件中沒有讀取到的話就用默認值privateBooleanhandsome =Boolean.TRUE;}

具體使用:

packagecn.javaguide.readconfigproperties;importorg.springframework.beans.factory.InitializingBean;importorg.springframework.beans.factory.annotation.Value;importorg.springframework.boot.SpringApplication;importorg.springframework.boot.autoconfigure.SpringBootApplication;importorg.springframework.boot.context.properties.EnableConfigurationProperties;/** *@authorshuang.kou */@SpringBootApplication@EnableConfigurationProperties(ProfileProperties.class){privatefinalProfileProperties profileProperties;(ProfileProperties profileProperties){this.profileProperties = profileProperties;    }publicstaticvoidmain(String[] args){        SpringApplication.run(.class,args);    }@(){        System.out.println(profileProperties.toString());    }}

因為我們的郵箱格式不正確,所以程序運行的時候就報錯,根本運行不起來,保證了數據類型的安全性:

Binding to target org.springframework.boot.context.properties.bind.BindException:Failedtobindpropertiesunder'my-profile'to cn.javaguide.readconfigproperties.ProfileProperties failed:Property:my-profile.emailValue:koushuangbwcx@Origin:classpathresource[application.yml]:5:10Reason:mustbeawell-formedemailaddress

我們把郵箱測試改為正確的之後再運行,控制台就能成功列印出讀取到的信息:

ProfileProperties(name=Guide哥, [email protected], handsome=true)

4.@PropertySource讀取指定 properties 文件

importlombok.Getter;importlombok.Setter;importorg.springframework.beans.factory.annotation.Value;importorg.springframework.context.annotation.PropertySource;importorg.springframework.stereotype.Component;@Component@PropertySource("classpath:website.properties")@Getter@SetterclassWebSite{@Value("${url}")privateString url;}

使用:

@Autowiredprivate WebSite webSite;System.out.println(webSite.getUrl());//https://javaguide.cn/

5.題外話:Spring 載入配置文件的優先順序

Spring 讀取配置文件也是有優先順序的,直接上圖:

原文鏈接:https://www.toutiao.com/a6791445278911103500/?log_from=7f5fb8f9b4b47_1640606437752

⑻ 用java 如何讀取配置文件(如:資源文件)中配

java讀取配置文件的幾種方法如下:
方式一:採用ServletContext讀取,讀取配置文件的realpath,然後通過文件流讀取出來。因為是用ServletContext讀取文件路徑,所以配置文件可以放入在web-info的classes目錄中,也可以在應用層級及web-info的目錄中。文件存放位置具體在eclipse工程中的表現是:可以放在src下面,也可放在web-info及webroot下面等。因為是讀取出路徑後,用文件流進行讀取的,所以可以讀取任意的配置文件包括xml和properties。缺點:不能在servlet外面應用讀取配置信息。
方式二:採用ResourceBundle類讀取配置信息,
優點是:可以以完全限定類名的方式載入資源後,直接的讀取出來,且可以在非Web應用中讀取資源文件。缺點:只能載入類classes下面的資源文件且只能讀取.properties文件。
方式三:採用ClassLoader方式進行讀取配置信息
優點是:可以在非Web應用中讀取配置資源信息,可以讀取任意的資源文件信息
缺點:只能載入類classes下面的資源文件。
方法4 getResouceAsStream
XmlParserHandler.class.getResourceAsStream 與classloader不同

使用的是當前類的相對路徑

⑼ 如何通過註解@Value 讀取配置文件中的內

首先在spring的核心配置文件中載入 參數配置文件
然後
@Value("${xxx}")
private String xxx