-
springmvc
零配置
springmvc
javaconfig
1. Spring MVC
p>
的核心就是
DispatcherServlet
< br>类,
Spring
MVC
处理请求的流程如下图所示:
2. Spring MVC
中典型
的上下文层次当我们初始化一个
DispatcherServ
let
类时,
Spring MVC
会
在
web
应用的
WEB-INF
目录下查找一个名字
叫:
[servlet-
name]-
的配置文件,查询这个文件中
定义的
bean
并初始化。
[servlet-name]
-
的定义的
bean
初始化时将会覆盖
在全局范围内(
global scope
)定义的
相同名称的
bean
。我们一般会在
中定义
DispatcherServlet
。由上图我们可以看出
Controller
、
HandlerMapping
、
V
iewResovler
类
(
和
web
有关的
)
在<
/p>
Servlet
WebApplicationContext
中定义,而
Services
类,
p>
Repositories
类(中间服务、数据源等)在
Root WebApplicationContext
中定义。
3.
Spring MVC
中单个的根上下文(
Single
Root
Contexct
)
p>
如果只有一个单一个根上下文,这样我们就可以
定义一个空的
contextConfigLocation
,
因此所有的
beans
就要
在这这
个单一的
Root
Context
中定义了。
4.
如何
不再要
和
[servlet-name
].
而采用纯粹的
java
类来实
p>
现?
从上图中我们可以看出只要继承了<
/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
来注解,从而代替
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
作为注解,而
p>
@Configuration
本身是使用了
@Component
进行了注解。所
以这个
RootConfig
类是可以被组件扫描到并注入到容器中
< br>的。
@Configuration
用来说明这个是配置
类用来替换原来的
xml
。了实现组件自动扫描和实例化并注入
到容器中,我们
要在配置类中加上
@ComponnetSca
n
注解,并设定扫描的包
的范围。本示例扫描的是
类所在的包。
4.3 <
/p>
定
义
WebConfig
类
@Configuration
@EnableWebMvc
@ComponentScan(basePackageClasses =
)
public class WebConfig { <
/p>
}
通过
@EnableMvc
来导入
Spring MVC
的相关配置,通过<
/p>
@ComponentScan
来自动扫描控制器类
HomeController
所在
的包。同样,<
/p>
@Configuration
用来说明这个是配置类用来替
p>
换原来的
xml
。
5.
从
Servlet
容器中
(Bean
工厂
)
获
取
bean.
下
-
-
-
-
-
-
-
-
-
上一篇:货代英语常用语
下一篇:海运常用英语学习单词