SpringMvc 注解方式开发

springMvc 注解开发 基于Servlet3.0容器,tomcat需要7以上

  • 1 配置DispatcherServlet
/**
*author huangh
*date 2018/9/8 15:07
*description DispatcherServlet
*/
@Component
public class WebConfig extends AbstractAnnotationConfigDispatcherServletInitializer {
  //spring根容器 存放Service repositories
  protected Class<?>[] getRootConfigClasses() {
  //加载写好的Root WebApplicationContext
    return new Class[]{RootConfig.class};
  }
  //springMvc容器 存放controller,viewResolver,handlerMapper
  protected Class<?>[] getServletConfigClasses() {
  //加载写好的Servlet WebApplicationContext
    return new Class[]{ServletConfig.class};
  }

  //Dispatcher处理静态资源
  // "/"拦截所有请求(.css,.js)  tomcat会处理
  // "/*"拦截所有请求,包括".jsp"
  protected String[] getServletMappings() {
    return new String[]{"/"};
  }
}
  • 2 配置好DispatcherServlet后 先看一张架构图
    image.png

从图中我们看出需要DispatcherServlet需要Servlet WebApplicationContext和 Root WebApplicationContext

Servlet WebApplicationContext: 是servlet容器 里面包含controller,viewResolver,handlerMapping

Root WebApplicationContext: 就是我们熟悉的spring 容器 里面放 service ,repository

  • 3 配置Servlet WebApplicationContext
/**
*author huangh
*date 2018/9/8 15:27
*description springMvc 容器
*/
@ComponentScan(value = "com.hh.web",includeFilters = {
//设置包含 controller层
    @Filter(type = FilterType.ANNOTATION,classes = {Controller.class})
},useDefaultFilters = false)
//开启spring mvc注解模式
@EnableWebMvc
public class ServletConfig extends WebMvcConfigurerAdapter {
  /**视图解析器*/
  @Override
  public void configureViewResolvers(ViewResolverRegistry registry) {
    registry.jsp("/WEB-INF/views/",".jsp");
  }

  /**对静态资源 使用servlet容器规定,不使用dispatcherServlet来处理*/
  /**如果不指定的话 静态资源无法访问,.png .js .css等*/
  @Override
  public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
    configurer.enable();
  }
  /**拦截器*/
  @Override
  public void addInterceptors(InterceptorRegistry registry) {
    registry.addInterceptor(new Myinterceptor());
  }
}

4 配置Root WebApplicationContext

/**
*author huangh
*date 2018/9/8 15:19
*description spring根容器
*/
@ComponentScan(value = "com.hh.web",includeFilters =  {
//需要把controller排除,虽然不排除也ok 但是还是分成开发 解耦合
    @Filter(type = FilterType.ANNOTATION,classes = {Controller.class})
})
public class RootConfig {

}

5 配置以及完成,写好controller service 测试

controller

@Controller
public class HeyController {
  @Autowired
  private HeyService heyService;
  @ResponseBody
  @RequestMapping("/")
  public String sayHello() {
    return heyService.say();
  }
  @GetMapping("/to")
  public String toJsp() {
     return "success";
  }
}

service

@Service
public class HeyService {

  public String say() {
    return "hello";
  }
}

自此入门demo以及完成啦


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值