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

資訊專欄INFORMATION COLUMN

spring配置文件去除硬編碼

darkbaby123 / 768人閱讀

摘要:配置文件去除硬編碼大致有三種方式使用使用占位符使用表達(dá)式引入屬性文件注入,使用系列方法獲取屬性由于個(gè)人覺(jué)得占位符的方法是中的一種,所以只展示這一種引入屬性文件使用注入屬性相當(dāng)于注入值的,但是更為強(qiáng)大,還有其他用處占位符關(guān)于引用屬性文件使用

spring配置文件去除硬編碼 大致有三種方式

使用 org.springframework.core.env.Environment

使用占位符

使用 spring 表達(dá)式(SpEL)

application.properties
datasource.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=6000
Environment
@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

相關(guān)文章

  • Spring筆記02_注解_IOC

    摘要:約束的位置可以在約束的位置在中找到開(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...

    smartlion 評(píng)論0 收藏0
  • 如何使用Spring管理Filter和Servlet

    摘要:利用這種方式就將或者和業(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...

    amuqiao 評(píng)論0 收藏0
  • Mybatis【逆向工程,緩存,代理】知識(shí)要點(diǎn)

    摘要:一級(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)生成代碼 ...

    wanglu1209 評(píng)論0 收藏0
  • ZooKeeper做為應(yīng)用系統(tǒng)參數(shù)配置服務(wù)的實(shí)踐

    摘要:配置之痛與解決之道當(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ì)造成很大的困撓.一方面你不希望把敏感信息到處保存. 另...

    Gu_Yan 評(píng)論0 收藏0
  • Spring高級(jí)裝配之運(yùn)行時(shí)注入

    摘要:原文地址運(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)...

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

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

0條評(píng)論

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