From 95372622cfec7c3f2a969b7137a5151de2fbdcab Mon Sep 17 00:00:00 2001 From: trang Date: Sat, 10 Mar 2018 22:15:13 +0800 Subject: [PATCH] jpa --- .../trang/druid/example/jpa/DruidJpaApplication.java | 4 +++- .../druid/example/jpa/config/DynamicDataSource.java | 11 +++++------ .../druid/example/jpa/controller/CityController.java | 2 +- .../src/main/resources/application.yml | 1 + .../druid/example/jpa/test/coveralls/BaseTest.java | 6 ++++++ .../jpa/test/coveralls/DynamicDataSourceTests.java | 8 ++++---- .../druid/example/jpa/test/coveralls/JpaTests.java | 9 ++++++--- .../jpa/test/coveralls/SingleDataSourceTests.java | 8 ++++---- 8 files changed, 30 insertions(+), 19 deletions(-) diff --git a/druid-spring-boot-example/druid-spring-boot-jpa-example/src/main/java/com/github/trang/druid/example/jpa/DruidJpaApplication.java b/druid-spring-boot-example/druid-spring-boot-jpa-example/src/main/java/com/github/trang/druid/example/jpa/DruidJpaApplication.java index f49f799..72ea518 100644 --- a/druid-spring-boot-example/druid-spring-boot-jpa-example/src/main/java/com/github/trang/druid/example/jpa/DruidJpaApplication.java +++ b/druid-spring-boot-example/druid-spring-boot-jpa-example/src/main/java/com/github/trang/druid/example/jpa/DruidJpaApplication.java @@ -2,6 +2,7 @@ package com.github.trang.druid.example.jpa; import com.github.trang.druid.example.jpa.repository.CityRepository; import com.google.gson.Gson; +import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.CommandLineRunner; import org.springframework.boot.SpringApplication; @@ -13,6 +14,7 @@ import org.springframework.boot.autoconfigure.SpringBootApplication; * @author trang */ @SpringBootApplication +@Slf4j public class DruidJpaApplication implements CommandLineRunner { public static void main(String[] args) { @@ -28,7 +30,7 @@ public class DruidJpaApplication implements CommandLineRunner { Gson gson = new Gson(); cityRepository.findAll().stream() .map(gson::toJson) - .forEach(System.out::println); + .forEach(log::info); } } \ No newline at end of file diff --git a/druid-spring-boot-example/druid-spring-boot-jpa-example/src/main/java/com/github/trang/druid/example/jpa/config/DynamicDataSource.java b/druid-spring-boot-example/druid-spring-boot-jpa-example/src/main/java/com/github/trang/druid/example/jpa/config/DynamicDataSource.java index 2b49ecf..0da6d1b 100644 --- a/druid-spring-boot-example/druid-spring-boot-jpa-example/src/main/java/com/github/trang/druid/example/jpa/config/DynamicDataSource.java +++ b/druid-spring-boot-example/druid-spring-boot-jpa-example/src/main/java/com/github/trang/druid/example/jpa/config/DynamicDataSource.java @@ -1,6 +1,7 @@ package com.github.trang.druid.example.jpa.config; import lombok.Getter; +import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.jdbc.datasource.lookup.AbstractRoutingDataSource; @@ -17,14 +18,12 @@ import java.util.concurrent.atomic.AtomicInteger; * @author trang */ @Slf4j +@Getter +@RequiredArgsConstructor public class DynamicDataSource extends AbstractRoutingDataSource { - private AtomicInteger count = new AtomicInteger(); - @Getter private Map targetDataSources; - - public DynamicDataSource(Map targetDataSources) { - this.targetDataSources = targetDataSources; - } + private final AtomicInteger count = new AtomicInteger(); + private final Map targetDataSources; /** * 基于轮询算法指定实际的数据源 diff --git a/druid-spring-boot-example/druid-spring-boot-jpa-example/src/main/java/com/github/trang/druid/example/jpa/controller/CityController.java b/druid-spring-boot-example/druid-spring-boot-jpa-example/src/main/java/com/github/trang/druid/example/jpa/controller/CityController.java index cdac5ca..6554f77 100644 --- a/druid-spring-boot-example/druid-spring-boot-jpa-example/src/main/java/com/github/trang/druid/example/jpa/controller/CityController.java +++ b/druid-spring-boot-example/druid-spring-boot-jpa-example/src/main/java/com/github/trang/druid/example/jpa/controller/CityController.java @@ -22,7 +22,7 @@ public class CityController { @GetMapping("/get/{id}") public City get(@PathVariable Long id) { - return cityRepository.findOne(id); + return cityRepository.getOne(id); } } \ No newline at end of file diff --git a/druid-spring-boot-example/druid-spring-boot-jpa-example/src/main/resources/application.yml b/druid-spring-boot-example/druid-spring-boot-jpa-example/src/main/resources/application.yml index 5b1de7c..f3dfcaf 100644 --- a/druid-spring-boot-example/druid-spring-boot-jpa-example/src/main/resources/application.yml +++ b/druid-spring-boot-example/druid-spring-boot-jpa-example/src/main/resources/application.yml @@ -26,6 +26,7 @@ spring: password: 123456 schema: classpath:import.sql druid: + max-wait: 30000 query-timeout: 10 validation-query: SELECT 1 use-global-data-source-stat: true diff --git a/druid-spring-boot-example/druid-spring-boot-jpa-example/src/test/java/com/github/trang/druid/example/jpa/test/coveralls/BaseTest.java b/druid-spring-boot-example/druid-spring-boot-jpa-example/src/test/java/com/github/trang/druid/example/jpa/test/coveralls/BaseTest.java index 54dcd32..296c33a 100644 --- a/druid-spring-boot-example/druid-spring-boot-jpa-example/src/test/java/com/github/trang/druid/example/jpa/test/coveralls/BaseTest.java +++ b/druid-spring-boot-example/druid-spring-boot-jpa-example/src/test/java/com/github/trang/druid/example/jpa/test/coveralls/BaseTest.java @@ -2,7 +2,10 @@ package com.github.trang.druid.example.jpa.test.coveralls; import com.github.trang.druid.example.jpa.DruidJpaApplication; import com.github.trang.druid.example.jpa.repository.CityRepository; +import com.google.gson.Gson; import org.junit.runner.RunWith; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner; @@ -16,6 +19,9 @@ import org.springframework.test.context.junit4.SpringRunner; @SpringBootTest(classes = DruidJpaApplication.class) public abstract class BaseTest { + protected static final Logger log = LoggerFactory.getLogger(BaseTest.class.getSimpleName()); + protected Gson gson = new Gson(); + @Autowired(required = false) protected CityRepository cityRepository; diff --git a/druid-spring-boot-example/druid-spring-boot-jpa-example/src/test/java/com/github/trang/druid/example/jpa/test/coveralls/DynamicDataSourceTests.java b/druid-spring-boot-example/druid-spring-boot-jpa-example/src/test/java/com/github/trang/druid/example/jpa/test/coveralls/DynamicDataSourceTests.java index cd5a55e..e182361 100644 --- a/druid-spring-boot-example/druid-spring-boot-jpa-example/src/test/java/com/github/trang/druid/example/jpa/test/coveralls/DynamicDataSourceTests.java +++ b/druid-spring-boot-example/druid-spring-boot-jpa-example/src/test/java/com/github/trang/druid/example/jpa/test/coveralls/DynamicDataSourceTests.java @@ -32,8 +32,8 @@ public class DynamicDataSourceTests extends BaseTest { @Test public void testMasterDataSource() { - assertEquals(1, masterDataSource.getInitialSize()); - assertEquals(1, masterDataSource.getMinIdle()); + assertEquals(0, masterDataSource.getInitialSize()); + assertEquals(0, masterDataSource.getMinIdle()); assertEquals(50, masterDataSource.getMaxActive()); assertEquals(30000, masterDataSource.getMaxWait()); assertEquals(60000, masterDataSource.getTimeBetweenEvictionRunsMillis()); @@ -49,8 +49,8 @@ public class DynamicDataSourceTests extends BaseTest { @Test public void testSlaveDataSource() { - assertEquals(1, slaveDataSource.getInitialSize()); - assertEquals(1, slaveDataSource.getMinIdle()); + assertEquals(0, slaveDataSource.getInitialSize()); + assertEquals(0, slaveDataSource.getMinIdle()); assertEquals(25, slaveDataSource.getMaxActive()); assertEquals(30000, slaveDataSource.getMaxWait()); assertEquals(60000, slaveDataSource.getTimeBetweenEvictionRunsMillis()); diff --git a/druid-spring-boot-example/druid-spring-boot-jpa-example/src/test/java/com/github/trang/druid/example/jpa/test/coveralls/JpaTests.java b/druid-spring-boot-example/druid-spring-boot-jpa-example/src/test/java/com/github/trang/druid/example/jpa/test/coveralls/JpaTests.java index 9c55395..8374579 100644 --- a/druid-spring-boot-example/druid-spring-boot-jpa-example/src/test/java/com/github/trang/druid/example/jpa/test/coveralls/JpaTests.java +++ b/druid-spring-boot-example/druid-spring-boot-jpa-example/src/test/java/com/github/trang/druid/example/jpa/test/coveralls/JpaTests.java @@ -5,6 +5,7 @@ import org.junit.Assert; import org.junit.Test; import java.util.List; +import java.util.Optional; /** * MyBatis 测试 @@ -15,14 +16,16 @@ public class JpaTests extends BaseTest { @Test public void testOne() { - City city = cityRepository.findOne(1L); - System.out.println(city); + Optional.ofNullable(cityRepository.getOne(1L)) + .ifPresent(gson::toJson); } @Test public void testAll() { List cities = cityRepository.findAll(); - System.out.println(cities); + cities.stream() + .map(gson::toJson) + .forEach(log::info); Assert.assertEquals(5, cities.size()); } diff --git a/druid-spring-boot-example/druid-spring-boot-jpa-example/src/test/java/com/github/trang/druid/example/jpa/test/coveralls/SingleDataSourceTests.java b/druid-spring-boot-example/druid-spring-boot-jpa-example/src/test/java/com/github/trang/druid/example/jpa/test/coveralls/SingleDataSourceTests.java index d1148a1..fb8af70 100644 --- a/druid-spring-boot-example/druid-spring-boot-jpa-example/src/test/java/com/github/trang/druid/example/jpa/test/coveralls/SingleDataSourceTests.java +++ b/druid-spring-boot-example/druid-spring-boot-jpa-example/src/test/java/com/github/trang/druid/example/jpa/test/coveralls/SingleDataSourceTests.java @@ -20,9 +20,9 @@ public class SingleDataSourceTests extends BaseTest { @Test public void testSingleDataSource() { - assertEquals(1, dataSource.getInitialSize()); - assertEquals(1, dataSource.getMinIdle()); - assertEquals(10, dataSource.getMaxActive()); + assertEquals(0, dataSource.getInitialSize()); + assertEquals(0, dataSource.getMinIdle()); + assertEquals(8, dataSource.getMaxActive()); assertEquals(30000, dataSource.getMaxWait()); assertEquals(60000, dataSource.getTimeBetweenEvictionRunsMillis()); assertEquals(1800000, dataSource.getMinEvictableIdleTimeMillis()); @@ -31,7 +31,7 @@ public class SingleDataSourceTests extends BaseTest { assertEquals(true, dataSource.isTestWhileIdle()); assertEquals(false, dataSource.isTestOnBorrow()); assertEquals(false, dataSource.isTestOnReturn()); - assertEquals(20, dataSource.getMaxPoolPreparedStatementPerConnectionSize()); + assertEquals(10, dataSource.getMaxPoolPreparedStatementPerConnectionSize()); assertEquals(true, dataSource.isUseGlobalDataSourceStat()); }