Java Spring缓存组件扫描信息/autowire能否缩短启动时间?

Java Spring缓存组件扫描信息/autowire能否缩短启动时间?,java,spring,google-app-engine,caching,ioc-container,Java,Spring,Google App Engine,Caching,Ioc Container,是否可以配置Spring缓存组件扫描/自动布线信息,以缩短从一个启动到另一个启动的启动时间?我正在调查首次在Spring应用程序中使用GAE,根据研究报告,他们建议几乎禁用Spring提供的所有实用功能,以加快开发速度。例如:组件扫描、自动连接、使用lazyinitbean等。基本上所有需要花费更长时间来设置容器的事情 虽然我理解所有这些建议背后的原则,但我发现它在开发过程中几乎倒退了一步。如果Spring能够生成一个缓存文件,它可以为未来的创业公司提供参考,以避免每次都需要进行完整的组件扫描等

是否可以配置Spring缓存组件扫描/自动布线信息,以缩短从一个启动到另一个启动的启动时间?我正在调查首次在Spring应用程序中使用GAE,根据研究报告,他们建议几乎禁用Spring提供的所有实用功能,以加快开发速度。例如:组件扫描、自动连接、使用lazyinitbean等。基本上所有需要花费更长时间来设置容器的事情

虽然我理解所有这些建议背后的原则,但我发现它在开发过程中几乎倒退了一步。如果Spring能够生成一个缓存文件,它可以为未来的创业公司提供参考,以避免每次都需要进行完整的组件扫描等,那么它将非常有趣/有用


是否存在类似的功能?

该功能目前不存在,其主要问题是在初创企业之间将信息存储在何处,必须授予文件系统中目录的访问权限,等等

加速启动的通常方法是对只包含可扫描类集的子包进行组件扫描,或者避免完全扫描,而是使用XML


另外,如果涉及到像Hibernate这样的ORM框架,我会帮助关闭模式验证。使用惰性初始化bean还可以减少启动时间,目前除了这些措施之外,没有其他方法可以减少启动时间。

在启动时的性能方面做了大量工作。例如,如果您在构建时使用hk2居民生成器,它可以将一个文件添加到您的jar中(在META-INF/hk2 locator/default下),该文件提供可以使用hk2注入和/或加载的服务列表。这样做的好处是,在启动时,服务可以在HK2中“可用”,而无需类加载任何服务。这反过来又可以极大地提高启动时间(这就是我们在GlassFish等产品中获得极快启动时间的原因)。您可以将其与hk2运行级服务相结合,以结构化方式启动您的系统。此外,如果您使用Spring,有一个Spring-HK2桥,如果您愿意,它将允许您将大部分服务保留在Spring中。但显然,保留在Spring中的服务不会从HK2中提供的延迟类加载中受益。

您也可以在服务器运行时使用JRebel之类的工具替换所需的内容,从而绕过最小化启动/连接时间的需要