国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

Spring基于注解讀取外部配置文件

瀏覽:76日期:2023-07-29 14:25:30

一、使用注解@PropertySource

指定路徑

使用 @PropertySource 指定配置文件路徑,支持 properties 和 XML 的配置文件,但不支持 yml。

屬性賦值

可以用注解 @Value 對(duì)屬性直接賦值、${}獲取配置文件的值、SPEL表達(dá)式#{}。

直接賦值:@Value('name jack') 讀取配置文件:@Value('${user.age}') 指定默認(rèn)值:@Value('${user.desc:default desc}') 表示如果沒有user.desc的配置,則賦值為default desc SPEL表達(dá)式:@Value('#{’${user.username}’?.toUpperCase()}') 表示將從配置文件讀取的值轉(zhuǎn)為大寫,?可以不填,表示如果沒有user.username的配置,則忽略

例子

config.properties內(nèi)容

ps.datasource.driverClassName=com.mysql.jdbc.Driverps.datasource.jdbcUrl=jdbc:mysql://localhost:3306/spring?useTimezone=true&serverTimezone=GMT%2B8&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true&useUnicode=true&characterEncoding=utf-8&tcpRcvBuf=1024000&useOldAliasMetadataBehavior=true&useSSL=false&rewriteBatchedStatements=true&useAffectedRows=trueps.datasource.username=rootps.datasource.password=rootps.datasource.minIdle=1ps.datasource.maxPoolSize=10ps.datasource.connectionTimeout=3000ps.datasource.idleTimeout=300000

配置類

/** * 使用@PropertySource指定具體的配置文件,用@Value設(shè)置具體的屬性值, 不支持yml */@Component@PropertySource('classpath:config.properties')public class DbProperties { @Value('${ps.datasource.driverClassName}') private String driverClassName; @Value('${ps.datasource.jdbcUrl}') private String jdbcUrl; @Value('${ps.datasource.username}') private String username; @Value('${ps.datasource.password}') private String password; @Value('${ps.datasource.minIdle}') private int minIdle; @Value('${ps.datasource.maxPoolSize}') private int maxPoolSize; @Value('${ps.datasource.connectionTimeout}') private int connectionTimeout; @Value('${ps.datasource.idleTimeout}') private int idleTimeout; public String getDriverClassName() { return driverClassName; } public void setDriverClassName(String driverClassName) { this.driverClassName = driverClassName; } public String getJdbcUrl() { return jdbcUrl; } public void setJdbcUrl(String jdbcUrl) { this.jdbcUrl = jdbcUrl; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public int getMinIdle() { return minIdle; } public void setMinIdle(int minIdle) { this.minIdle = minIdle; } public int getMaxPoolSize() { return maxPoolSize; } public void setMaxPoolSize(int maxPoolSize) { this.maxPoolSize = maxPoolSize; } public int getConnectionTimeout() { return connectionTimeout; } public void setConnectionTimeout(int connectionTimeout) { this.connectionTimeout = connectionTimeout; } public int getIdleTimeout() { return idleTimeout; } public void setIdleTimeout(int idleTimeout) { this.idleTimeout = idleTimeout; } @Override public String toString() { return 'DbProperties{' +'driverClassName=’' + driverClassName + ’’’ +', jdbcUrl=’' + jdbcUrl + ’’’ +', username=’' + username + ’’’ +', password=’' + password + ’’’ +', minIdle=' + minIdle +', maxPoolSize=' + maxPoolSize +', connectionTimeout=' + connectionTimeout +', idleTimeout=' + idleTimeout +’}’; }}

二、使用Environment

/** * Environment可以獲取classpath下配置的屬性值,無需指定具體的配置文件。 不支持yml */@Componentpublic class UserProperties { @Autowired private Environment env; public String getUserName() { return env.getProperty('user.name'); } public String getPassword() { return env.getProperty('user.password'); }}

三、使用PropertiesLoaderUtils

try { Properties properties = PropertiesLoaderUtils.loadAllProperties('config.properties'); System.out.println(properties.getProperty('user.name')); } catch (IOException e) { e.printStackTrace(); }

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Spring
相關(guān)文章:
主站蜘蛛池模板: 绥化市| 汝阳县| 灵丘县| 蒙山县| 织金县| 尼木县| 赤城县| 巴马| 林芝县| 黄山市| 即墨市| 乌恰县| 峡江县| 武威市| 鄯善县| 绥滨县| 曲松县| 荣昌县| 望都县| 台东县| 金溪县| 临朐县| 琼结县| 柯坪县| 阿拉尔市| 云龙县| 磴口县| 庄河市| 黎城县| 天柱县| 肥东县| 阿城市| 仁怀市| 安徽省| 安国市| 武穴市| 南投县| 宁晋县| 龙泉市| 库伦旗| 湖口县|