Guest User

Untitled

a guest
Mar 27th, 2018
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.20 KB | None | 0 0
  1. @Configuration
  2. public class S2JdbcConfig {
  3.  
  4.  
  5.  
  6. @Value("${S2JdbcConfig.database.dialect}")
  7. String dialect = "";
  8.  
  9. @Value("${S2JdbcConfig.database.driverClassName}")
  10. String driverClass = "";
  11.  
  12.  
  13. @Value("${S2JdbcConfig.database.user}")
  14. String user = "";
  15.  
  16.  
  17. @Value("${S2JdbcConfig.database.password}")
  18. String password = "";
  19.  
  20.  
  21. @Value("${S2JdbcConfig.database.url}")
  22. String url = "";
  23.  
  24.  
  25.  
  26. /**
  27. * springが利用するPlatformTransactionManager
  28. * JTAのTransactionManger/userTransactionのラッパ */
  29. @Bean
  30. public PlatformTransactionManager transactionManager(UserTransaction userTransaction){
  31. return new JtaTransactionManager(userTransaction);
  32. }
  33.  
  34. /** s2jdbcに提供用のtransactionManger(JTA実装) */
  35. @Bean
  36. public TransactionManager tm() {
  37. TransactionManager tm = new TransactionManagerImpl();
  38. return tm;
  39. }
  40.  
  41. /** s2jdbc提供用のuserTransaction(JTA実装) */
  42. @Bean public UserTransaction userTransaction(TransactionManager tm){
  43. return new UserTransactionImpl(tm);
  44. }
  45.  
  46. /** s2jdbc提供用のTransactionSynchronizationRegistry(JTA実装) */
  47. @Bean
  48. public TransactionSynchronizationRegistry synchronizationRegistry(TransactionManager tm) {
  49. return new TransactionSynchronizationRegistryImpl(tm);
  50. }
  51.  
  52. /** s2jdbc提供用 */
  53. @Bean
  54. public StandardDialect dialect() {
  55. //org.seasar.extension.jdbc.dialect.H2Dialect
  56. //org.seasar.extension.jdbc.dialect.OracleDialect
  57. try {
  58. return (StandardDialect)Class.forName(dialect).newInstance();
  59. } catch(Exception e) {
  60. throw new Error(e);
  61. }
  62. }
  63.  
  64. /** s2jdbc提供用 */
  65. @Bean DataSource s2DataSource( XADataSource xaDataSource,ConnectionPool connectionPool){
  66. DataSource dataSource = new DataSourceImpl(connectionPool);
  67. return dataSource;
  68. }
  69.  
  70. /** s2jdbc提供用・DBCP実装*/
  71. @Bean
  72. public ConnectionPool connectionPool(
  73. XADataSource xaDataSource , TransactionManager tm) {
  74. ConnectionPoolImpl connectionPool = new ConnectionPoolImpl();
  75. connectionPool.setXADataSource(xaDataSource);
  76. connectionPool.setTransactionManager(tm);
  77. connectionPool.setTimeout(60);
  78. connectionPool.setMaxPoolSize(10);
  79. connectionPool.setAllowLocalTx(true);
  80. return connectionPool;
  81. }
  82.  
  83. /** s2jdbc提供用・JTA実装 */
  84. @Bean
  85. public XADataSource xaDataSource() {
  86. XADataSourceImpl xaDataSource = new XADataSourceImpl();
  87. xaDataSource.setDriverClassName(driverClass);
  88. xaDataSource.setURL(url);
  89. xaDataSource.setUser(user);
  90. xaDataSource.setPassword(password);
  91. return xaDataSource;
  92. }
  93.  
  94.  
  95.  
  96. @Bean
  97. public JdbcManager jdbcManager(
  98. DataSource s2DataSource, StandardDialect dialect ,
  99. TransactionSynchronizationRegistry synchronizationRegistry) {
  100.  
  101. PersistenceConventionImpl persistenceConvention = new PersistenceConventionImpl();
  102.  
  103. TableMetaFactoryImpl tableMetaFactory = new TableMetaFactoryImpl();
  104. tableMetaFactory.setPersistenceConvention(persistenceConvention);
  105.  
  106. ColumnMetaFactoryImpl columnMetaFactory = new ColumnMetaFactoryImpl();
  107. columnMetaFactory.setPersistenceConvention(persistenceConvention);
  108.  
  109. PropertyMetaFactoryImpl propertyMetaFactory = new PropertyMetaFactoryImpl();
  110. propertyMetaFactory.setPersistenceConvention(persistenceConvention);
  111. propertyMetaFactory.setColumnMetaFactory(columnMetaFactory);
  112.  
  113. EntityMetaFactoryImpl entityMetaFactory = new EntityMetaFactoryImpl();
  114. entityMetaFactory.setPersistenceConvention(persistenceConvention);
  115. entityMetaFactory.setTableMetaFactory(tableMetaFactory);
  116. entityMetaFactory.setPropertyMetaFactory(propertyMetaFactory);
  117.  
  118.  
  119. JdbcManagerImpl jdbcManager = new JdbcManagerImpl();
  120. jdbcManager.setDataSource(s2DataSource);
  121. jdbcManager.setDialect(dialect);
  122. jdbcManager.setEntityMetaFactory(entityMetaFactory);
  123. jdbcManager.setPersistenceConvention(persistenceConvention);
  124. jdbcManager.setSyncRegistry(synchronizationRegistry);
  125. return jdbcManager;
  126. }
  127. }
Add Comment
Please, Sign In to add comment