摘要:配置文件去除硬編碼大致有三種方式使用使用占位符使用表達(dá)式引入屬性文件注入,使用系列方法獲取屬性由于個(gè)人覺(jué)得占位符的方法是中的一種,所以只展示這一種引入屬性文件使用注入屬性相當(dāng)于注入值的,但是更為強(qiáng)大,還有其他用處占位符關(guān)于引用屬性文件使用
spring配置文件去除硬編碼 大致有三種方式
使用 org.springframework.core.env.Environment
使用占位符
使用 spring 表達(dá)式(SpEL)
application.propertiesdatasource.url=jdbc:mysql://localhost:3306/spring_test?useUnicode=true&characterEncoding=utf-8 datasource.driverClassName=com.mysql.jdbc.Driver datasource.username=root datasource.password=123456 datasource.initialSize=5 datasource.maxActive=10 datasource.maxWait=6000Environment
@Configuration @PropertySource("classpath:application.properties") @EnableTransactionManagement public class DataConfig { @Autowired private Environment env; @Bean public DruidDataSource dataSource() { DruidDataSource ds = new DruidDataSource(); ds.setDriverClassName(env.getProperty("datasource.driverClassName")); ds.setUrl(env.getProperty("datasource.url")); ds.setUsername(env.getProperty("datasource.username")); ds.setPassword(env.getProperty("datasource.password")); ds.setInitialSize(5); ds.setMaxActive(10); ds.setMaxWait(60000); return ds; } ... }
@PropertySource 引入屬性文件
注入 Environment,使用 getProperty 系列方法獲取屬性
SpEL@Configuration @PropertySource("classpath:application.properties") @EnableTransactionManagement public class DataTestConfig { @Value("${datasource.driverClassName}") private String driverClassName; @Value("${datasource.url}") private String url; @Value("${datasource.username}") private String username; @Value("${datasource.password}") private String password; @Value("${datasource.initialSize}") private int initialSize; @Value("${datasource.maxActive}") private int maxActive; @Value("${datasource.maxWait}") private int maxWait; @Bean public DruidDataSource dataSource() { DruidDataSource ds = new DruidDataSource(); ds.setDriverClassName(driverClassName); ds.setUrl(url); ds.setUsername(username); ds.setPassword(password); ds.setInitialSize(initialSize); ds.setMaxActive(maxActive); ds.setMaxWait(maxWait); return ds; } ... }
由于個(gè)人覺(jué)得占位符的方法是SpEL中的一種,所以只展示這一種
@PropertySource 引入屬性文件
使用 @Value 注入屬性(相當(dāng)于注入值的 bean,但是 SpEL 更為強(qiáng)大,還有其他用處)
占位符 ${...}
關(guān)于引用屬性文件使用 @PropertySource 引入,如上
javaconfig,使用 PropertySourcesPlaceholderConfigurer 引入
@Bean public static PropertySourcesPlaceholderConfigurer placeholderConfigurer() { PropertySourcesPlaceholderConfigurer placeholderConfigurer = new PropertySourcesPlaceholderConfigurer(); placeholderConfigurer.setLocations(new ClassPathResource("application.properties")); return placeholderConfigurer; }
xml 方式(這個(gè)沒(méi)寫,其實(shí)就是將javaconfig轉(zhuǎn)換成xml配置即可)
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/67174.html
摘要:約束的位置可以在約束的位置在中找到開(kāi)啟注解掃描器在配置文件中開(kāi)啟注解掃描器開(kāi)啟注解掃描器包含自己以及自己下面的所有子包告知框架,在讀取配置文件,創(chuàng)建容器時(shí),依據(jù)注解創(chuàng)建對(duì)象,并存入容器中使用注解要?jiǎng)?chuàng)建對(duì)象,在類上使用注解。 1. Spring整合連接池 1.1 Spring整合C3P0 在工程中導(dǎo)入c3p0連接池需要的包c(diǎn)om.springsource.com.mchange.v2...
摘要:利用這種方式就將或者和業(yè)務(wù)對(duì)象的依賴關(guān)系用來(lái)進(jìn)行管理,并且不用在中硬編碼要引用的對(duì)象名字。配置的的配置完成。推薦使用,應(yīng)為配置上更簡(jiǎn)單。 在使用spring容器的web應(yīng)用中,業(yè)務(wù)對(duì)象間的依賴關(guān)系都可以用context.xml文件來(lái)配置,并且由spring容器來(lái)負(fù)責(zé)依賴對(duì)象 的創(chuàng)建。如果要在filter或者servlet中使用spring容器管理業(yè)務(wù)對(duì)象,通常需要使用WebApplic...
摘要:一級(jí)緩存值得注意的地方默認(rèn)就是支持一級(jí)緩存的,并不需要我們配置和整合后進(jìn)行代理開(kāi)發(fā),不支持一級(jí)緩存,和整合,按照的模板去生成代理對(duì)象,模板中在最后統(tǒng)一關(guān)閉。總結(jié)的一級(jí)緩存是級(jí)別的。 前言 本文主要講解Mybatis的以下知識(shí)點(diǎn): Mybatis緩存 一級(jí)緩存 二級(jí)緩存 與Ehcache整合 Mapper代理 使用Mapper代理就不用寫實(shí)現(xiàn)類了 逆向工程 自動(dòng)生成代碼 ...
摘要:配置之痛與解決之道當(dāng)有很多項(xiàng)目需要你來(lái)不停的向集成測(cè)試和生產(chǎn)環(huán)境發(fā)時(shí)配置文件的差異性會(huì)造成很大的困撓一方面你不希望把敏感信息到處保存另一方面會(huì)大量的地址信息需要配置每個(gè)引入的第三方都需要配置往往不同環(huán)境的還都不一樣一旦搞錯(cuò)了輕則項(xiàng)目起不來(lái) 配置之痛與解決之道 當(dāng)有很多項(xiàng)目需要你來(lái)不停的向集成,測(cè)試和生產(chǎn)環(huán)境發(fā)時(shí), 配置文件的差異性會(huì)造成很大的困撓.一方面你不希望把敏感信息到處保存. 另...
摘要:原文地址運(yùn)行時(shí)注入與硬編碼注入是相對(duì)的。硬編碼注入在編譯時(shí)就已經(jīng)確定了,運(yùn)行時(shí)注入則可能需要一些外部的參數(shù)來(lái)解決。提供的兩種在運(yùn)行時(shí)求值的方式屬性占位符表達(dá)式語(yǔ)言注入外部的值使用注解可以引入文件,使用其中的值。 原文地址:http://blog.gaoyuexiang.cn/Sp... 運(yùn)行時(shí)注入與硬編碼注入是相對(duì)的。硬編碼注入在編譯時(shí)就已經(jīng)確定了,運(yùn)行時(shí)注入則可能需要一些外部的參數(shù)來(lái)...
閱讀 2703·2021-11-25 09:43
閱讀 2085·2021-11-24 09:39
閱讀 1954·2021-11-17 09:33
閱讀 2750·2021-09-27 14:11
閱讀 1840·2019-08-30 15:54
閱讀 3224·2019-08-26 18:27
閱讀 1264·2019-08-23 18:00
閱讀 1810·2019-08-23 17:53