成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

@Profile 條件化 bean

Hwg / 2233人閱讀

摘要:條件化使用的例子開發(fā)環(huán)境使用數(shù)據(jù)庫,線上環(huán)境使用數(shù)據(jù)庫數(shù)據(jù)庫配置文件說明可以用來條件化,使用注解即可配置也行激活機制有時,激活標記的沒有則激活標記的都沒有,則只激活沒有限定的激活方式有六種作為的初始化參數(shù)作為應(yīng)用的上下文參數(shù)作為條目作為

@Profile 條件化 bean
使用 Profile 的例子:開發(fā)環(huán)境使用 H2 數(shù)據(jù)庫,線上環(huán)境使用 MySql 數(shù)據(jù)庫
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

spring.profiles.active=prod
spring.profiles.default=dev
數(shù)據(jù)庫配置文件
@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
    @Profile("prod")
    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;
    }

    @Bean
    @Profile("dev")
    public DataSource embeddedDataSource() {
        return new EmbeddedDatabaseBuilder()
                .setType(EmbeddedDatabaseType.H2)
                .addScript("classpath:schema.sql")
                .addScript("classpath:test-data.sql")
                .build();
    }

    @Bean
    public LocalSessionFactoryBean sessionFactory(DataSource dataSource){
        LocalSessionFactoryBean sfb = new LocalSessionFactoryBean();
        sfb.setDataSource(dataSource);
        sfb.setPackagesToScan(new String[] { "com.seal_de.domain" });
        Properties props = new Properties();
        props.setProperty("hibernate.dialect", "org.hibernate.dialect.MySQLDialect");
        props.setProperty("hibernate.show_sql", "true");
        sfb.setHibernateProperties(props);
        return sfb;
    }

    @Bean
    @Autowired
    public HibernateTransactionManager transactionManager(SessionFactory sessionFactory) {
        HibernateTransactionManager transactionManager = new HibernateTransactionManager();
        transactionManager.setSessionFactory(sessionFactory);
        return transactionManager;
    }
}
profile 說明

profile 可以用來條件化 bean,使用 @Profile 注解即可(xml 配置也行)

profile 激活機制:有 spring.profiles.active 時,激活 active 標記的;沒有則激活 spring.profiles.default 標記的;都沒有,則只激活沒有 profile 限定的

激活方式有六種:

作為 DispatcherServlet 的初始化參數(shù);

作為 Web 應(yīng)用的上下文參數(shù);

作為 JNDI 條目;

作為環(huán)境變量;

作為 JVM 的系統(tǒng)屬性;

在集成測試類上,使用 @ActiveProfiles 注解設(shè)置

該例子說明

當屬性文件包含 spring.profiles.active=prod 和spring.profiles.default=dev 時,使用的是 MySql 的數(shù)據(jù)源

當屬性文件只有 spring.profiles.default=dev 時,使用的是 H2 的數(shù)據(jù)源

@Condition 注解是更通用的條件化 bean 的注解

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

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/67172.html

相關(guān)文章

  • Spring - 高級裝配

    摘要:高級裝配條件化的自動裝配與歧義性的作用域表達式語言環(huán)境與可以為不同的環(huán)境提供不同的數(shù)據(jù)庫配置加密算法等注解可以在類級別和方法級別,沒有指定的始終都會被創(chuàng)建的方式配置不同環(huán)境所需要的數(shù)據(jù)庫配置會搭建一個嵌入式的數(shù)據(jù)庫模式定義在測試數(shù)據(jù)通過加 高級裝配 Spring profile 條件化的bean 自動裝配與歧義性 bean的作用域 Spring表達式語言 環(huán)境與profile p...

    binta 評論0 收藏0
  • spring入門指南

    摘要:裝配提供了三種裝配機制在中進行顯示配置在中進行顯示配置隱式的發(fā)現(xiàn)機制和自動裝配機制。表示該類是一個組件,將自動創(chuàng)建該組件實例,表示注入組件實例,和功能類似,和功能類似,但和是規(guī)范中提供的注解。 基本原理 spring的基礎(chǔ)是IOC和DI,其實IOC和DI是對同一件事從不同的方面進行描述的,兩者在spring中是同一件事務(wù)。 IOC:控制反轉(zhuǎn),在這里就是指創(chuàng)建bean的主動權(quán)發(fā)生了轉(zhuǎn)移,...

    shusen 評論0 收藏0
  • 看起來很長但還是有用的Spring學(xué)習(xí)筆記

    摘要:關(guān)于依賴注入注入的注解提供的注解不僅僅是對象,還有在構(gòu)造器上,還能用在屬性的方法上。與之相反,的限定符能夠在所有可選的上進行縮小范圍的操作,最終能夠達到只有一個滿足所規(guī)定的限制條件。注解是使用限定符的主要方式。 本文首發(fā)于泊浮目的專欄:https://segmentfault.com/blog... Spring致力于提供一種方法管理你的業(yè)務(wù)對象。在大量Java EE的應(yīng)用中,隨處可...

    DTeam 評論0 收藏0
  • 第三章 高級裝配

    摘要:注解只可以裝配只有一個實現(xiàn)類的例如下面的有三個實現(xiàn)類,自動裝配時,就會不知道選哪一個,因而會報錯誤。使用表達式語言進行裝配使用的來引用待補充實例調(diào)用方法和訪問對象的屬性對峙進行算數(shù),關(guān)系和邏輯運算正則表達式匹配集合操作 完整代碼請見:https://github.com/codercuixi... 第一部分 @Profile注解的使用 環(huán)境與profile 是否啟用某個bean,常用于...

    only_do 評論0 收藏0
  • Spring注解專題系列

    摘要:用法先創(chuàng)建個組件,,,分別在類上加上注解。發(fā)現(xiàn)有一個屬性源碼注釋這樣說的自動檢測使用組件。在的方法中,表示不匹配,代表匹配。這就說明使用注冊組件有種方式。 Spring注解應(yīng)用篇--IOC容器Bean組件注冊 這是Spring注解專題系類文章,本系類文章適合Spring入門者或者原理入門者,小編會在本系類文章下進行企業(yè)級應(yīng)用實戰(zhàn)講解以及spring源碼跟進。 環(huán)境準備 編譯器IDEA...

    CocoaChina 評論0 收藏0

發(fā)表評論

0條評論

Hwg

|高級講師

TA的文章

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