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

資訊專欄INFORMATION COLUMN

spring配置文件去除硬編碼

darkbaby123 / 784人閱讀

摘要:配置文件去除硬編碼大致有三種方式使用使用占位符使用表達(dá)式引入屬性文件注入,使用系列方法獲取屬性由于個(gè)人覺得占位符的方法是中的一種,所以只展示這一種引入屬性文件使用注入屬性相當(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è)人覺得占位符的方法是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è)沒寫,其實(shí)就是將javaconfig轉(zhuǎn)換成xml配置即可)

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/67174.html

相關(guān)文章

  • Spring筆記02_注解_IOC

    摘要:約束的位置可以在約束的位置在中找到開啟注解掃描器在配置文件中開啟注解掃描器開啟注解掃描器包含自己以及自己下面的所有子包告知框架,在讀取配置文件,創(chuàng)建容器時(shí),依據(jù)注解創(chuàng)建對象,并存入容器中使用注解要?jiǎng)?chuàng)建對象,在類上使用注解。 1. Spring整合連接池 1.1 Spring整合C3P0 在工程中導(dǎo)入c3p0連接池需要的包c(diǎn)om.springsource.com.mchange.v2...

    smartlion 評論0 收藏0
  • 如何使用Spring管理Filter和Servlet

    摘要:利用這種方式就將或者和業(yè)務(wù)對象的依賴關(guān)系用來進(jìn)行管理,并且不用在中硬編碼要引用的對象名字。配置的的配置完成。推薦使用,應(yīng)為配置上更簡單。 在使用spring容器的web應(yīng)用中,業(yè)務(wù)對象間的依賴關(guān)系都可以用context.xml文件來配置,并且由spring容器來負(fù)責(zé)依賴對象 的創(chuàng)建。如果要在filter或者servlet中使用spring容器管理業(yè)務(wù)對象,通常需要使用WebApplic...

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

    摘要:一級緩存值得注意的地方默認(rèn)就是支持一級緩存的,并不需要我們配置和整合后進(jìn)行代理開發(fā),不支持一級緩存,和整合,按照的模板去生成代理對象,模板中在最后統(tǒng)一關(guān)閉。總結(jié)的一級緩存是級別的。 前言 本文主要講解Mybatis的以下知識點(diǎn): Mybatis緩存 一級緩存 二級緩存 與Ehcache整合 Mapper代理 使用Mapper代理就不用寫實(shí)現(xiàn)類了 逆向工程 自動生成代碼 ...

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

    摘要:配置之痛與解決之道當(dāng)有很多項(xiàng)目需要你來不停的向集成測試和生產(chǎn)環(huán)境發(fā)時(shí)配置文件的差異性會造成很大的困撓一方面你不希望把敏感信息到處保存另一方面會大量的地址信息需要配置每個(gè)引入的第三方都需要配置往往不同環(huán)境的還都不一樣一旦搞錯(cuò)了輕則項(xiàng)目起不來 配置之痛與解決之道 當(dāng)有很多項(xiàng)目需要你來不停的向集成,測試和生產(chǎn)環(huán)境發(fā)時(shí), 配置文件的差異性會造成很大的困撓.一方面你不希望把敏感信息到處保存. 另...

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

    摘要:原文地址運(yùn)行時(shí)注入與硬編碼注入是相對的。硬編碼注入在編譯時(shí)就已經(jīng)確定了,運(yùn)行時(shí)注入則可能需要一些外部的參數(shù)來解決。提供的兩種在運(yùn)行時(shí)求值的方式屬性占位符表達(dá)式語言注入外部的值使用注解可以引入文件,使用其中的值。 原文地址:http://blog.gaoyuexiang.cn/Sp... 運(yùn)行時(shí)注入與硬編碼注入是相對的。硬編碼注入在編譯時(shí)就已經(jīng)確定了,運(yùn)行時(shí)注入則可能需要一些外部的參數(shù)來...

    ZweiZhao 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<