統合されたMyBatisの(6)

総合的なコンフィギュレーション設定クラス:

パッケージcom.ssm.chapter22.config。

輸入java.util.Properties;

インポートするjavax.sql.DataSource;

輸入org.apache.commons.dbcp.BasicDataSourceFactory。
輸入org.mybatis.spring.SqlSessionFactoryBean;
輸入org.mybatis.spring.mapper.MapperScannerConfigurer;
輸入org.springframework.context.annotation.Bean;
輸入org.springframework.context.annotation.ComponentScan;
輸入org.springframework.context.annotation.ComponentScan.Filter;
輸入org.springframework.context.annotation.Configuration。
輸入org.springframework.context.annotation.FilterType。
輸入org.springframework.core.io.ClassPathResource。
輸入org.springframework.core.io.Resource。
インポートorg.springframework.jdbc.datasource.DataSourceTransactionManager;
輸入org.springframework.stereotype.Repository。
輸入org.springframework.stereotype.Service。
輸入org.springframework.transaction.PlatformTransactionManager;
輸入org.springframework.transaction.annotation.EnableTransactionManagement;
輸入org.springframework.transaction.annotation.TransactionManagementConfigurer;

@Configuration
// スプリングパケットスキャンの定義 
@ComponentScan(値= "COM。*"、IncludeFilters @Filter = {(= FilterType.ANNOTATIONタイプ、値= { -サービス。クラス})})
 // トランザクション駆動マネージャ使用
@EnableTransactionManagementを 
 / / 実装TransactionManagementConfigurer、注釈がそのように構成されてもよいそのドライブトランザクション
パブリック クラス RootConfig 実装TransactionManagementConfigurer {
     プライベートデータソースのdataSource = NULL ;
    
    / **
     *構成データベース
     * @Return データベース接続プール
      * / 
    @Bean(名前 = "データソース" 公共データソースinitDataSource(){
         IF(!のdataSource = ヌル){
             返すDataSourceを。
        }
        プロパティの小道具 = 新しいプロパティ();
        props.setProperty( "driverClassName"、 "com.mysql.cj.jdbc.Driver" );
        props.setProperty( "URL"、 "JDBCます。mysql:// localhostを:?3306 / SSM useUnicode =真&characterEncoding = UTF8&serverTimezone = GMT%2B8&useSslオプション=偽&allowMultiQueries =真&allowPublicKeyRetrieval =真" );
        props.setProperty( "userNameに"、 "ルート" );
        props.setProperty( "パスワード"、 "123456abc" );
        props.setProperty( "MAXACTIVE"、 "20" )。
        props.setProperty( "maxIdle"、 "20" )。
        props.setProperty( "MAXWAIT"、 "30000" )。
        してみてください{
            データソース = BasicDataSourceFactory.createDataSource(小道具)。
        } キャッチ(例外e){
            e.printStackTrace();
        }
        返すデータソースを。
    }
    / **
     *設定SqlSessionFactoryBean
     * @return SqlSessionFactoryBean
      * / 
    @Bean(名 = "sqlSessionFactory" 公衆SqlSessionFactoryBean initSqlSessionFactory(){
        SqlSessionFactoryBean sqlSessionFactory = 新しいSqlSessionFactoryBean();
        sqlSessionFactory.setDataSource(initDataSource())。
        // 設定ファイルは、MyBatisの 
        リソースリソース= 新しい新 A ClassPathResource( "MyBatisの/ MyBatisの-config.xmlが" );
        sqlSessionFactory.setConfigLocation(リソース);
        返すsqlSessionFactoryを。
    }
    / **
     *自動的にスキャンすることで、MyBatisのマッパーのインターフェイスを見つけます
     * @Return マッパースキャナ
      * /
    @豆
    公共MapperScannerConfigurer initMapperScannerConfigurer(){
        MapperScannerConfigurer MSC = 新しいMapperScannerConfigurer();
        msc.setBasePackage( "COM *。" );
        msc.setSqlSessionFactoryBeanName( "sqlSessionFactory" );
        msc.setAnnotationClass(リポジトリ。クラス)。
        リターンMSC;
    }
    
    / **
     *データベーストランザクションを生成するために使用されるインタフェースメソッド、登録注釈業務を実装@Transactional
     * / 
    @Bean(名 = "annotationDrivenTransactionManager" 公衆PlatformTransactionManager annotationDrivenTransactionManager(){
         // TODO自動生成方法スタブ 
        DataSourceTransactionManagerのTransactionManager = 新しいDataSourceTransactionManager()。
        transactionManager.setDataSource(initDataSource())。
        返すのTransactionManagerを。
    }

}

おすすめ

転載: www.cnblogs.com/xc-xinxue/p/12482239.html