关键词不能为空

当前您在: 主页 > 英语 >

springmvc零配置springmvcjavaconfig

作者:高考题库网
来源:https://www.bjmy2z.cn/gaokao
2021-02-06 02:20
tags:

-

2021年2月6日发(作者:others)


springmvc


零配置


springmvc javaconfig







1. Spring MVC


的核心就是


DispatcherServlet

< br>类,


Spring


MVC


处理请求的流程如下图所示:




2. Spring MVC


中典型


的上下文层次当我们初始化一个


DispatcherServ let


类时,


Spring MVC


会 在


web


应用的


WEB-INF


目录下查找一个名字


叫:


[servlet- name]-


的配置文件,查询这个文件中


定义的


bean


并初始化。


[servlet-name] -


的定义的


bean


初始化时将会覆盖 在全局范围内(


global scope


)定义的

< p>
相同名称的


bean


。我们一般会在



中定义


DispatcherServlet


。由上图我们可以看出


Controller



HandlerMapping



V iewResovler



(



web


有关的


)


在< /p>


Servlet


WebApplicationContext


中定义,而


Services


类,


Repositories


类(中间服务、数据源等)在

< p>
Root WebApplicationContext


中定义。


3. Spring MVC


中单个的根上下文(


Single Root


Contexct




如果只有一个单一个根上下文,这样我们就可以


定义一个空的


contextConfigLocation


因此所有的


beans


就要


在这这 个单一的


Root Context


中定义了。


4.


如何 不再要




[servlet-name ].


而采用纯粹的


java


类来实


现?



从上图中我们可以看出只要继承了< /p>


AbstractAnnotationConfigDispatcherServle tInitializer


类并实现


了相关方法即可实现注册一 个


DispatcherServlet


类。

< br>4.1.




DispatcherServlet


配置在



Servlet


容器中而不再使用





public class RtpFrontWebAppInitializer extends


Abstr actAnnotationConfigDispatcherServletInitializer {





/**







*


指定



Root WebApplicationContext


类 ,这个类必须


@Configuration


来注解,从而代替


XML


配置文件








*/






@Override






protected Class<?>[] getRootConfigClasses() {










return new Class<?>[]{};






}





/**







*


指定



Servlet WebApplicationContext

类,


这个类必须


@Configuration

< p>
来注解,从而代替


XML


配置文件








*/






@Override






protected Class<?>[] getServletConfigClasses() {










return new Class<?>[]{};






}





/**







*


指定



Servlet mappings







*/






@Override






protected String[] getServletMappings() {










return new String[]{






}


} 4.2


定义


RootConfi g



@Configuration


@ComponentScan(basePackageClasses = ,










excludeFilters = {@(type =


TION, value = )})


public class RootConfig {


}RootConfig

类使用了


@Configuration


作为注解,而


@Configuration


本身是使用了


@Component


进行了注解。所


以这个


RootConfig


类是可以被组件扫描到并注入到容器中

< br>的。


@Configuration


用来说明这个是配置 类用来替换原来的


xml


。了实现组件自动扫描和实例化并注入 到容器中,我们


要在配置类中加上


@ComponnetSca n


注解,并设定扫描的包


的范围。本示例扫描的是



类所在的包。



4.3 < /p>




WebConfig



@Configuration


@EnableWebMvc


@ComponentScan(basePackageClasses =


)


public class WebConfig { < /p>


}


通过


@EnableMvc

< p>
来导入


Spring MVC


的相关配置,通过< /p>


@ComponentScan


来自动扫描控制器类


HomeController


所在


的包。同样,< /p>


@Configuration


用来说明这个是配置类用来替


换原来的


xml



5.



Servlet


容器中


(Bean


工厂


)


获 取


bean.


-


-


-


-


-


-


-


-



本文更新与2021-02-06 02:20,由作者提供,不代表本网站立场,转载请注明出处:https://www.bjmy2z.cn/gaokao/604860.html

springmvc零配置springmvcjavaconfig的相关文章