为什么使用 Spring Boot? (六)

第4步:注册Spring MVC FrontController Servlet DispatcherServlet

在Servlet 3.x规范之前我们必须在web.xml注册Servlets/Filters。自从Servlet 3.x规范出台我们能够使用ServletContainerInitializer以编程方式注册Servlets/Filters。武汉微信开发,移动开发,湖北软件开发公司。武汉微信开发,移动开发,湖北软件开发公司。

Spring MVC提供了一个方便的类AbstractAnnotationConfigDispatcherServletInitializer用于注册DispatcherServlet.


public class SpringWebAppInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {

 

    @Override     protected Class<?>[] getRootConfigClasses()

    {

        return new Class<?>[] { AppConfig.class};

    }

 

    @Override     protected Class<?>[] getServletConfigClasses()

    {

        return new Class<?>[] { WebMvcConfig.class };

    }

 

    @Override     protected String[] getServletMappings()

    {

        return new String[] { "/" };

    }

 

    @Override     protected Filter[] getServletFilters() {

       return new Filter[]{ new OpenEntityManagerInViewFilter() };

    }

}

SpringWebAppInitializer.java中我们已经完成了以下的事情:

  • 配置了AppConfig.class 作为 RootConfirationClasses ,它将成为包含所有子上下文(DispatcherServlet)共享的bean定义的父ApplicationContext

  • 配置WebMvcConfig.class作为ServletConfigClasses,它是包括WebMvc bean定义的子ApplicationContext

  • 配置ServletMapping为"/",让DispatcherServlet处理所有请求。

  • 注册OpenEntityManagerInViewFilter过滤器,用于展开视图时懒加载JPA实体集合。

第五步:创建JPA实体和Spring Data JPA repository
创建JPA实体User.java和User实体对应的Spring Data JPA repository。
 
@Entity public class User {

    @Id @GeneratedValue(strategy=GenerationType.AUTO)

    private Integer id;

    private String name;

 

    //setters and getters } public interface UserRepository extends JpaRepository<User, Integer> {

}



关于Topideas | 战略合作 | 内容合作 | 渠道合作 | 版权商标 | 隐私声明 | 工作机会 | 联系我们

Copyright © 2012 Topideas 版权所有

湖北 - 武汉 | 各个商标由其各自所有者持有 鄂ICP备13005502

咨询(客服) 咨询(客服)

欢迎给我们留言