基于注解⽅式启动SpringMVC
⼀、Maven依赖
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.0.5.RELEASE</version>
</dependency>
⼆、定义MyMVConfig配置类
@Configuration
@EnableWebMvc//相当于WebMvcConfigurationSupport,使⽤@EnableWebMvc注解就等于扩展了WebMvcConfigurationSupport,但是没有扩展任何⽅法。@ComponentScan("ller")//扫描Controller层将其装配到Spring的bean容器中
public class MyMvcConfig {
}
三、配置⽂件信息
public class WebInitializer implements WebApplicationInitializer {//相当于l中的配置
public void onStartup(javax.servlet.ServletContext servletContext)throws ServletException {
// 1.启动SpringMVC 容器类注⼊到Spring中
AnnotationConfigWebApplicationContext app =new AnnotationConfigWebApplicationContext();// 启动SpringMVC Web // 2.注⼊springmvc 的配置⽂件
// 3. 将DispatcherServlet 注⼊到 serlvet容器中
ServletRegistration.Dynamic dynamic =
servletContext.addServlet("dispatcher",new DispatcherServlet(app));
// 4.填写url路径映射
dynamic.addMapping("/");
dynamic.setLoadOnStartup(1);// 优先级最⾼表⽰最早被加载
}
}
四、整合jsp页⾯
@Bean
public ViewResolver viewResolver(){
InternalResourceViewResolver internalResourceViewResolver =new InternalResourceViewResolver();
// 前缀
internalResourceViewResolver.setPrefix("/WEB-INF/view/");
// 后缀
internalResourceViewResolver.setSuffix(".jsp");
return internalResourceViewResolver;
}
springmvc的注解有哪些五、SpringMVC使⽤
1.和过滤器的区别
和过滤器都是基于Aop实现的,能够对请求之前之后实现拦截
过滤器是基于Servlet容器实现,对web请求之前之后进⾏拦截
不需要依赖Servlet容器, 不仅可以对web请求进⾏拦截,还可以对⽅法进⾏拦截。
使⽤:
:权限控制、⽇志打印、参数验证 、会话。
过滤器:编码转换、跨域解决、xss攻
2.SpringMVC的使⽤
⾃定义拦截请求Token
preHandle在业务处理器处理请求之前被调⽤
postHandle在业务处理器处理请求执⾏完成后,⽣成视图之前执⾏
afterCompletion在DispatcherServlet完全处理请求后被调⽤,可⽤于清理资源等。
public class TokenInterceptor implements HandlerInterceptor {
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)throws Exception {
System.out.println(">>>preHandle<<<");
String token = Parameter("token");
if(StringUtils.isEmpty(token)){
return false;
}
return true;
}
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView)throws Exception { System.out.println(">>>>>postHandle<<<<<<<<<");
}
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)throws Exception {
System.out.println(">>>afterCompletion<<<");
}
}
六、SpringMvcConfig配置类
相当于l配置⽂件
@Configuration
@ComponentScan(basePackages ={"ller","st.service"})
//@EnableWebMvc
@EnableAsync
public class SpringMvcConfig extends WebMvcConfigurationSupport {
//@EnableWebMvc 等于开启SpringMVC注解⽅式
//@EnableWebMvc 底层会帮助我们注⼊WebMvcConfigurationSupport这类覆盖我们⾃定义配置类
@Bean
public InternalResourceViewResolver internalResourceViewResolver(){
// 1.需要前缀
InternalResourceViewResolver internalResourceViewResolver =new InternalResourceViewResolver();
// 2.需要后缀
internalResourceViewResolver.setPrefix("/WEB-INF/view/");
internalResourceViewResolver.setSuffix(".jsp");
return internalResourceViewResolver;
}
// 1.⼿动注⼊到Spring中
@Bean
public TokenInterceptor tokenInterceptor(){
return new TokenInterceptor();
}
// 2.添加
public void addInterceptors(InterceptorRegistry registry){
registry.addInterceptor(tokenInterceptor()).addPathPatterns("/**");// 拦截所有的请求
}
//配置springmvc相关⼀些信息WebMvcConfigurationSupport web视图相关内容
}
七、Controller层、Service层(略)
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论