spring-mvc.xml中组件转化为注解形式

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
https://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd"
>

<context:component-scan base-package="com.nju.controller"/>

<mvc:annotation-driven/>

<mvc:default-servlet-handler/>

<mvc:interceptors>
<mvc:interceptor>
<mvc:mapping path="/**"/>
<bean class="com.nju.interceptors.MyInterceptors"/>
</mvc:interceptor>
</mvc:interceptors>

<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"/>

</beans>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// ./com/nju/config
@Configuration
@ComponentScan("com.nju.controller")
@EnableWebMvc
public class SpringMvcConfig {

@Bean
public CommonsMultipartResolver multipartResolver() {
CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver();
multipartResolver.setDefaultEncoding("UTF-8");
multipartResolver.setMaxUploadSize(5000000);
return multipartResolver;
}

}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// ./com/nju/controller
@Component
public class MyWebMvcConfigurer implements WebMvcConfigurer {

@Override
public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
configurer.enable();
}

@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new MyInterceptors()).addPathPatterns("/**");
}

}

DispatcherServlet加载核心配置类

1
2
3
4
5
6
7
8
// ./com/nju/config
public class MyAnnotationConfigWebApplicationContext extends AnnotationConfigWebApplicationContext {

public MyAnnotationConfigWebApplicationContext() {
super.register(SpringMvcConfig.class);
}

}
1
2
3
4
5
6
7
8
9
10
<!--web.xml-->
<servlet>
<servlet-name>DispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextClass</param-name>
<param-value>com.nju.config.MyAnnotationConfigWebApplicationContext</param-value>
</init-param>
<load-on-startup>2</load-on-startup>
</servlet>