日常開發SpringBoot項目啟動類都用@SpringBootApplication,實際上它是下面三個注解的組合:
@EnableAutoConfiguration
: enable Spring Boot’s auto-configuration mechanism@ComponentScan
: enable@Component
scan on the package where the application is located (see the best practices)@Configuration
: allow to register extra beans in the context or import additional configuration classes
啟動慢往往跟
@ComponentScan和
@EnableAutoConfiguration加載的內容太多有關,一種方法是不用這兩個注解,通過@import注解精確指定要加載掃描的類,但要加載的類多時又很麻煩,
可以用@SpringBootApplication注解下面的屬性:
- exclude: Exclude the list of classes from the auto configuration.
- excludeNames: Exclude the list of fully qualified class names from the auto configuration. This parameter added since spring boot 1.3.0.
- scanBasePackageClasses: Provide the list of classes that has to be applied for the @ComponentScan.
- scanBasePackages Provide the list of packages that has to be applied for the @ComponentScan. This parameter added since spring boot 1.3.0.
另外,如果SpringBoot項目啟動很慢,
可能
意味着你要重新拆分微服務。