application-context_demo.xml 7.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xmlns:task="http://www.springframework.org/schema/task"
  5. xmlns:context="http://www.springframework.org/schema/context"
  6. xmlns:aop="http://www.springframework.org/schema/aop"
  7. xmlns:tx="http://www.springframework.org/schema/tx"
  8. xmlns:util="http://www.springframework.org/schema/util"
  9. xsi:schemaLocation="http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
  10. http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task.xsd
  11. http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
  12. http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd
  13. http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd
  14. http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
  15. <context:component-scan base-package="com.dbs.mcare.mns" />
  16. <!-- ========================================================================
  17. 환경설정
  18. ========================================================================-->
  19. <util:properties id="mcareConfig" location="file:./config/config_demo.xml" />
  20. <!-- 스케쥴러 설정 -->
  21. <task:annotation-driven executor="mnsExecutor" scheduler="mnsScheduler"/>
  22. <task:executor id="mnsExecutor" pool-size="5"/>
  23. <task:scheduler id="mnsScheduler" pool-size="30"/>
  24. <!-- Relay 질의문 -->
  25. <util:properties id="relayQueryMappingConfig" location="classpath:config/query/relay_sql.xml" />
  26. <bean id="relayQueryMappingProperties" class="com.dbs.mcare.mns.common.util.QueryProperties">
  27. <property name="properties" ref="relayQueryMappingConfig"/>
  28. </bean>
  29. <!-- Push 질의문 -->
  30. <util:properties id="pushQueryMappingConfig" location="classpath:config/query/push_sql.xml" />
  31. <bean id="pushQueryMappingProperties" class="com.dbs.mcare.mns.common.util.QueryProperties">
  32. <property name="properties" ref="pushQueryMappingConfig"/>
  33. </bean>
  34. <!-- ========================================================================
  35. M-Care Message Server 접근용
  36. ========================================================================-->
  37. <tx:annotation-driven transaction-manager="txManagerMcareMns"/>
  38. <!-- data source -->
  39. <bean id="mnsDataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
  40. <property name="driverClassName" value="#{mcareConfig['mcare.mns.db.driverClassName']}" />
  41. <property name="url" value="#{mcareConfig['mcare.mns.db.url']}" />
  42. <property name="username" value="#{mcareConfig['mcare.mns.db.username']}" />
  43. <property name="password" value="#{mcareConfig['mcare.mns.db.password']}" />
  44. <property name="initialSize" value="5" />
  45. <property name="maxActive" value="5" />
  46. <property name="maxIdle" value="2" />
  47. <property name="validationQuery" value="SELECT 1 FROM DUAL" />
  48. <property name="testWhileIdle" value="true" />
  49. <property name="timeBetweenEvictionRunsMillis" value="3000" />
  50. </bean>
  51. <!-- MessageServer에 insert시 트랜잭션 처리 필요함 -->
  52. <bean id="txManagerMcareMns" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
  53. <property name="dataSource" ref="mnsDataSource" />
  54. </bean>
  55. <bean id="mnsNamedParameterJdbcTemplate" class="org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate">
  56. <constructor-arg>
  57. <ref bean="mnsDataSource" />
  58. </constructor-arg>
  59. </bean>
  60. <!-- ========================================================================
  61. M-Care Message 중간 테이블 접근용
  62. ========================================================================-->
  63. <!-- Message 중간 테이블 -->
  64. <bean id="infDataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
  65. <property name="driverClassName" value="#{mcareConfig['mcare.inf.db.driverClassName']}" />
  66. <property name="url" value="#{mcareConfig['mcare.inf.db.url']}" />
  67. <property name="username" value="#{mcareConfig['mcare.inf.db.username']}" />
  68. <property name="password" value="#{mcareConfig['mcare.inf.db.password']}" />
  69. <property name="initialSize" value="5" />
  70. <property name="maxActive" value="5" />
  71. <property name="maxIdle" value="2" />
  72. <property name="validationQuery" value="SELECT 1 FROM DUAL" />
  73. <property name="testWhileIdle" value="true" />
  74. <property name="timeBetweenEvictionRunsMillis" value="3000" />
  75. </bean>
  76. <bean id="txManagerMcareInf" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
  77. <property name="dataSource" ref="infDataSource" />
  78. </bean>
  79. <bean id="infNamedParameterJdbcTemplate" class="org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate">
  80. <constructor-arg><ref bean="infDataSource" /></constructor-arg>
  81. </bean>
  82. <!-- Repository에서 사용될 DB정보 맵으로 구성 -->
  83. <!-- key:병원키, value:NamedParameterJdbcTemplate 빈 -->
  84. <bean id="relayRepository" class="com.dbs.mcare.mns.relay.repository.RelayRepository">
  85. <property name="infNamedParameterJdbcTemplateMap">
  86. <map>
  87. <entry key="#{mcareConfig['mcare.hospital.1.key']}" value-ref="infNamedParameterJdbcTemplate" />
  88. </map>
  89. </property>
  90. </bean>
  91. <!-- ################################################################################ -->
  92. <!-- GCM / APNs 관리 -->
  93. <!-- ################################################################################ -->
  94. <bean id="gcmSender" class="com.dbs.mcare.mns.push.sender.gcm.GCMSender">
  95. <property name="apikey" value="#{mcareConfig['mcare.gcm.apikey']}" />
  96. </bean>
  97. <bean id="apnsSender" class="com.dbs.mcare.mns.push.sender.apns.APNsSender">
  98. <property name="keystore">
  99. <bean class="org.springframework.core.io.FileSystemResource">
  100. <constructor-arg index="0" value="#{mcareConfig['mcare.apns.appstore.file.resource']}" />
  101. </bean>
  102. </property>
  103. <property name="password" value="#{mcareConfig['mcare.apns.appstore.sender.password']}" />
  104. <property name="production" value="#{mcareConfig['mcare.apns.appstore.sender.production']}" />
  105. </bean>
  106. <bean id="inhouseApnsSender" class="com.dbs.mcare.mns.push.sender.apns.APNsSender">
  107. <property name="keystore">
  108. <bean class="org.springframework.core.io.FileSystemResource">
  109. <constructor-arg index="0" value="#{mcareConfig['mcare.apns.inhouse.file.resource']}" />
  110. </bean>
  111. </property>
  112. <property name="password" value="#{mcareConfig['mcare.apns.inhouse.sender.password']}" />
  113. <property name="production" value="#{mcareConfig['mcare.apns.inhouse.sender.production']}" />
  114. </bean>
  115. <bean id="developApnsSender" class="com.dbs.mcare.mns.push.sender.apns.APNsSender">
  116. <property name="keystore">
  117. <bean class="org.springframework.core.io.FileSystemResource">
  118. <constructor-arg index="0" value="#{mcareConfig['mcare.apns.dev.file.resource']}" />
  119. </bean>
  120. </property>
  121. <property name="password" value="#{mcareConfig['mcare.apns.dev.sender.password']}" />
  122. <property name="production" value="#{mcareConfig['mcare.apns.dev.sender.production']}" />
  123. </bean>
  124. </beans>