SpringMvc是一种基于Java实现MVC模型的轻量级Web框架,用于表现层功能开发。
1、入门案例:
(1)Maven导入坐标
(2)MVC控制类
(3)Spring配置类
(4)初始化Servlet容器,加载环境,设置请求
2、配置SpringMvc和配置Spring扫描对应配置范围内所定义的Bean
由于SpringMVC和Spring配置所扫描的Bean不同,而且为了区分开来,进行扫描的设置范围。
主要区分与SpringMvcConfig和SpringConfig,因此,定义一个servlet容器启动的配置类
public class ServletContainersInitConfig extends AbstractAnnotationConfigDispatcherServletInitializer{};
,在里面加载相关的配置。
(1)ServletContainersInitConfig类:(其中,也包含对SpringMvc解决Post请求中文乱码问题)
//定义一个servlet容器启动的配置类,在里面加载spring的配置
public class ServletContainersInitConfig extends AbstractAnnotationConfigDispatcherServletInitializer{
//加载spring容器配置
@Override
protected Class<?>[] getRootConfigClasses() {
return new Class[]{SpringConfig.class};
}
//加载springmvc容器配置
@Override
protected Class<?>[] getServletConfigClasses() {
return new Class[]{SpringMvcConfig.class};
}
//设置哪些请求归属springmvc处理
@Override
protected String[] getServletMappings() {
return new String[]{"/"};
}
// SpringMvc解决Post请求中文乱码问题
@Override
protected Filter[] getServletFilters() {
CharacterEncodingFilter filter = new CharacterEncodingFilter();
filter.setEncoding("UTF-8");
return new Filter[]{filter};
}
}
在该类中的前三个方法中,如下做出简单介绍:(上文的三个方法属于简化操作,该类省略了许多代码)
(2)SpringConfig类:
@Configuration
//扫描相关Spring配置相应范围的包
@ComponentScan({"com.lingnan.service","com.lingnan.dao"})
//对资源文件的引用
@PropertySource("classpath:jdbc.properties")
//导入相应辅助Mybatis、jdbc的类
@Import({jdbcConfig.class,MybatisConfig.class})
//排除与Spring无关的包(SpringMvc对应的Bean:Controller)
@ComponentScan(value = "com.lingnan",excludeFilters = @ComponentScan.Filter(type = FilterType.ANNOTATION,classes = Controller.class))
public class SpringConfig {
}
其中@ComponentScan扫描对应的包以及排除对应的包来实现Bean加载控制。
(3)SpringMvc类:
//创建springmvc的配置文件,加载controller对应的bean
@Configuration
@ComponentScan("com.lingnan.controller")
public class SpringMvcConfig {
}
这样就可以完成简单的SpringMvc入门案例!