电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

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

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

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

一、使用注解@PropertySource

指定路徑

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

屬性賦值

可以用注解 @Value 對屬性直接賦值、${}獲取配置文件的值、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(); }

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

標(biāo)簽: Spring
相關(guān)文章:
主站蜘蛛池模板: 超声波破碎仪-均质乳化机(供应杭州,上海,北京,广州,深圳,成都等地)-上海沪析实业有限公司 | 多米诺-多米诺世界纪录团队-多米诺世界-多米诺团队培训-多米诺公关活动-多米诺创意广告-多米诺大型表演-多米诺专业赛事 | 运动木地板价格,篮球馆体育运动木地板生产厂家_欧氏地板 | 不锈钢螺丝 - 六角螺丝厂家 - 不锈钢紧固件 - 万千紧固件--紧固件一站式采购 | 粒米特测控技术(上海)有限公司-测功机_减速机测试台_电机测试台 | 砂石生产线_石料生产线设备_制砂生产线设备价格_生产厂家-河南中誉鼎力智能装备有限公司 | 青岛侦探_青岛侦探事务所_青岛劝退小三_青岛婚外情取证-青岛王军侦探事务所 | 模具硅橡胶,人体硅胶,移印硅胶浆厂家-宏图硅胶科技 | 深圳装修_店面装修设计_餐厅设计_装修全包价格-尚泰装饰设计 | 高效复合碳源-多核碳源生产厂家-污水处理反硝化菌种一长隆科技库巴鲁 | 智能型高压核相仪-自动开口闪点测试仪-QJ41A电雷管测试仪|上海妙定 | POS机办理_个人POS机免费领取 - 银联POS机申请首页 | 学考网学历中心| 快速卷帘门_硬质快速卷帘门-西朗门业 | 奥运星-汽车性能网评-提供个性化汽车资讯| 昆明网络公司|云南网络公司|昆明网站建设公司|昆明网页设计|云南网站制作|新媒体运营公司|APP开发|小程序研发|尽在昆明奥远科技有限公司 | 胜为光纤光缆_光纤跳线_单模尾纤_光纤收发器_ODF光纤配线架厂家直销_北京睿创胜为科技有限公司 - 北京睿创胜为科技有限公司 | 神马影院-实时更新秒播 | 沈阳楼承板_彩钢板_压型钢板厂家-辽宁中盛绿建钢品股份有限公司 轴承振动测量仪电箱-轴承测振动仪器-测试仪厂家-杭州居易电气 | 金属软管_不锈钢金属软管_巩义市润达管道设备制造有限公司 | 化工ERP软件_化工新材料ERP系统_化工新材料MES软件_MES系统-广东顺景软件科技有限公司 | 招商帮-一站式网络营销服务|搜索营销推广|信息流推广|短视视频营销推广|互联网整合营销|网络推广代运营|招商帮企业招商好帮手 | 安徽净化板_合肥岩棉板厂家_玻镁板厂家_安徽科艺美洁净科技有限公司 | 五轴加工中心_数控加工中心_铝型材加工中心-罗威斯 | 东莞动力锂电池保护板_BMS智能软件保护板_锂电池主动均衡保护板-东莞市倡芯电子科技有限公司 | 中国品牌门窗网_中国十大门窗品牌_著名门窗品牌 | 特种阀门-调节阀门-高温熔盐阀-镍合金截止阀-钛阀门-高温阀门-高性能蝶阀-蒙乃尔合金阀门-福建捷斯特阀门制造有限公司 | 注塑模具_塑料模具_塑胶模具_范仕达【官网】_东莞模具设计与制造加工厂家 | 蓄电池在线监测系统|SF6在线监控泄露报警系统-武汉中电通电力设备有限公司 | 股票入门基础知识_股票知识_股票投资大师_格雷厄姆网 | 威客电竞(vk·game)·电子竞技赛事官网 | 量子管通环-自清洗过滤器-全自动反冲洗过滤器-沼河浸过滤器 | 免费B2B信息推广发布平台 - 推发网 | 楼承板-开口楼承板-闭口楼承板-无锡海逵| 纳米涂料品牌 防雾抗污纳米陶瓷涂料厂家_虹瓷科技 | 检验科改造施工_DSA手术室净化_导管室装修_成都特殊科室建设厂家_医疗净化工程公司_四川华锐 | 找果网 | 苹果手机找回方法,苹果iPhone手机丢了找回,认准找果网! | 西门子伺服控制器维修-伺服驱动放大器-828D数控机床维修-上海涌迪 | 翰墨AI智能写作助手官网_人工智能问答在线AI写作免费一键生成 | 呼末二氧化碳|ETCO2模块采样管_气体干燥管_气体过滤器-湖南纳雄医疗器械有限公司 | 阿尔法-MDR2000无转子硫化仪-STM566 SATRA拉力试验机-青岛阿尔法仪器有限公司 |