SpringMVC自動配置

2021-09-28 10:30:05 字數 2006 閱讀 6858

29.1.1 spring mvc auto-configuration

spring boot 自動配置好了springmvc

一下是springboot對springmvc的預設配置:

if you want to take complete control of spring mvc, you can add your own @configuration annotated with @enablewebmvc.

<

mvc:view-controller

path

="/hello"

view-name

="index"

/>

<

mvc:interceptors

>

<

mvc:interceptor

>

<

path

="/hello"

/>

>

bean

>

mvc:interceptor

>

mvc:interceptors

>

編寫乙個配置類(@configuration),是webmvcconfigurer 型別的。不能標註@enablewebmvc註解

//實現webmvcconfigurer 可以來擴充套件springmvc的功能

@configuration

public

class

mymvcconfig

implements

webmvcconfigurer

}

原理:

webmvcautoconfiguration是springmvc的自動配置類

在做其他自動配置時會匯入;@import()

@configuration

public

class

delegatingwebmvcconfiguration

extends

webmvcconfigurationsupport

//}}

}}

容器中所有的webmvcconfigurer都會一起起作用;

我們的配置類也會被呼叫;

效果:springmvc的自動配置和我們的擴充套件配置都會起到作用;

springboot對springmvc的自動配置不需要了,所有的都是由我們自己配置,所有的自動配置都失效;

只需要在配置類中新增@enablewebmvc註解即可。

原理:為什麼新增@enablewebmvc註解,所有的自動配置都失效了;

enablewebmvc的核心

@import

(delegatingwebmvcconfiguration.

class

)public @inte***ce

enablewebmvc

)//容器中沒有這個元件,自動配置類才會生效

@conditionalo****singbean()

@autoconfigureorder(-

2147483638

)@autoconfigureafter()

public

class

webmvcautoconfiguration

{

@enablewebmvc將webmvcconfigurationsupport這個元件匯入進來了

匯入的webmvcconfigurationsupport知識springmvc最基本的功能;

模式:springboot在自動配置很多元件的時候,先看容器中是否有使用者自己配置的元件(@bean,@component)如果有就用使用者配置的,如果沒有,才自動配置;如果有些元件可以有多個(viewresolver)將使用者配置的和預設的組合起來;

在springboot中會有非常多的***configurer幫助我們擴充套件基本配置

springmvc的自動任務

針對springmvc的自動任務我們需要進行相應的配置 第一 要在springmvc.xml中配置 xmlns task spring task 3.2.xsd 配置任務掃瞄 掃瞄任務 這個可以理解為就是我們專案啟動後要掃瞄的controller層service,dao層的包一樣 之後我們需要在需要...

SpringMvc 之自動註解

元素會掃瞄指定的包極其所有子包,並查詢能夠自動註冊為spring bean的類.base package屬性標識了元素所掃瞄的包 base package org.test annotation expression org.springframework.stereotype.service co...

Spring MVC 配置 解剖

分類 spring 2007 11 30 16 40 5438人閱讀收藏 舉報 一,配置分發器 dispatcherservlet 是spring mvc 的入口 所有進入spring web 的 request 都經過 dispatcherservlet 需要在 web.xml 中註冊 dispa...