今天加班没事,学习了下springBoot,先搭建一个简单的例子,虽然网上教程很多,但还是遇到了蛮多坑的,现在记录下:
1、pom.xml一直有红叉
解决办法:应该是jar包有冲突,删除.m2下面所有内容后,再次maven更新工程后解决。
2、工程一直有!号
解决办法:打开eclipse的Problems view,查看原因:cannot be read or is not a valid ZIP file,进入.m2目录,把所有jar包删除,然后maven更新工程后解决。
3、工程运行报错,Unable to start ServletWebServerApplicationContext due to missing ServletWebServerFactory bean
解决办法:在运行的bean中加入@EnableAutoConfiguration注解即可。
使用的工具:
eclipse: Oxygen.3a Release (4.7.3a)
jdk:1.8
说明下
@EnableAutoConfiguration注解
启用Spring应用程序上下文的自动配置,尝试猜测和配置您可能需要的bean。自动配置类通常基于类路径和定义的bean应用。例如,如果你有 tomcat-embedded.jar在您的类路径中,你可能会想要一个TomcatEmbeddedServletContainerFactory(除非你定义自己的EmbeddedServletContainerFactory bean)。
当使用SpringBootApplication时,上下文的自动配置将自动启用并添加此注释,因此不会产生额外的效果。
自动配置尝试尽可能地智能化,并且在您定义更多自己的配置时将会备份。您总是可以手工排除()任何您不想应用的配置(如果您无法访问它们的话)。您也可以通过spring. autoconfigure将它们排除。排除属性。在用户定义的bean被注册之后,自动配置总是被应用。
用@ enableautoconfiguration注释的类的包,通常通过@ springbootapplication,具有特殊的意义,经常被用作“默认”。例如,它将用于扫描@ entity类。通常建议在根包中放置@ enableautoconfiguration(如果您不使用@ springbootapplication),以便可以搜索所有子包和类。
自动配置类是常规的Spring配置bean。它们使用SpringFactoriesLoader机制(对该类进行键控)定位。通常,自动配置bean都是“有条件bean”(通常使用@ conditionalonclass和@ conditionalonmissingbean注释)。
所以配置后,就会自动找到tomcat,从而工程能够顺利运行。