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

資訊專欄INFORMATION COLUMN

@Profile 條件化 bean

Hwg / 2224人閱讀

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

@Profile 條件化 bean
使用 Profile 的例子:開發環境使用 H2 數據庫,線上環境使用 MySql 數據庫
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
數據庫配置文件
@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 的初始化參數;

作為 Web 應用的上下文參數;

作為 JNDI 條目;

作為環境變量;

作為 JVM 的系統屬性;

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

該例子說明

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

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

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

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/67172.html

相關文章

  • Spring - 高級裝配

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

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

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

    shusen 評論0 收藏0
  • 看起來很長但還是有用的Spring學習筆記

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

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

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

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

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

    CocoaChina 評論0 收藏0

發表評論

0條評論

Hwg

|高級講師

TA的文章

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