From 58f6608678fc43b300fe3c3a939d00818e95adb9 Mon Sep 17 00:00:00 2001 From: Yanming Zhou Date: Mon, 13 Jul 2026 17:21:43 +0800 Subject: [PATCH] Polish tests to get generic bean by name with type reference See GH-34687 Signed-off-by: Yanming Zhou --- .../aop/target/LazyInitTargetSourceTests.java | 6 +-- .../serviceloader/ServiceLoaderTests.java | 5 +- .../support/BeanFactoryGenericsTests.java | 50 +++++++++---------- .../beans/factory/xml/FactoryMethodTests.java | 3 +- .../aop/aspectj/BeanNamePointcutTests.java | 5 +- .../aop/framework/ProxyFactoryBeanTests.java | 3 +- .../jdbc/object/GenericSqlQueryTests.java | 7 +-- 7 files changed, 42 insertions(+), 37 deletions(-) diff --git a/spring-aop/src/test/java/org/springframework/aop/target/LazyInitTargetSourceTests.java b/spring-aop/src/test/java/org/springframework/aop/target/LazyInitTargetSourceTests.java index ebd3f8d3b9ce..604d84328fbc 100644 --- a/spring-aop/src/test/java/org/springframework/aop/target/LazyInitTargetSourceTests.java +++ b/spring-aop/src/test/java/org/springframework/aop/target/LazyInitTargetSourceTests.java @@ -23,6 +23,7 @@ import org.springframework.beans.factory.support.DefaultListableBeanFactory; import org.springframework.beans.factory.xml.XmlBeanDefinitionReader; import org.springframework.beans.testfixture.beans.ITestBean; +import org.springframework.core.ParameterizedTypeReference; import org.springframework.core.io.Resource; import static org.assertj.core.api.Assertions.assertThat; @@ -68,17 +69,16 @@ void customLazyInitSingletonTargetSource() { } @Test - @SuppressWarnings("unchecked") void lazyInitFactoryBeanTargetSource() { new XmlBeanDefinitionReader(bf).loadBeanDefinitions(FACTORY_BEAN_CONTEXT); bf.preInstantiateSingletons(); - Set set1 = (Set) bf.getBean("proxy1"); + Set set1 = bf.getBean("proxy1", new ParameterizedTypeReference<>() {}); assertThat(bf.containsSingleton("target1")).isFalse(); assertThat(set1).contains("10"); assertThat(bf.containsSingleton("target1")).isTrue(); - Set set2 = (Set) bf.getBean("proxy2"); + Set set2 = bf.getBean("proxy2", new ParameterizedTypeReference<>() {}); assertThat(bf.containsSingleton("target2")).isFalse(); assertThat(set2).contains("20"); assertThat(bf.containsSingleton("target2")).isTrue(); diff --git a/spring-beans/src/test/java/org/springframework/beans/factory/serviceloader/ServiceLoaderTests.java b/spring-beans/src/test/java/org/springframework/beans/factory/serviceloader/ServiceLoaderTests.java index 656c7f66ab2d..ab2853308df9 100644 --- a/spring-beans/src/test/java/org/springframework/beans/factory/serviceloader/ServiceLoaderTests.java +++ b/spring-beans/src/test/java/org/springframework/beans/factory/serviceloader/ServiceLoaderTests.java @@ -26,6 +26,7 @@ import org.springframework.beans.factory.support.DefaultListableBeanFactory; import org.springframework.beans.factory.support.RootBeanDefinition; +import org.springframework.core.ParameterizedTypeReference; import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assumptions.assumeThat; @@ -47,7 +48,7 @@ void serviceLoaderFactoryBean() { RootBeanDefinition bd = new RootBeanDefinition(ServiceLoaderFactoryBean.class); bd.getPropertyValues().add("serviceType", DocumentBuilderFactory.class.getName()); bf.registerBeanDefinition("service", bd); - ServiceLoader serviceLoader = (ServiceLoader) bf.getBean("service"); + ServiceLoader serviceLoader = bf.getBean("service", new ParameterizedTypeReference<>() {}); assertThat(serviceLoader).element(0).isInstanceOf(DocumentBuilderFactory.class); } @@ -66,7 +67,7 @@ void serviceListFactoryBean() { RootBeanDefinition bd = new RootBeanDefinition(ServiceListFactoryBean.class); bd.getPropertyValues().add("serviceType", DocumentBuilderFactory.class.getName()); bf.registerBeanDefinition("service", bd); - List serviceList = (List) bf.getBean("service"); + List serviceList = bf.getBean("service", new ParameterizedTypeReference<>() {}); assertThat(serviceList).element(0).isInstanceOf(DocumentBuilderFactory.class); } diff --git a/spring-beans/src/test/java/org/springframework/beans/factory/support/BeanFactoryGenericsTests.java b/spring-beans/src/test/java/org/springframework/beans/factory/support/BeanFactoryGenericsTests.java index ded7834ab902..8d50a1713ef1 100644 --- a/spring-beans/src/test/java/org/springframework/beans/factory/support/BeanFactoryGenericsTests.java +++ b/spring-beans/src/test/java/org/springframework/beans/factory/support/BeanFactoryGenericsTests.java @@ -72,7 +72,7 @@ void genericSetProperty() { bd.getPropertyValues().add("integerSet", Set.of("4", "5")); bf.registerBeanDefinition("genericBean", bd); - GenericBean gb = (GenericBean) bf.getBean("genericBean"); + GenericBean gb = bf.getBean("genericBean", new ParameterizedTypeReference<>() {}); assertThat(gb.getIntegerSet()).containsExactlyInAnyOrder(4, 5); } @@ -85,7 +85,7 @@ void genericListProperty() throws Exception { bd.getPropertyValues().add("resourceList", input); bf.registerBeanDefinition("genericBean", bd); - GenericBean gb = (GenericBean) bf.getBean("genericBean"); + GenericBean gb = bf.getBean("genericBean", new ParameterizedTypeReference<>() {}); assertThat(gb.getResourceList()) .containsExactly(new UrlResource("http://localhost:8080"), new UrlResource("http://localhost:9090")); } @@ -128,7 +128,7 @@ void genericListPropertyWithOptionalAutowiring() { bd.setAutowireMode(RootBeanDefinition.AUTOWIRE_BY_TYPE); bf.registerBeanDefinition("genericBean", bd); - GenericBean gb = (GenericBean) bf.getBean("genericBean"); + GenericBean gb = bf.getBean("genericBean", new ParameterizedTypeReference<>() {}); assertThat(gb.getResourceList()).isNull(); } @@ -143,7 +143,7 @@ void genericMapProperty() { bd.getPropertyValues().add("shortMap", input); bf.registerBeanDefinition("genericBean", bd); - GenericBean gb = (GenericBean) bf.getBean("genericBean"); + GenericBean gb = bf.getBean("genericBean", new ParameterizedTypeReference<>() {}); assertThat(gb.getShortMap().get(Short.valueOf("4"))).isEqualTo(5); assertThat(gb.getShortMap().get(Short.valueOf("6"))).isEqualTo(7); } @@ -154,7 +154,7 @@ void genericListOfArraysProperty() { new XmlBeanDefinitionReader(bf).loadBeanDefinitions( new ClassPathResource("genericBeanTests.xml", getClass())); - GenericBean gb = (GenericBean) bf.getBean("listOfArrays"); + GenericBean gb = bf.getBean("listOfArrays", new ParameterizedTypeReference<>() {}); assertThat(gb.getListOfArrays()).containsExactly(new String[] {"value1", "value2"}); } @@ -167,7 +167,7 @@ void genericSetConstructor() { bd.getConstructorArgumentValues().addGenericArgumentValue(input); bf.registerBeanDefinition("genericBean", bd); - GenericBean gb = (GenericBean) bf.getBean("genericBean"); + GenericBean gb = bf.getBean("genericBean", new ParameterizedTypeReference<>() {}); assertThat(gb.getIntegerSet()).containsExactlyInAnyOrder(4, 5); } @@ -181,7 +181,7 @@ void genericSetConstructorWithAutowiring() { bd.setAutowireMode(RootBeanDefinition.AUTOWIRE_CONSTRUCTOR); bf.registerBeanDefinition("genericBean", bd); - GenericBean gb = (GenericBean) bf.getBean("genericBean"); + GenericBean gb = bf.getBean("genericBean", new ParameterizedTypeReference<>() {}); assertThat(gb.getIntegerSet()).containsExactlyInAnyOrder(4, 5); } @@ -193,7 +193,7 @@ void genericSetConstructorWithOptionalAutowiring() { bd.setAutowireMode(RootBeanDefinition.AUTOWIRE_CONSTRUCTOR); bf.registerBeanDefinition("genericBean", bd); - GenericBean gb = (GenericBean) bf.getBean("genericBean"); + GenericBean gb = bf.getBean("genericBean", new ParameterizedTypeReference<>() {}); assertThat(gb.getIntegerSet()).isNull(); } @@ -208,7 +208,7 @@ void genericSetListConstructor() throws Exception { bd.getConstructorArgumentValues().addGenericArgumentValue(input2); bf.registerBeanDefinition("genericBean", bd); - GenericBean gb = (GenericBean) bf.getBean("genericBean"); + GenericBean gb = bf.getBean("genericBean", new ParameterizedTypeReference<>() {}); assertThat(gb.getIntegerSet()).containsExactlyInAnyOrder(4, 5); assertThat(gb.getResourceList()) .containsExactly(new UrlResource("http://localhost:8080"), new UrlResource("http://localhost:9090")); @@ -226,7 +226,7 @@ void genericSetListConstructorWithAutowiring() throws Exception { bd.setAutowireMode(RootBeanDefinition.AUTOWIRE_CONSTRUCTOR); bf.registerBeanDefinition("genericBean", bd); - GenericBean gb = (GenericBean) bf.getBean("genericBean"); + GenericBean gb = bf.getBean("genericBean", new ParameterizedTypeReference<>() {}); assertThat(gb.getIntegerSet()).containsExactlyInAnyOrder(4, 5); assertThat(gb.getResourceList()) .containsExactly(new UrlResource("http://localhost:8080"), new UrlResource("http://localhost:9090")); @@ -242,7 +242,7 @@ void genericSetListConstructorWithOptionalAutowiring() throws Exception { bd.setAutowireMode(RootBeanDefinition.AUTOWIRE_CONSTRUCTOR); bf.registerBeanDefinition("genericBean", bd); - GenericBean gb = (GenericBean) bf.getBean("genericBean"); + GenericBean gb = bf.getBean("genericBean", new ParameterizedTypeReference<>() {}); assertThat(gb.getIntegerSet()).isNull(); assertThat(gb.getResourceList()).isNull(); } @@ -260,7 +260,7 @@ void genericSetMapConstructor() { bd.getConstructorArgumentValues().addGenericArgumentValue(input2); bf.registerBeanDefinition("genericBean", bd); - GenericBean gb = (GenericBean) bf.getBean("genericBean"); + GenericBean gb = bf.getBean("genericBean", new ParameterizedTypeReference<>() {}); assertThat(gb.getIntegerSet()).containsExactlyInAnyOrder(4, 5); assertThat(gb.getShortMap().get(Short.valueOf("4"))).isEqualTo(5); assertThat(gb.getShortMap().get(Short.valueOf("6"))).isEqualTo(7); @@ -278,7 +278,7 @@ void genericMapResourceConstructor() throws Exception { bd.getConstructorArgumentValues().addGenericArgumentValue("http://localhost:8080"); bf.registerBeanDefinition("genericBean", bd); - GenericBean gb = (GenericBean) bf.getBean("genericBean"); + GenericBean gb = bf.getBean("genericBean", new ParameterizedTypeReference<>() {}); assertThat(gb.getShortMap().get(Short.valueOf("4"))).isEqualTo(5); assertThat(gb.getShortMap().get(Short.valueOf("6"))).isEqualTo(7); assertThat(gb.getResourceList()).containsExactly(new UrlResource("http://localhost:8080")); @@ -299,7 +299,7 @@ void genericMapMapConstructor() { bd.getConstructorArgumentValues().addGenericArgumentValue(input2); bf.registerBeanDefinition("genericBean", bd); - GenericBean gb = (GenericBean) bf.getBean("genericBean"); + GenericBean gb = bf.getBean("genericBean", new ParameterizedTypeReference<>() {}); assertThat(gb.getShortMap()).isNotSameAs(gb.getPlainMap()); assertThat(gb.getPlainMap()).hasSize(2); assertThat(gb.getPlainMap().get("1")).isEqualTo("0"); @@ -321,7 +321,7 @@ void genericMapMapConstructorWithSameRefAndConversion() { bd.getConstructorArgumentValues().addGenericArgumentValue(input); bf.registerBeanDefinition("genericBean", bd); - GenericBean gb = (GenericBean) bf.getBean("genericBean"); + GenericBean gb = bf.getBean("genericBean", new ParameterizedTypeReference<>() {}); assertThat(gb.getShortMap()).isNotSameAs(gb.getPlainMap()); assertThat(gb.getPlainMap()).hasSize(2); assertThat(gb.getPlainMap().get("1")).isEqualTo("0"); @@ -343,7 +343,7 @@ void genericMapMapConstructorWithSameRefAndNoConversion() { bd.getConstructorArgumentValues().addGenericArgumentValue(input); bf.registerBeanDefinition("genericBean", bd); - GenericBean gb = (GenericBean) bf.getBean("genericBean"); + GenericBean gb = bf.getBean("genericBean", new ParameterizedTypeReference<>() {}); assertThat(gb.getShortMap()).isSameAs(gb.getPlainMap()); assertThat(gb.getShortMap()).hasSize(2); assertThat(gb.getShortMap().get(Short.valueOf("1"))).isEqualTo(0); @@ -361,7 +361,7 @@ void genericMapWithKeyTypeConstructor() { bd.getConstructorArgumentValues().addGenericArgumentValue(input); bf.registerBeanDefinition("genericBean", bd); - GenericBean gb = (GenericBean) bf.getBean("genericBean"); + GenericBean gb = bf.getBean("genericBean", new ParameterizedTypeReference<>() {}); assertThat(gb.getLongMap().get(4L)).isEqualTo("5"); assertThat(gb.getLongMap().get(6L)).isEqualTo("7"); } @@ -380,7 +380,7 @@ void genericMapWithCollectionValueConstructor() { bd.getConstructorArgumentValues().addGenericArgumentValue(input); bf.registerBeanDefinition("genericBean", bd); - GenericBean gb = (GenericBean) bf.getBean("genericBean"); + GenericBean gb = bf.getBean("genericBean", new ParameterizedTypeReference<>() {}); assertThat(gb.getCollectionMap().get(1)).isInstanceOf(Set.class); assertThat(gb.getCollectionMap().get(2)).isInstanceOf(List.class); } @@ -395,7 +395,7 @@ void genericSetFactoryMethod() { bd.getConstructorArgumentValues().addGenericArgumentValue(input); bf.registerBeanDefinition("genericBean", bd); - GenericBean gb = (GenericBean) bf.getBean("genericBean"); + GenericBean gb = bf.getBean("genericBean", new ParameterizedTypeReference<>() {}); assertThat(gb.getIntegerSet()).containsExactlyInAnyOrder(4, 5); } @@ -411,7 +411,7 @@ void genericSetListFactoryMethod() throws Exception { bd.getConstructorArgumentValues().addGenericArgumentValue(input2); bf.registerBeanDefinition("genericBean", bd); - GenericBean gb = (GenericBean) bf.getBean("genericBean"); + GenericBean gb = bf.getBean("genericBean", new ParameterizedTypeReference<>() {}); assertThat(gb.getIntegerSet()).containsExactlyInAnyOrder(4, 5); assertThat(gb.getResourceList()) .containsExactly(new UrlResource("http://localhost:8080"), new UrlResource("http://localhost:9090")); @@ -431,7 +431,7 @@ void genericSetMapFactoryMethod() { bd.getConstructorArgumentValues().addGenericArgumentValue(input2); bf.registerBeanDefinition("genericBean", bd); - GenericBean gb = (GenericBean) bf.getBean("genericBean"); + GenericBean gb = bf.getBean("genericBean", new ParameterizedTypeReference<>() {}); assertThat(gb.getIntegerSet()).containsExactlyInAnyOrder(4, 5); assertThat(gb.getShortMap().get(Short.valueOf("4"))).isEqualTo(5); assertThat(gb.getShortMap().get(Short.valueOf("6"))).isEqualTo(7); @@ -450,7 +450,7 @@ void genericMapResourceFactoryMethod() throws Exception { bd.getConstructorArgumentValues().addGenericArgumentValue("http://localhost:8080"); bf.registerBeanDefinition("genericBean", bd); - GenericBean gb = (GenericBean) bf.getBean("genericBean"); + GenericBean gb = bf.getBean("genericBean", new ParameterizedTypeReference<>() {}); assertThat(gb.getShortMap().get(Short.valueOf("4"))).isEqualTo(5); assertThat(gb.getShortMap().get(Short.valueOf("6"))).isEqualTo(7); assertThat(gb.getResourceList()).containsExactly(new UrlResource("http://localhost:8080")); @@ -472,7 +472,7 @@ void genericMapMapFactoryMethod() { bd.getConstructorArgumentValues().addGenericArgumentValue(input2); bf.registerBeanDefinition("genericBean", bd); - GenericBean gb = (GenericBean) bf.getBean("genericBean"); + GenericBean gb = bf.getBean("genericBean", new ParameterizedTypeReference<>() {}); assertThat(gb.getPlainMap().get("1")).isEqualTo("0"); assertThat(gb.getPlainMap().get("2")).isEqualTo("3"); assertThat(gb.getShortMap().get(Short.valueOf("4"))).isEqualTo(5); @@ -491,7 +491,7 @@ void genericMapWithKeyTypeFactoryMethod() { bd.getConstructorArgumentValues().addGenericArgumentValue(input); bf.registerBeanDefinition("genericBean", bd); - GenericBean gb = (GenericBean) bf.getBean("genericBean"); + GenericBean gb = bf.getBean("genericBean", new ParameterizedTypeReference<>() {}); assertThat(gb.getLongMap().get(Long.valueOf("4"))).isEqualTo("5"); assertThat(gb.getLongMap().get(Long.valueOf("6"))).isEqualTo("7"); } @@ -511,7 +511,7 @@ void genericMapWithCollectionValueFactoryMethod() { bd.getConstructorArgumentValues().addGenericArgumentValue(input); bf.registerBeanDefinition("genericBean", bd); - GenericBean gb = (GenericBean) bf.getBean("genericBean"); + GenericBean gb = bf.getBean("genericBean", new ParameterizedTypeReference<>() {}); assertThat(gb.getCollectionMap().get(1)).isInstanceOf(Set.class); assertThat(gb.getCollectionMap().get(2)).isInstanceOf(List.class); } diff --git a/spring-beans/src/test/java/org/springframework/beans/factory/xml/FactoryMethodTests.java b/spring-beans/src/test/java/org/springframework/beans/factory/xml/FactoryMethodTests.java index 9687e729aced..77b1a703e68f 100644 --- a/spring-beans/src/test/java/org/springframework/beans/factory/xml/FactoryMethodTests.java +++ b/spring-beans/src/test/java/org/springframework/beans/factory/xml/FactoryMethodTests.java @@ -27,6 +27,7 @@ import org.springframework.beans.factory.support.DefaultListableBeanFactory; import org.springframework.beans.testfixture.beans.FactoryMethods; import org.springframework.beans.testfixture.beans.TestBean; +import org.springframework.core.ParameterizedTypeReference; import org.springframework.core.io.ClassPathResource; import static org.assertj.core.api.Assertions.assertThat; @@ -347,7 +348,7 @@ void factoryMethodWithDifferentReturnType() { assertThat(Arrays.asList(names)).doesNotContain("listInstance"); names = xbf.getBeanNamesForType(List.class); assertThat(Arrays.asList(names)).contains("listInstance"); - List list = (List) xbf.getBean("listInstance"); + List list = xbf.getBean("listInstance", new ParameterizedTypeReference<>() {}); assertThat(list).isEqualTo(Collections.EMPTY_LIST); } diff --git a/spring-context/src/test/java/org/springframework/aop/aspectj/BeanNamePointcutTests.java b/spring-context/src/test/java/org/springframework/aop/aspectj/BeanNamePointcutTests.java index cf467bf3a7fd..5aaf9c48eeaf 100644 --- a/spring-context/src/test/java/org/springframework/aop/aspectj/BeanNamePointcutTests.java +++ b/spring-context/src/test/java/org/springframework/aop/aspectj/BeanNamePointcutTests.java @@ -28,6 +28,7 @@ import org.springframework.beans.factory.FactoryBean; import org.springframework.beans.testfixture.beans.ITestBean; import org.springframework.context.support.ClassPathXmlApplicationContext; +import org.springframework.core.ParameterizedTypeReference; import static org.assertj.core.api.Assertions.assertThat; @@ -60,8 +61,8 @@ void setup() { testBean1 = (ITestBean) ctx.getBean("testBean1"); testBean2 = (ITestBean) ctx.getBean("testBean2"); testBeanContainingNestedBean = (ITestBean) ctx.getBean("testBeanContainingNestedBean"); - testFactoryBean1 = (Map) ctx.getBean("testFactoryBean1"); - testFactoryBean2 = (Map) ctx.getBean("testFactoryBean2"); + testFactoryBean1 = ctx.getBean("testFactoryBean1", new ParameterizedTypeReference<>() {}); + testFactoryBean2 = ctx.getBean("testFactoryBean2", new ParameterizedTypeReference<>() {}); counterAspect = (Counter) ctx.getBean("counterAspect"); interceptThis = (ITestBean) ctx.getBean("interceptThis"); dontInterceptThis = (ITestBean) ctx.getBean("dontInterceptThis"); diff --git a/spring-context/src/test/java/org/springframework/aop/framework/ProxyFactoryBeanTests.java b/spring-context/src/test/java/org/springframework/aop/framework/ProxyFactoryBeanTests.java index d62cc41eb3c1..7c569b7ad687 100644 --- a/spring-context/src/test/java/org/springframework/aop/framework/ProxyFactoryBeanTests.java +++ b/spring-context/src/test/java/org/springframework/aop/framework/ProxyFactoryBeanTests.java @@ -56,6 +56,7 @@ import org.springframework.beans.testfixture.beans.TestBean; import org.springframework.context.ApplicationListener; import org.springframework.context.testfixture.beans.TestApplicationListener; +import org.springframework.core.ParameterizedTypeReference; import org.springframework.core.io.ClassPathResource; import org.springframework.core.testfixture.TimeStamped; import org.springframework.core.testfixture.io.SerializationTestUtils; @@ -512,7 +513,7 @@ void globalsCanAddAspectInterfaces() { // 2 globals + 2 explicit assertThat(pfb.getAdvisors()).as("Have 2 globals and 2 explicit advisors").hasSize(3); - ApplicationListener l = (ApplicationListener) factory.getBean("validGlobals"); + ApplicationListener l = factory.getBean("validGlobals", new ParameterizedTypeReference<>() {}); agi = (AddedGlobalInterface) l; assertThat(agi.globalsAdded()).isEqualTo(-1); diff --git a/spring-jdbc/src/test/java/org/springframework/jdbc/object/GenericSqlQueryTests.java b/spring-jdbc/src/test/java/org/springframework/jdbc/object/GenericSqlQueryTests.java index 8c24fa2af938..33a35e3418b6 100644 --- a/spring-jdbc/src/test/java/org/springframework/jdbc/object/GenericSqlQueryTests.java +++ b/spring-jdbc/src/test/java/org/springframework/jdbc/object/GenericSqlQueryTests.java @@ -32,6 +32,7 @@ import org.springframework.beans.factory.support.DefaultListableBeanFactory; import org.springframework.beans.factory.xml.XmlBeanDefinitionReader; +import org.springframework.core.ParameterizedTypeReference; import org.springframework.core.io.ClassPathResource; import org.springframework.jdbc.Customer; import org.springframework.jdbc.datasource.TestDataSourceWrapper; @@ -72,19 +73,19 @@ void setUp() throws Exception { @Test void customerQueryWithPlaceholders() throws SQLException { - SqlQuery query = (SqlQuery) beanFactory.getBean("queryWithPlaceholders"); + SqlQuery query = beanFactory.getBean("queryWithPlaceholders", new ParameterizedTypeReference<>() {}); doTestCustomerQuery(query, false); } @Test void customerQueryWithNamedParameters() throws SQLException { - SqlQuery query = (SqlQuery) beanFactory.getBean("queryWithNamedParameters"); + SqlQuery query = beanFactory.getBean("queryWithNamedParameters", new ParameterizedTypeReference<>() {}); doTestCustomerQuery(query, true); } @Test void customerQueryWithRowMapperInstance() throws SQLException { - SqlQuery query = (SqlQuery) beanFactory.getBean("queryWithRowMapperBean"); + SqlQuery query = beanFactory.getBean("queryWithRowMapperBean", new ParameterizedTypeReference<>() {}); doTestCustomerQuery(query, true); }