如果不想只是用 JdbcTemplate,又是同時要連多個資料庫,就用 Spring Data JPA。
Spring Data JDBC 雖然講得很厲害,還提到 Domain Driven Design,但不支援多資料庫:https://stackoverflow.com/questions/49914310/how-to-configure-multiple-datasources-in-spring-data-jdbc
如果不想只是用 JdbcTemplate,又是同時要連多個資料庫,就用 Spring Data JPA。
Spring Data JDBC 雖然講得很厲害,還提到 Domain Driven Design,但不支援多資料庫:https://stackoverflow.com/questions/49914310/how-to-configure-multiple-datasources-in-spring-data-jdbc
@Configuration public class AppConfig { private static final String SESSION_NAME = "sample"; @Value("${proxy.host:#{null}}") private String proxyHost; @Value("${proxy.port:0}") private int proxyPort; @Value("${cloud.aws.region.static}") private String region; @Bean @Primary public AWSCredentialsProvider awsCredentialsProvider( @Value("${cloud.aws.credentials.accessKey}") String accessKey, @Value("${cloud.aws.credentials.secretKey}") String secretKey, @Value("${cloud.aws.role}") String role) { AWSSecurityTokenService stsClient = AWSSecurityTokenServiceClientBuilder.standard() .withRegion(region) .withClientConfiguration(clientConfiguration()) .withCredentials(new AWSStaticCredentialsProvider(new BasicAWSCredentials(accessKey, secretKey))) .build(); return new STSAssumeRoleSessionCredentialsProvider .Builder(role, SESSION_NAME) .withStsClient(stsClient) .build(); } @Bean public QueueMessageHandlerFactory queueMessageHandlerFactory() { QueueMessageHandlerFactory factory = new QueueMessageHandlerFactory(); MappingJackson2MessageConverter messageConverter = new MappingJackson2MessageConverter(); messageConverter.setStrictContentTypeMatch(false); factory.setArgumentResolvers(Collections.singletonList(new PayloadArgumentResolver(messageConverter))); return factory; } @Bean(name = "amazonSQS") public AmazonSQSAsync amazonSQSAsyncClient(AWSCredentialsProvider awsCredentialsProvider) { return AmazonSQSAsyncClientBuilder.standard() .withRegion(region) .withCredentials(awsCredentialsProvider) .withClientConfiguration(clientConfiguration()) .build(); } @Bean ClientConfiguration clientConfiguration() { ClientConfiguration clientConfiguration = new ClientConfiguration(); if (!StringUtils.isEmpty(proxyHost)) { clientConfiguration.setProxyHost(proxyHost); clientConfiguration.setProxyPort(proxyPort); } return clientConfiguration; } }