1. 程式人生 > >Servlet3.0——整合SpringMVC的Demo

Servlet3.0——整合SpringMVC的Demo

1、Spring容器:並不需要@Configuration註解

@ComponentScan(value = "com.bdm", excludeFilters = {
		@Filter(type = FilterType.ANNOTATION, classes = { Controller.class }) })
public class RootConfig {

}

2、SpringMVC容器:並不需要@Configuration註解

@ComponentScan(value = "com.bdm", useDefaultFilters = false, includeFilters = {
		@Filter(type = FilterType.ANNOTATION, classes = { Controller.class }) })
public class AppConfig {

}
useDefaultFilters = false, includeFilters = { @Filter(type = FilterType.ANNOTATION, classes = { Controller.class }) }) public class AppConfig { }

3、controller

@Controller
public class HelloController {

	@Autowired
	HelloService helloService;
	
	@ResponseBody
	@RequestMapping("/hello")
	public String sayHello(){
		String sayHello = helloService.sayHello("tomcat");
		return sayHello;
	}
}
@ResponseBody @RequestMapping("/hello") public String sayHello(){ String sayHello = helloService.sayHello("tomcat"); return sayHello; } }

4、service

@Service
public class HelloService {

	public String sayHello(String name){
		return "Hello " + name;
	}
}

5、AbstractAnnotationConfigDispatcherServletInitializer的實現類

public class MyWebAppInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {

	@Override
	protected Class<?>[] getRootConfigClasses() {
		return new Class[] { RootConfig.class };
	}

	@Override
	protected Class<?>[] getServletConfigClasses() {
		return new Class[] { AppConfig.class };
	}

	@Override
	protected String[] getServletMappings() {
		return new String[] { "/" };
	}

}

攔截的路徑,此處配置的"/":表示攔截除*.jsp之外的所有請求,*.jsp的解析是由tomcat的jsp引擎負責的;若配置成"/*"則會連*.jsp也會攔截,導致jsp無法解析

6、訪問: