1.@SpringBootConfiguration注解 @SpringBootConfiguration : SpringBoot 的配置类,标注在某个类上,表示这是一个 SpringBoot 的配置类。
2.@EnableAutoConfiguration注解 @EnableAutoConfiguration :开启自动配置功能,以前由我们需要配置的东西,现在由 SpringBoot 帮我们自动配置,这个注解就是 Springboot 能实现自动配置的关键。
3. @AutoConfigurationPackage注解的功能是由@Import注解实现的,它是 spring框架的底层注解,它的作用就是给容器中 导入某个组件类,例如 @Import(AutoConfigurationPackages.Registrar.class),它就是将Registrar这个组件类导入到容 器中,可查看Registrar类中registerBeanDefinitions方法,这个方法就是导入组件类的具体实现
4. @Import({AutoConfigurationImportSelector.class})注解 将 AutoConfigurationImportSelector 这个类导入到 Spring 容器 中, AutoConfigurationImportSelector 可以帮助 Springboot 应用将所有符合条件的 @Configuration 配置都加载到当 前 SpringBoot 创建并使用的 IOC 容器( ApplicationContext )中。
总结
因此springboot底层实现自动配置的步骤是:
1. springboot应用启动;
2. @SpringBootApplication起作用;
3. @EnableAutoConfiguration;
4. @AutoConfigurationPackage:这个组合注解主要是 @Import(AutoConfigurationPackages.Registrar.class),它通过将 Registrar类导入到容器中,而 Registrar类作用是扫描主配置类同级目录以及子包,并将相应的组件导入到springboot创建 管理的 容器中;
5. @Import(AutoConfigurationImportSelector.class):它通过将AutoConfigurationImportSelector 类导入到容器中, AutoConfigurationImportSelector类作用是通过selectImports方法执行的过程 中,会使用内部工具类 SpringFactoriesLoader,查找classpath上所有jar包中的METAINF/spring.factories进行加载,实现将配置类信息交给 SpringFactory加载器进行一系列的容器创 建过程
springboot支持的视窗技术
前端模板引擎技术的出现,使前端开发人员无需关注后端业务的具体实现,只关注自己页面的呈现效 果即可,并且解决了前端代码错综复杂的问题、实现了前后端分离开发。Spring Boot框架对很多常用的 模板引擎技术(如:FreeMarker、Thymeleaf、Mustache等)提供了整合支持
Spring Boot不太支持常用的JSP模板,并且没有提供对应的整合配置,这是因为使用嵌入式Servlet容 器的Spring Boot应 用程序对于JSP模板存在一些限制
在Jetty和Tomcat容器中,Spring Boot应用被打包成war文件可以支持JSP。但Spring Boot默认使 用嵌入式Servlet容 器以JAR包方式进行项目打包部署,这种JAR包方式不支持JSP。
如果使用Undertow嵌入式容器部署Spring Boot项目,也不支持JSP模板。(Undertow 是红帽公 司开发的一款基于 NIO 的高性能 Web 嵌入式服务器)
Spring Boot默认提供了一个处理请求路径“/error”的统一错误处理器,返回具体的异常信息。使用 JSP模板时,无法对 默认的错误处理器进行覆盖,只能根据Spring Boot要求在指定位置定制错误页 面。
上面对Spring Boot支持的模板引擎进行了介绍,并指出了整合JSP模板的一些限制。接下来,对其 中常用的Thymeleaf模板引擎进行介绍,并完成与Spring Boot框架的整合实现
Thymeleaf:
常用标签:
标准表达式:
**