Spring Data JPA - 缓慢为存储库创建bean

时间:2016-10-05 13:19:44

标签: java spring spring-data spring-data-jpa wildfly

记录

在我的项目中,我有大约50个JpaRepositories。其中大多数都在主要的Web应用程序WAR中。一些是在6个外部JAR中编译成主要的WAR。我的应用服务器是Wildfly 8.2.0 Final。我今天在日志中发现,从JPA Repositories创建Spring bean会占用我的机器 20秒。我有一个不那么老的i5和SSD。我有Spring 4.2和Spring Data JPA 1.9.4。

问题

这太长了。 任何人都知道如何加速Spring Data JPA存储库的bean创建或者查找哪些错误?

其他信息

我按如下方式配置了Spring Data JPA:

@Configuration
@EnableTransactionManagement
@EnableJpaRepositories(basePackages = {"pl.company"}, entityManagerFactoryRef = "myEmf")
@ComponentScan(basePackages = {"pl.company"})
public class PersistenceJPAConfig { 

以下是Wildfly 8.2.0中的日志:

https://gist.github.com/anonymous/540c79a4e8456a28aa52a2ea640553b0

需要很长时间的重复片段:

14:30:13,930 DEBUG [org.springframework.core.env.StandardEnvironment] (MSC service thread 1-3) Adding [systemProperties] PropertySource with lowest search precedence
14:30:13,930 DEBUG [org.springframework.core.env.StandardEnvironment] (MSC service thread 1-3) Adding [systemEnvironment] PropertySource with lowest search precedence
14:30:13,930 DEBUG [org.springframework.core.env.StandardEnvironment] (MSC service thread 1-3) Initialized StandardEnvironment with PropertySources [systemProperties,systemEnvironment]
14:30:13,930 DEBUG [org.springframework.core.io.support.PathMatchingResourcePatternResolver] (MSC service thread 1-3) Resolved classpath location [pl/company/] to resources [URL [vfs:/C:/Java/wildfly-8.2.0.Final/bin/content/BDOS.war/WEB-INF/classes/pl/company/], URL [vfs:/C:/Java/wildfly-8.2.0.Final/bin/content/BDOS.war/WEB-INF/lib/energetyka-coretypes-1.1.2-umarsz.jar/pl/company/], URL [vfs:/C:/Java/wildfly-8.2.0.Final/bin/content/BDOS.war/WEB-INF/lib/energetyka-wicket-components-1.0.4-umarsz-SNAPSHOT.jar/pl/company/], URL [vfs:/C:/Java/wildfly-8.2.0.Final/bin/content/BDOS.war/WEB-INF/lib/licensing-1.0.8.jar/pl/company/], URL [vfs:/C:/Java/wildfly-8.2.0.Final/bin/content/BDOS.war/WEB-INF/lib/reports-1.0.7-SNAPSHOT.jar/pl/company/], URL [vfs:/C:/Java/wildfly-8.2.0.Final/bin/content/BDOS.war/WEB-INF/lib/system-parameters-1.2.1.jar/pl/company/], URL [vfs:/C:/Java/wildfly-8.2.0.Final/bin/content/BDOS.war/WEB-INF/lib/wicketWebComponents-1.0-SNAPSHOT.jar/pl/company/]]
14:30:14,295 DEBUG [org.springframework.core.io.support.PathMatchingResourcePatternResolver] (MSC service thread 1-3) Resolved location pattern [classpath*:pl/company/**/*GokCommunity2016Table4RepositoryImpl.class] to resources []
14:30:14,296 DEBUG [org.springframework.data.repository.config.RepositoryConfigurationDelegate] (MSC service thread 1-3) Spring Data JPA - Registering repository: gokCommunity2016Table4Repository - Interface: pl.company.zaprogs.web.statements.repository.gok2016.communityStatement.GokCommunity2016Table4Repository - Factory: org.springframework.data.jpa.repository.support.JpaRepositoryFactoryBean

1 个答案:

答案 0 :(得分:0)

通过将Spring Data JPA从1.9.4升级到1.11.10解决了这个问题。此特定部分现在在3而不是52秒内执行。