当前位置: 首页 > news >正文

二级网站建设检查评比方案视频内容seo

二级网站建设检查评比方案,视频内容seo,哈尔滨市建设工程信息网官方网站,22虚拟主机怎么样前言 我们也知道springboot启用springmvc基本不用做什么配置可以很方便就使用了但是不了解原理,开发过程中遇到点问题估计就比较头疼,不管了解的深不深入,先巴拉一番再说… 下面我们先看看官网…我的版本是2.3.2版本,发现官网改动也比较大…不同版本自己巴拉下吧,结构虽然变化…

前言

我们也知道springboot启用springmvc基本不用做什么配置可以很方便就使用了但是不了解原理,开发过程中遇到点问题估计就比较头疼,不管了解的深不深入,先巴拉一番再说…
下面我们先看看官网…我的版本是2.3.2版本,发现官网改动也比较大…不同版本自己巴拉下吧,结构虽然变化了,但是内容变的不是很多…
有变动的 都标有: covered later in this document

springmvc 自动配置原理

官网上说明

在这里插入图片描述
自动配置在Spring的默认设置之上添加了以下功能

  • ContentNegotiatingViewResolver and BeanNameViewResolver
    这2个bean 配置在WebMvcAutoConfiguration中
  1. 自动配置了ViewResolver(视图解析器:根据方法的返回值得到视图对象(View),视图对象决定如何渲染(转发?重定向?))
  2. ContentNegotiatingViewResolver:组合所有的视图解析器的;
  3. 如何定制:我们可以自己给容器中添加一个视图解析器;自动的将其组合进来;
  4. 代码
@SpringBootApplication
public class ComWebApplication {public static void main(String[] args) {SpringApplication.run(ComWebApplication.class, args);}@Beanpublic ViewResolver myViewReolver(){return new MyViewResolver();}public static class MyViewResolver implements ViewResolver{@Overridepublic View resolveViewName(String viewName, Locale locale) throws Exception {return null;}}}
  • Support for serving static resources, including support for WebJars (see below).静态资源文件夹路径,webjars 在静态资源映射规则中已经讲解
  • 自动注册了 of Converter , GenericConverter , Formatter beans.
    Converter:转换器;
    public String hello(User user):类型转换使用Converter
    Formatter 格式化器; 2017.12.17===Date;
public void addFormatters(FormatterRegistry registry) {ApplicationConversionService.addBeans(registry, this.beanFactory);}

自己添加的格式化器转换器,我们只需要放在容器中即可

  • HttpMessageConverter:SpringMVC用来转换Http请求和响应的;User—Json;

  • -HttpMessageConverters 是从容器中确定;获取所有的HttpMessageConverter;
    自己给容器中添加HttpMessageConverter,只需要将自己的组件注册容器中(@Bean,@Component)

  • Automatic registration of MessageCodesResolver (see below).定义错误代码生成规则

  • Static index.html support. 静态首页 在静态资源映射规则中已经讲解

  • Custom Favicon support (covered later in this document). favicon.icon 在静态资源映射规则中已经讲解

  • Automatic use of a ConfigurableWebBindingInitializer bean (see below).
    我们可以配置一个ConfigurableWebBindingInitializer来替换默认的;(添加到容器)
    初始化WebDataBinder;
    请求数据=====JavaBean;

在这里插入图片描述

springmvc 扩展

springboot 自动配置远远不能满足我们的开发生产需要所以我们自己需要扩展一些功能
比如我们原来在springmvc的配置文件中写的

 <mvc:view‐controller path="/hello" view‐name="success"/><mvc:interceptors><mvc:interceptor><mvc:mapping path="/hello"/><bean></bean></mvc:interceptor></mvc:interceptors>

我们都需要进行根据实际需要进行配置

在这里插入图片描述
If you want to keep those Spring Boot MVC customizations and make more MVC customizations (interceptors, formatters, view controllers, and other features), you can add your own @Configuration class of type WebMvcConfigurer but without @EnableWebMvc.

如果要保留这些Spring Boot MVC定制并进行更多的MVC定制(拦截器,格式化程序,视图控制器和其他功能),则可以添加自己的类型为WebMvcConfigurer的@Configuration类,但不添加@EnableWebMvc。

@Configuration
public class MySpringMvcConfig implements WebMvcConfigurer {@Overridepublic void addViewControllers(ViewControllerRegistry registry) {//浏览器发送hello 跳转到success页面registry.addViewController("/hello").setViewName("success");}
}

编写一个配置类(@Configuration),是WebMvcConfigurer 类型;不能标注@EnableWebMvc;老版本是WebMvcConfigurerAdapter,这个是抽象类没有都是空方法
既保留了所有的自动配置,也能用我们扩展的配置;

我们一探究竟

原理:

  • WebMvcAutoConfiguration是SpringMVC的自动配置类
  • 、在做其他自动配置时会导入;@Import({WebMvcAutoConfiguration.EnableWebMvcConfiguration.class})
@Configuration(proxyBeanMethods = false)@Import({WebMvcAutoConfiguration.EnableWebMvcConfiguration.class})@EnableConfigurationProperties({WebMvcProperties.class, ResourceProperties.class})@Order(0)public static class WebMvcAutoConfigurationAdapter implements WebMvcConfigurer {

EnableWebMvcConfiguration类

  @Configuration(proxyBeanMethods = false)public static class EnableWebMvcConfiguration extends DelegatingWebMvcConfiguration implements ResourceLoaderAware {private final ResourceProperties resourceProperties;

EnableWebMvcConfiguration父类中

public class DelegatingWebMvcConfiguration extends WebMvcConfigurationSupport {private final WebMvcConfigurerComposite configurers = new WebMvcConfigurerComposite();public DelegatingWebMvcConfiguration() {}//从容器中获取所有的WebMvcConfigurer@Autowired(required = false)public void setConfigurers(List<WebMvcConfigurer> configurers) {if (!CollectionUtils.isEmpty(configurers)) {this.configurers.addWebMvcConfigurers(configurers);}}

//;将所有的WebMvcConfigurer相关配置都来一起调用;

public void addWebMvcConfigurers(List<WebMvcConfigurer> configurers) {if (!CollectionUtils.isEmpty(configurers)) {this.delegates.addAll(configurers);}}
  • 、容器中所有的WebMvcConfigurer都会一起起作用

  • 、我们的配置类也会被调用;
    效果:SpringMVC的自动配置和我们的扩展配置都会起作用;
    注意这里说的都会起作用是说的针对不同的配置,比如是配置的静态文件映射,有的是viewController等等这些一起起作用

WebMvcRegistrations

如果要提供RequestMappingHandlerMapping,RequestMappingHandlerAdapter或ExceptionHandlerExceptionResolver的自定义实例,并且仍然保留Spring Boot MVC自定义,则可以声明WebMvcRegistrations类型的Bean,并使用它提供这些组件的自定义实例。

完全控制springmvc

If you want to take complete control of Spring MVC, you can add your own @Configuration annotated with @EnableWebMvc, or alternatively add your own @Configuration-annotated DelegatingWebMvcConfiguration as described in the Javadoc of @EnableWebMvc.
如果要完全控制Spring MVC,则可以添加用@EnableWebMvc注释的自己的@Configuration,或者按照@EnableWebMvc的Javadoc中的说明添加自己的@Configuration注释的DelegatingWebMvcConfiguration。

原理:

为什么@EnableWebMvc自动配置就失效了;

  • @EnableWebMvc
@Import({DelegatingWebMvcConfiguration.class})
public @interface EnableWebMvc {
}
public class DelegatingWebMvcConfiguration extends WebMvcConfigurationSupport {

这样看来是说明我们导入了WebMvcConfigurationSupport

  • WebMvcAutoConfiguration 这个类我们知道是springmvc自动配置的核心类,在没有WebMvcConfigurationSupport这组件的时候才起作用
@ConditionalOnClass({Servlet.class, DispatcherServlet.class, WebMvcConfigurer.class})
@ConditionalOnMissingBean({WebMvcConfigurationSupport.class})
@AutoConfigureOrder(-2147483638)
@AutoConfigureAfter({DispatcherServletAutoConfiguration.class, TaskExecutionAutoConfiguration.class, ValidationAutoConfiguration.class})
public class WebMvcAutoConfiguration {

这么说来我们目前知道WebMvcAutoConfiguration类以及失效了

  • 、导入的WebMvcConfigurationSupport只是SpringMVC最基本的功能;

如何修改SpringBoot的默认配置

模式:
1)、SpringBoot在自动配置很多组件的时候,先看容器中有没有用户自己配置的(@Bean、@Component)如果有就用用户配置的,如果没有,才自动配置;如果有些组件可以有多个(ViewResolver)将用户配置的和自己默认的组合起来;
2)、在SpringBoot中会有非常多的xxxConfigurer帮助我们进行扩展配置
3)、在SpringBoot中会有很多的xxxCustomizer帮助我们进行定制配置

http://www.yayakq.cn/news/895711/

相关文章:

  • 深圳专业高端网站建设费用网站建设的步骤是什么
  • 网站建设功能的策划书wordpress免费的音乐插件
  • 网站读取速度慢设计公司的网站建设
  • 做企业网站需要准备什么自己怎么做dj 视频网站
  • 北京企业网站定制0元开网店
  • 51网站空间相册在哪里国外有没有做物理小实验的网站
  • 网站怎么架设有些网站为什么可以做资讯
  • a5网站诊断免费的简历模板
  • 做企业销售分析的网站九亭做网站
  • wordpress优秀网站做网站默认城市
  • 煤矿网站建设小游戏网站开发需要什么技术
  • jsp写的网站wordpress邮件系统
  • 饿了么网站开发wordpress主题配置
  • 网站开发为什么不用cgi了营销广告网站
  • 电子商务网站建设结业论文优秀手机网站设计
  • 优秀的版式设计网站北京时事新闻
  • 可以做网站头像的图片上海高端网站设计公司
  • 镇平网站建设wordpress如何添加一个文章列表页
  • 二度云自助建站系统网站卡密代理怎么做
  • 广州中小企业网站建设永久免费asp空间
  • 企业网站制作要求百度网址大全 简单版
  • 网站快速建设软件下载正规专业的互联网代做毕业设计网站
  • 十堰电商网站建设西安网页制作培训机构
  • 怎么制作小网站 不用域名的校车网站建设
  • 如何建立一个网站卖东西如何开发wordpress
  • iis7.0网站错误代码解决自己做视频网站 在优酷推广
  • 建立网站一般经历的阶段株洲网络学院
  • 互联网传媒 网站临沂网站建设wyjzgzs
  • 网站不想让百度收录网页设计与制作课程报告
  • 怎样做百度口碑推广自己的网站网站建站报价表