Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @Configuration
- public class S2JdbcConfig {
- @Value("${S2JdbcConfig.database.dialect}")
- String dialect = "";
- @Value("${S2JdbcConfig.database.driverClassName}")
- String driverClass = "";
- @Value("${S2JdbcConfig.database.user}")
- String user = "";
- @Value("${S2JdbcConfig.database.password}")
- String password = "";
- @Value("${S2JdbcConfig.database.url}")
- String url = "";
- /**
- * springが利用するPlatformTransactionManager
- * JTAのTransactionManger/userTransactionのラッパ */
- @Bean
- public PlatformTransactionManager transactionManager(UserTransaction userTransaction){
- return new JtaTransactionManager(userTransaction);
- }
- /** s2jdbcに提供用のtransactionManger(JTA実装) */
- @Bean
- public TransactionManager tm() {
- TransactionManager tm = new TransactionManagerImpl();
- return tm;
- }
- /** s2jdbc提供用のuserTransaction(JTA実装) */
- @Bean public UserTransaction userTransaction(TransactionManager tm){
- return new UserTransactionImpl(tm);
- }
- /** s2jdbc提供用のTransactionSynchronizationRegistry(JTA実装) */
- @Bean
- public TransactionSynchronizationRegistry synchronizationRegistry(TransactionManager tm) {
- return new TransactionSynchronizationRegistryImpl(tm);
- }
- /** s2jdbc提供用 */
- @Bean
- public StandardDialect dialect() {
- //org.seasar.extension.jdbc.dialect.H2Dialect
- //org.seasar.extension.jdbc.dialect.OracleDialect
- try {
- return (StandardDialect)Class.forName(dialect).newInstance();
- } catch(Exception e) {
- throw new Error(e);
- }
- }
- /** s2jdbc提供用 */
- @Bean DataSource s2DataSource( XADataSource xaDataSource,ConnectionPool connectionPool){
- DataSource dataSource = new DataSourceImpl(connectionPool);
- return dataSource;
- }
- /** s2jdbc提供用・DBCP実装*/
- @Bean
- public ConnectionPool connectionPool(
- XADataSource xaDataSource , TransactionManager tm) {
- ConnectionPoolImpl connectionPool = new ConnectionPoolImpl();
- connectionPool.setXADataSource(xaDataSource);
- connectionPool.setTransactionManager(tm);
- connectionPool.setTimeout(60);
- connectionPool.setMaxPoolSize(10);
- connectionPool.setAllowLocalTx(true);
- return connectionPool;
- }
- /** s2jdbc提供用・JTA実装 */
- @Bean
- public XADataSource xaDataSource() {
- XADataSourceImpl xaDataSource = new XADataSourceImpl();
- xaDataSource.setDriverClassName(driverClass);
- xaDataSource.setURL(url);
- xaDataSource.setUser(user);
- xaDataSource.setPassword(password);
- return xaDataSource;
- }
- @Bean
- public JdbcManager jdbcManager(
- DataSource s2DataSource, StandardDialect dialect ,
- TransactionSynchronizationRegistry synchronizationRegistry) {
- PersistenceConventionImpl persistenceConvention = new PersistenceConventionImpl();
- TableMetaFactoryImpl tableMetaFactory = new TableMetaFactoryImpl();
- tableMetaFactory.setPersistenceConvention(persistenceConvention);
- ColumnMetaFactoryImpl columnMetaFactory = new ColumnMetaFactoryImpl();
- columnMetaFactory.setPersistenceConvention(persistenceConvention);
- PropertyMetaFactoryImpl propertyMetaFactory = new PropertyMetaFactoryImpl();
- propertyMetaFactory.setPersistenceConvention(persistenceConvention);
- propertyMetaFactory.setColumnMetaFactory(columnMetaFactory);
- EntityMetaFactoryImpl entityMetaFactory = new EntityMetaFactoryImpl();
- entityMetaFactory.setPersistenceConvention(persistenceConvention);
- entityMetaFactory.setTableMetaFactory(tableMetaFactory);
- entityMetaFactory.setPropertyMetaFactory(propertyMetaFactory);
- JdbcManagerImpl jdbcManager = new JdbcManagerImpl();
- jdbcManager.setDataSource(s2DataSource);
- jdbcManager.setDialect(dialect);
- jdbcManager.setEntityMetaFactory(entityMetaFactory);
- jdbcManager.setPersistenceConvention(persistenceConvention);
- jdbcManager.setSyncRegistry(synchronizationRegistry);
- return jdbcManager;
- }
- }
Add Comment
Please, Sign In to add comment