同样的代码为啥@autowired正确.用@resource就错了呢
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 | package com.om.o2ov2.config.redis; import com.om.o2ov2.cache.JedisPoolWriper; import com.om.o2ov2.cache.JedisUtil; import javax.annotation.Resource; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import redis.clients.jedis.JedisPoolConfig; @Configuration public class RedisConfiguration { @Value ( "${myRedis.pool.maxTotal}" ) private int maxTotal; @Value ( "${myRedis.pool.maxIdle}" ) private int maxIdle; @Value ( "${myRedis.pool.maxWaitMillis}" ) private long maxWaitMillis; @Value ( "${myRedis.pool.testOnBorrow}" ) private boolean testOnBorrow; @Value ( "${myRedis.hostname}" ) private String hostname; @Value ( "${myRedis.port}" ) private int port; @Value ( "${myjdbc.username}" ) private String jdbcUsername; @Autowired private JedisPoolConfig jedisPoolConfig; @Autowired private JedisPoolWriper jedisPoolWriper; @Autowired private JedisUtil jedisUtil; @Bean ( "jedisPoolConfig" ) public JedisPoolConfig createJedisPoolConfig(){ JedisPoolConfig jedisPoolConfig = new JedisPoolConfig(); jedisPoolConfig.setMaxIdle(maxIdle); jedisPoolConfig.setMaxTotal(maxTotal); jedisPoolConfig.setMaxWaitMillis(maxWaitMillis); jedisPoolConfig.setTestOnBorrow(testOnBorrow); return jedisPoolConfig; } @Bean ( "jedisPoolWriper" ) public JedisPoolWriper createJedisPoolWriper(){ JedisPoolWriper jedisPoolWriper = new JedisPoolWriper(jedisPoolConfig, hostname, port); System.out.println(hostname+ "!!!!!!!!!!!!!" ); return jedisPoolWriper; } @Bean ( "jedisUtil" ) public JedisUtil createJedisUtil(){ JedisUtil jedisUtil = new JedisUtil(); jedisUtil.setJedisPool(jedisPoolWriper); return jedisUtil; } @Bean ( "jedisKeys" ) public JedisUtil.Keys createJedisKeys(){ JedisUtil.Keys keys = jedisUtil. new Keys(); return keys; } @Bean ( "jedisStrings" ) public JedisUtil.Strings createJedisStrings(){ JedisUtil.Strings strings = jedisUtil. new Strings(); return strings; } } |
将@autowired改成@resource后报错,问题是这个redis类获取不到配置表里面的信息,全部配置项都获取不到,但是未改动配置的情况下,在dao层的直接获取是能够获取到信息的,让我百思不得其解,这是为什么呢
报错信息如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 | "C:\Program Files\Java\jdk1.8.0_221\bin\java.exe" -agentlib:jdwp=transport=dt_socket,address= 127.0 . 0.1 : 54757 ,suspend=y,server=n -ea -Didea.test.cyclic.buffer.size= 1048576 -javaagent:C:\Users\LR\.IntelliJIdea2019. 2 \system\captureAgent\debugger-agent.jar -Dfile.encoding=UTF- 8 -classpath "E:\IntelliJ IDEA 2019.2.2\lib\idea_rt.jar;E:\IntelliJ IDEA 2019.2.2\plugins\junit\lib\junit-rt.jar;E:\IntelliJ IDEA 2019.2.2\plugins\junit\lib\junit5-rt.jar;C:\Program Files\Java\jdk1.8.0_221\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.8.0_221\jre\lib\deploy.jar;C:\Program Files\Java\jdk1.8.0_221\jre\lib\ext\access-bridge-64.jar;C:\Program Files\Java\jdk1.8.0_221\jre\lib\ext\cldrdata.jar;C:\Program Files\Java\jdk1.8.0_221\jre\lib\ext\dnsns.jar;C:\Program Files\Java\jdk1.8.0_221\jre\lib\ext\jaccess.jar;C:\Program Files\Java\jdk1.8.0_221\jre\lib\ext\jfxrt.jar;C:\Program Files\Java\jdk1.8.0_221\jre\lib\ext\localedata.jar;C:\Program Files\Java\jdk1.8.0_221\jre\lib\ext\nashorn.jar;C:\Program Files\Java\jdk1.8.0_221\jre\lib\ext\sunec.jar;C:\Program Files\Java\jdk1.8.0_221\jre\lib\ext\sunjce_provider.jar;C:\Program Files\Java\jdk1.8.0_221\jre\lib\ext\sunmscapi.jar;C:\Program Files\Java\jdk1.8.0_221\jre\lib\ext\sunpkcs11.jar;C:\Program Files\Java\jdk1.8.0_221\jre\lib\ext\zipfs.jar;C:\Program Files\Java\jdk1.8.0_221\jre\lib\javaws.jar;C:\Program Files\Java\jdk1.8.0_221\jre\lib\jce.jar;C:\Program Files\Java\jdk1.8.0_221\jre\lib\jfr.jar;C:\Program Files\Java\jdk1.8.0_221\jre\lib\jfxswt.jar;C:\Program Files\Java\jdk1.8.0_221\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.8.0_221\jre\lib\management-agent.jar;C:\Program Files\Java\jdk1.8.0_221\jre\lib\plugin.jar;C:\Program Files\Java\jdk1.8.0_221\jre\lib\resources.jar;C:\Program Files\Java\jdk1.8.0_221\jre\lib\rt.jar;E:\JAVAEE\o2ov2\target\test-classes;E:\JAVAEE\o2ov2\target\classes;C:\Users\LR\.m2\repository\org\springframework\boot\spring-boot-starter-web\2.2.1.RELEASE\spring-boot-starter-web-2.2.1.RELEASE.jar;C:\Users\LR\.m2\repository\org\springframework\boot\spring-boot-starter\2.2.1.RELEASE\spring-boot-starter-2.2.1.RELEASE.jar;C:\Users\LR\.m2\repository\org\springframework\boot\spring-boot\2.2.1.RELEASE\spring-boot-2.2.1.RELEASE.jar;C:\Users\LR\.m2\repository\org\springframework\boot\spring-boot-autoconfigure\2.2.1.RELEASE\spring-boot-autoconfigure-2.2.1.RELEASE.jar;C:\Users\LR\.m2\repository\org\springframework\boot\spring-boot-starter-logging\2.2.1.RELEASE\spring-boot-starter-logging-2.2.1.RELEASE.jar;C:\Users\LR\.m2\repository\org\apache\logging\log4j\log4j-to-slf4j\2.12.1\log4j-to-slf4j-2.12.1.jar;C:\Users\LR\.m2\repository\org\apache\logging\log4j\log4j-api\2.12.1\log4j-api-2.12.1.jar;C:\Users\LR\.m2\repository\org\slf4j\jul-to-slf4j\1.7.29\jul-to-slf4j-1.7.29.jar;C:\Users\LR\.m2\repository\jakarta\annotation\jakarta.annotation-api\1.3.5\jakarta.annotation-api-1.3.5.jar;C:\Users\LR\.m2\repository\org\yaml\snakeyaml\1.25\snakeyaml-1.25.jar;C:\Users\LR\.m2\repository\org\springframework\boot\spring-boot-starter-json\2.2.1.RELEASE\spring-boot-starter-json-2.2.1.RELEASE.jar;C:\Users\LR\.m2\repository\com\fasterxml\jackson\datatype\jackson-datatype-jdk8\2.10.0\jackson-datatype-jdk8-2.10.0.jar;C:\Users\LR\.m2\repository\com\fasterxml\jackson\datatype\jackson-datatype-jsr310\2.10.0\jackson-datatype-jsr310-2.10.0.jar;C:\Users\LR\.m2\repository\com\fasterxml\jackson\module\jackson-module-parameter-names\2.10.0\jackson-module-parameter-names-2.10.0.jar;C:\Users\LR\.m2\repository\org\springframework\boot\spring-boot-starter-tomcat\2.2.1.RELEASE\spring-boot-starter-tomcat-2.2.1.RELEASE.jar;C:\Users\LR\.m2\repository\org\apache\tomcat\embed\tomcat-embed-core\9.0.27\tomcat-embed-core-9.0.27.jar;C:\Users\LR\.m2\repository\org\apache\tomcat\embed\tomcat-embed-el\9.0.27\tomcat-embed-el-9.0.27.jar;C:\Users\LR\.m2\repository\org\apache\tomcat\embed\tomcat-embed-websocket\9.0.27\tomcat-embed-websocket-9.0.27.jar;C:\Users\LR\.m2\repository\org\springframework\boot\spring-boot-starter-validation\2.2.1.RELEASE\spring-boot-starter-validation-2.2.1.RELEASE.jar;C:\Users\LR\.m2\repository\jakarta\validation\jakarta.validation-api\2.0.1\jakarta.validation-api-2.0.1.jar;C:\Users\LR\.m2\repository\org\hibernate\validator\hibernate-validator\6.0.18.Final\hibernate-validator-6.0.18.Final.jar;C:\Users\LR\.m2\repository\org\jboss\logging\jboss-logging\3.4.1.Final\jboss-logging-3.4.1.Final.jar;C:\Users\LR\.m2\repository\com\fasterxml\classmate\1.5.1\classmate-1.5.1.jar;C:\Users\LR\.m2\repository\org\springframework\spring-web\5.2.1.RELEASE\spring-web-5.2.1.RELEASE.jar;C:\Users\LR\.m2\repository\org\springframework\spring-beans\5.2.1.RELEASE\spring-beans-5.2.1.RELEASE.jar;C:\Users\LR\.m2\repository\org\springframework\spring-webmvc\5.2.1.RELEASE\spring-webmvc-5.2.1.RELEASE.jar;C:\Users\LR\.m2\repository\org\springframework\spring-aop\5.2.1.RELEASE\spring-aop-5.2.1.RELEASE.jar;C:\Users\LR\.m2\repository\org\springframework\spring-context\5.2.1.RELEASE\spring-context-5.2.1.RELEASE.jar;C:\Users\LR\.m2\repository\org\springframework\spring-expression\5.2.1.RELEASE\spring-expression-5.2.1.RELEASE.jar;C:\Users\LR\.m2\repository\org\myBatis\spring\boot\mybatis-spring-boot-starter\2.1.1\mybatis-spring-boot-starter-2.1.1.jar;C:\Users\LR\.m2\repository\org\springframework\boot\spring-boot-starter-jdbc\2.2.1.RELEASE\spring-boot-starter-jdbc-2.2.1.RELEASE.jar;C:\Users\LR\.m2\repository\com\zaxxer\HikariCP\3.4.1\HikariCP-3.4.1.jar;C:\Users\LR\.m2\repository\org\springframework\spring-jdbc\5.2.1.RELEASE\spring-jdbc-5.2.1.RELEASE.jar;C:\Users\LR\.m2\repository\org\springframework\spring-tx\5.2.1.RELEASE\spring-tx-5.2.1.RELEASE.jar;C:\Users\LR\.m2\repository\org\myBatis\spring\boot\mybatis-spring-boot-autoconfigure\2.1.1\mybatis-spring-boot-autoconfigure-2.1.1.jar;C:\Users\LR\.m2\repository\org\myBatis\mybatis\3.5.3\mybatis-3.5.3.jar;C:\Users\LR\.m2\repository\org\myBatis\mybatis-spring\2.0.3\mybatis-spring-2.0.3.jar;C:\Users\LR\.m2\repository\org\springframework\boot\spring-boot-starter-test\2.2.1.RELEASE\spring-boot-starter-test-2.2.1.RELEASE.jar;C:\Users\LR\.m2\repository\org\springframework\boot\spring-boot-test\2.2.1.RELEASE\spring-boot-test-2.2.1.RELEASE.jar;C:\Users\LR\.m2\repository\org\springframework\boot\spring-boot-test-autoconfigure\2.2.1.RELEASE\spring-boot-test-autoconfigure-2.2.1.RELEASE.jar;C:\Users\LR\.m2\repository\com\jayway\jsonpath\json-path\2.4.0\json-path-2.4.0.jar;C:\Users\LR\.m2\repository\net\minidev\json-smart\2.3\json-smart-2.3.jar;C:\Users\LR\.m2\repository\net\minidev\accessors-smart\1.2\accessors-smart-1.2.jar;C:\Users\LR\.m2\repository\org\ow2\asm\asm\5.0.4\asm-5.0.4.jar;C:\Users\LR\.m2\repository\jakarta\xml\bind\jakarta.xml.bind-api\2.3.2\jakarta.xml.bind-api-2.3.2.jar;C:\Users\LR\.m2\repository\jakarta\activation\jakarta.activation-api\1.2.1\jakarta.activation-api-1.2.1.jar;C:\Users\LR\.m2\repository\org\junit\jupiter\junit-jupiter\5.5.2\junit-jupiter-5.5.2.jar;C:\Users\LR\.m2\repository\org\junit\jupiter\junit-jupiter-api\5.5.2\junit-jupiter-api-5.5.2.jar;C:\Users\LR\.m2\repository\org\apiguardian\apiguardian-api\1.1.0\apiguardian-api-1.1.0.jar;C:\Users\LR\.m2\repository\org\opentest4j\opentest4j\1.2.0\opentest4j-1.2.0.jar;C:\Users\LR\.m2\repository\org\junit\platform\junit-platform-commons\1.5.2\junit-platform-commons-1.5.2.jar;C:\Users\LR\.m2\repository\org\junit\jupiter\junit-jupiter-params\5.5.2\junit-jupiter-params-5.5.2.jar;C:\Users\LR\.m2\repository\org\junit\jupiter\junit-jupiter-engine\5.5.2\junit-jupiter-engine-5.5.2.jar;C:\Users\LR\.m2\repository\org\junit\platform\junit-platform-engine\1.5.2\junit-platform-engine-1.5.2.jar;C:\Users\LR\.m2\repository\org\mockito\mockito-junit-jupiter\3.1.0\mockito-junit-jupiter-3.1.0.jar;C:\Users\LR\.m2\repository\org\assertj\assertj-core\3.13.2\assertj-core-3.13.2.jar;C:\Users\LR\.m2\repository\org\hamcrest\hamcrest\2.1\hamcrest-2.1.jar;C:\Users\LR\.m2\repository\org\mockito\mockito-core\3.1.0\mockito-core-3.1.0.jar;C:\Users\LR\.m2\repository\net\bytebuddy\byte-buddy\1.10.2\byte-buddy-1.10.2.jar;C:\Users\LR\.m2\repository\net\bytebuddy\byte-buddy-agent\1.10.2\byte-buddy-agent-1.10.2.jar;C:\Users\LR\.m2\repository\org\objenesis\objenesis\2.6\objenesis-2.6.jar;C:\Users\LR\.m2\repository\org\skyscreamer\jsonassert\1.5.0\jsonassert-1.5.0.jar;C:\Users\LR\.m2\repository\com\vaadin\external\google\android-json\0.0.20131108.vaadin1\android-json-0.0.20131108.vaadin1.jar;C:\Users\LR\.m2\repository\org\springframework\spring-core\5.2.1.RELEASE\spring-core-5.2.1.RELEASE.jar;C:\Users\LR\.m2\repository\org\springframework\spring-jcl\5.2.1.RELEASE\spring-jcl-5.2.1.RELEASE.jar;C:\Users\LR\.m2\repository\org\springframework\spring-test\5.2.1.RELEASE\spring-test-5.2.1.RELEASE.jar;C:\Users\LR\.m2\repository\org\xmlunit\xmlunit-core\2.6.3\xmlunit-core-2.6.3.jar;C:\Users\LR\.m2\repository\junit\junit\4.12\junit-4.12.jar;C:\Users\LR\.m2\repository\org\hamcrest\hamcrest-core\2.1\hamcrest-core-2.1.jar;C:\Users\LR\.m2\repository\ch\qos\logback\logback-classic\1.2.3\logback-classic-1.2.3.jar;C:\Users\LR\.m2\repository\ch\qos\logback\logback-core\1.2.3\logback-core-1.2.3.jar;C:\Users\LR\.m2\repository\org\slf4j\slf4j-api\1.7.29\slf4j-api-1.7.29.jar;C:\Users\LR\.m2\repository\com\fasterxml\jackson\core\jackson-databind\2.10.0\jackson-databind-2.10.0.jar;C:\Users\LR\.m2\repository\com\fasterxml\jackson\core\jackson-annotations\2.10.0\jackson-annotations-2.10.0.jar;C:\Users\LR\.m2\repository\com\fasterxml\jackson\core\jackson-core\2.10.0\jackson-core-2.10.0.jar;C:\Users\LR\.m2\repository\commons-collections\commons-collections\3.2.2\commons-collections-3.2.2.jar;C:\Users\LR\.m2\repository\mysql\mysql-connector-java\8.0.17\mysql-connector-java-8.0.17.jar;C:\Users\LR\.m2\repository\com\mchange\c3p0\0.9.5.4\c3p0-0.9.5.4.jar;C:\Users\LR\.m2\repository\com\mchange\mchange-commons-java\0.2.15\mchange-commons-java-0.2.15.jar;C:\Users\LR\.m2\repository\net\coobird\thumbnailator\0.4.8\thumbnailator-0.4.8.jar;C:\Users\LR\.m2\repository\com\github\penggle\kaptcha\2.3.2\kaptcha-2.3.2.jar;C:\Users\LR\.m2\repository\javax\servlet\javax.servlet-api\4.0.1\javax.servlet-api-4.0.1.jar;C:\Users\LR\.m2\repository\com\jhlabs\filters\2.0.235-1\filters-2.0.235-1.jar;C:\Users\LR\.m2\repository\commons-fileupload\commons-fileupload\1.3.2\commons-fileupload-1.3.2.jar;C:\Users\LR\.m2\repository\commons-io\commons-io\2.2\commons-io-2.2.jar;C:\Users\LR\.m2\repository\redis\clients\jedis\3.1.0\jedis-3.1.0.jar;C:\Users\LR\.m2\repository\org\apache\commons\commons-pool2\2.7.0\commons-pool2-2.7.0.jar" com.intellij.rt.execution.junit.JUnitStarter -ideVersion5 -junit4 com.om.o2ov2.service.AreaServiceTest,testGetAreaList Connected to the target VM, address: '127.0.0.1:54757' , transport: 'socket' 2019 - 11 - 19 15 : 21 : 49.891 [main]INFO o.s.b.t.context.SpringBootTestContextBootstrapper - Neither @ContextConfiguration nor @ContextHierarchy found for test class [com.om.o2ov2.service.AreaServiceTest], using SpringBootContextLoader 2019 - 11 - 19 15 : 21 : 49.897 [main]INFO o.s.test.context.support.AbstractContextLoader - Could not detect default resource locations for test class [com.om.o2ov2.service.AreaServiceTest]: no resource found for suffixes {-context.xml, Context.groovy}. 2019 - 11 - 19 15 : 21 : 49.898 [main]INFO o.s.t.c.support.AnnotationConfigContextLoaderUtils - Could not detect default configuration classes for test class [com.om.o2ov2.service.AreaServiceTest]: AreaServiceTest does not declare any static , non- private , non- final , nested classes annotated with @Configuration . 2019 - 11 - 19 15 : 21 : 50.035 [main]INFO o.s.b.t.context.SpringBootTestContextBootstrapper - Found @SpringBootConfiguration com.om.o2ov2.O2ov2Application for test class com.om.o2ov2.service.AreaServiceTest 2019 - 11 - 19 15 : 21 : 50.147 [main]INFO o.s.b.t.context.SpringBootTestContextBootstrapper - Loaded default TestExecutionListener class names from location [META-INF/spring.factories]: [org.springframework.boot.test.mock.mockito.MockitoTestExecutionListener, org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener, org.springframework.boot.test.autoconfigure.restdocs.RestDocsTestExecutionListener, org.springframework.boot.test.autoconfigure.web.client.MockRestServiceServerResetTestExecutionListener, org.springframework.boot.test.autoconfigure.web.servlet.MockMvcPrintOnlyOnFailureTestExecutionListener, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverTestExecutionListener, org.springframework.test.context.web.ServletTestExecutionListener, org.springframework.test.context.support.DirtiesContextBeforeModesTestExecutionListener, org.springframework.test.context.support.DependencyInjectionTestExecutionListener, org.springframework.test.context.support.DirtiesContextTestExecutionListener, org.springframework.test.context.transaction.TransactionalTestExecutionListener, org.springframework.test.context.jdbc.SqlScriptsTestExecutionListener, org.springframework.test.context.event.EventPublishingTestExecutionListener] 2019 - 11 - 19 15 : 21 : 50.161 [main]INFO o.s.b.t.context.SpringBootTestContextBootstrapper - Using TestExecutionListeners: [org.springframework.test.context.web.ServletTestExecutionListener @19648c40 , org.springframework.test.context.support.DirtiesContextBeforeModesTestExecutionListener @12bd8a64 , org.springframework.boot.test.mock.mockito.MockitoTestExecutionListener @61e94def , org.springframework.boot.test.autoconfigure.SpringBootDependencyInjectionTestExecutionListener @3300f4fd , org.springframework.test.context.support.DirtiesContextTestExecutionListener @ebb6851 , org.springframework.test.context.transaction.TransactionalTestExecutionListener @70ab2d48 , org.springframework.test.context.jdbc.SqlScriptsTestExecutionListener @5b068087 , org.springframework.test.context.event.EventPublishingTestExecutionListener @6f152006 , org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener @3a393455 , org.springframework.boot.test.autoconfigure.restdocs.RestDocsTestExecutionListener @13518f37 , org.springframework.boot.test.autoconfigure.web.client.MockRestServiceServerResetTestExecutionListener @7cbc3762 , org.springframework.boot.test.autoconfigure.web.servlet.MockMvcPrintOnlyOnFailureTestExecutionListener @3a6f2de3 , org.springframework.boot.test.autoconfigure.web.servlet.WebDriverTestExecutionListener @49872d67 ] . ____ _ __ _ _ /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ ( ( )\___ | '_ | ' _| | '_ \/ _` | \ \ \ \ \\/ ___)| |_)| | | | | || (_| | ) ) ) ) ' |____| .__|_| |_|_| |_\__, | / / / / =========|_|==============|___/=/_/_/_/ :: Spring Boot :: (v2. 2.1 .RELEASE) 2019 - 11 - 19 15 : 21 : 50.514 [main]INFO com.om.o2ov2.service.AreaServiceTest - Starting AreaServiceTest on DESKTOP-F3MIKR7 with PID 1228 (started by LR in E:\JAVAEE\o2ov2) 2019 - 11 - 19 15 : 21 : 50.514 [main]DEBUG com.om.o2ov2.service.AreaServiceTest - Running with Spring Boot v2. 2.1 .RELEASE, Spring v5. 2.1 .RELEASE 2019 - 11 - 19 15 : 21 : 50.514 [main]INFO com.om.o2ov2.service.AreaServiceTest - No active profile set, falling back to default profiles: default 2019 - 11 - 19 15 : 21 : 51.426 [MLog-Init-Reporter]INFO com.mchange.v2.log.MLog - MLog clients using slf4j logging. 2019 - 11 - 19 15 : 21 : 51.550 [main]INFO com.mchange.v2.c3p0.C3P0Registry - Initializing c3p0- 0.9 . 5.4 [built 23 -March- 2019 23 : 00 : 48 - 0700 ; debug? true ; trace: 10 ] null !!!!!!!!!!!!! 2019 - 11 - 19 15 : 21 : 52.491 [main]INFO o.s.scheduling.concurrent.ThreadPoolTaskExecutor - Initializing ExecutorService 'applicationTaskExecutor' 2019 - 11 - 19 15 : 21 : 52.839 [main]INFO com.om.o2ov2.service.AreaServiceTest - Started AreaServiceTest in 2.623 seconds (JVM running for 3.623 ) 2019 - 11 - 19 15 : 21 : 53.058 [main]INFO c.m.v2.c3p0.impl.AbstractPoolBackedDataSource - Initializing c3p0 pool... com.mchange.v2.c3p0.ComboPooledDataSource [ acquireIncrement -> 3 , acquireRetryAttempts -> 2 , acquireRetryDelay -> 1000 , autoCommitOnClose -> false , automaticTestTable -> null , breakAfterAcquireFailure -> false , checkoutTimeout -> 10000 , connectionCustomizerClassName -> null , connectionTesterClassName -> com.mchange.v2.c3p0.impl.DefaultConnectionTester, contextClassLoaderSource -> caller, dataSourceName -> 1hgex35a6107x1ed6gtn1l|df921b1, debugUnreturnedConnectionStackTraces -> false , description -> null , driverClass -> com.mysql.cj.jdbc.Driver, extensions -> {}, factoryClassLocation -> null , forceIgnoreUnresolvedTransactions -> false , forceSynchronousCheckins -> false , forceUseNamedDriverClass -> false , identityToken -> 1hgex35a6107x1ed6gtn1l|df921b1, idleConnectionTestPeriod -> 0 , initialPoolSize -> 3 , jdbcUrl -> jdbc:mysql: //localhost:3306/o2o?userSSL=false&serverTimezone=Hongkong&useUnicode=true&characterEncoding=utf8, maxAdministrativeTaskTime -> 0, maxConnectionAge -> 0, maxIdleTime -> 0, maxIdleTimeExcessConnections -> 0, maxPoolSize -> 30, maxStatements -> 0, maxStatementsPerConnection -> 0, minPoolSize -> 10, numHelperThreads -> 3, preferredTestQuery -> null, privilegeSpawnedThreads -> false, properties -> {user=******, password=******}, propertyCycle -> 0, statementCacheNumDeferredCloseThreads -> 0, testConnectionOnCheckin -> false, testConnectionOnCheckout -> false, unreturnedConnectionTimeout -> 0, userOverrides -> {}, usesTraditionalReflectiveProxies -> false ] 2019 - 11 - 19 15 : 21 : 53.068 [main]WARN com.mchange.v2.resourcepool.BasicResourcePool - Bad pool size config, start 3 < min 10 . Using 10 as start. redis.clients.jedis.exceptions.JedisExhaustedPoolException: Could not get a resource since the pool is exhausted at redis.clients.jedis.util.Pool.getResource(Pool.java: 53 ) at redis.clients.jedis.JedisPool.getResource(JedisPool.java: 234 ) at com.om.o2ov2.cache.JedisUtil.getJedis(JedisUtil.java: 23 ) at com.om.o2ov2.cache.JedisUtil$Keys.exists(JedisUtil.java: 65 ) at com.om.o2ov2.service.impl.AreaServiceImpl.getAreaList(AreaServiceImpl.java: 38 ) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java: 62 ) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java: 43 ) at java.lang.reflect.Method.invoke(Method.java: 498 ) at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java: 344 ) at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java: 198 ) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java: 163 ) at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java: 366 ) at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java: 99 ) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java: 186 ) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java: 212 ) at com.sun.proxy.$Proxy75.getAreaList(Unknown Source) at com.om.o2ov2.service.AreaServiceTest.testGetAreaList(AreaServiceTest.java: 28 ) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java: 62 ) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java: 43 ) at java.lang.reflect.Method.invoke(Method.java: 498 ) at org.junit.runners.model.FrameworkMethod$ 1 .runReflectiveCall(FrameworkMethod.java: 50 ) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java: 12 ) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java: 47 ) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java: 17 ) at org.springframework.test.context.junit4.statements.RunBeforeTestExecutionCallbacks.evaluate(RunBeforeTestExecutionCallbacks.java: 74 ) at org.springframework.test.context.junit4.statements.RunAfterTestExecutionCallbacks.evaluate(RunAfterTestExecutionCallbacks.java: 84 ) at org.springframework.test.context.junit4.statements.RunBeforeTestMethodCallbacks.evaluate(RunBeforeTestMethodCallbacks.java: 75 ) at org.springframework.test.context.junit4.statements.RunAfterTestMethodCallbacks.evaluate(RunAfterTestMethodCallbacks.java: 86 ) at org.springframework.test.context.junit4.statements.SpringRepeat.evaluate(SpringRepeat.java: 84 ) at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java: 325 ) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java: 251 ) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java: 97 ) at org.junit.runners.ParentRunner$ 3 .run(ParentRunner.java: 290 ) at org.junit.runners.ParentRunner$ 1 .schedule(ParentRunner.java: 71 ) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java: 288 ) at org.junit.runners.ParentRunner.access$ 000 (ParentRunner.java: 58 ) at org.junit.runners.ParentRunner$ 2 .evaluate(ParentRunner.java: 268 ) at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java: 61 ) at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java: 70 ) at org.junit.runners.ParentRunner.run(ParentRunner.java: 363 ) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java: 190 ) at org.junit.runner.JUnitCore.run(JUnitCore.java: 137 ) at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java: 68 ) at com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java: 47 ) at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java: 242 ) at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java: 70 ) Caused by: java.util.NoSuchElementException: Timeout waiting for idle object at org.apache.commons.pool2.impl.GenericObjectPool.borrowObject(GenericObjectPool.java: 439 ) at org.apache.commons.pool2.impl.GenericObjectPool.borrowObject(GenericObjectPool.java: 349 ) at redis.clients.jedis.util.Pool.getResource(Pool.java: 50 ) ... 47 more |
38
收起
正在回答
1回答
同学你好!
根据同学提供的信息老师测试了一下,的确是会有这个问题,于是老师跟踪源码看了一下,发现:
使用@autowired时可以正常获取到配置文件的数据
使用@Resource是无法正常获取到配置文件的顺序
根据以上现象,同样的代码,不同的注解导致的不同结果,因此老师推测:是 Autowired 和 Resource 的注入时机不一样,导致用 Resource 注入的时候 property 根本还没注入进来,这两个注解如果同学感兴趣有时间可以研究一下源码。
在dao层其实没有实际调用redis,因此只要编译通过就可以正常运行,测试dao层时使用Resource 注解,并没有报错
如果我的回答解决了你的疑惑,请采纳,祝学习愉快~
4. SSM到Spring Boot入门与综合实战
- 参与学习 人
- 提交作业 323 份
- 解答问题 8263 个
本阶段将带你学习主流框架SSM,以及SpringBoot ,打通成为Java工程师的最后一公里!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧