Creating a Spring 4 MVC project with annotations and no xml files

若如初见. 提交于 2019-12-03 05:06:47

Here is a squeletal example of full java configuration. You will need :

  • a class extending AbstractAnnotationConfigDispatcherServletInitializer to replace the old web.xml file
  • one or more @Configuration annotaded class(es) to initialize the root context (replaces the old applicationContext.xml)
  • one or more @Configuration annotaded class(es) to initialize the DispatcherServlet context (replaces the old dispatcher-servlet.xml)

This is the web.xml :

public class WebAppConf extends AbstractAnnotationConfigDispatcherServletInitializer  {

    @Override
    protected Class<?>[] getRootConfigClasses() {
        // declare root context configuration classes
        return new Class<?>[]{ RootConf.class };
    }

    @Override
    protected Class<?>[] getServletConfigClasses() {
        // declare servlet context configuration classes
        return new Class<?>[]{ ServletConf.class };
    }

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

    @Override
    protected void customizeRegistration(Dynamic registration) {
        // additional configuration, here for MultipartConfig
        super.customizeRegistration(registration);
        MultipartConfigElement multipartConf = new MultipartConfigElement("", 200000L, -1L, 0);
        registration.setMultipartConfig(multipartConf);
    }
}

RootConf will declare business model, service and dao beans and is not shown here.

ServletConf declares the controllers and servlet configuration :

@Configuration
@EnableWebMvc
// declare where to find annotated controllers
@ComponentScan({"org.example.web"})
public class ServletConf extends WebMvcConfigurerAdapter {
    @Bean
    MultipartResolver multipartResolver() {
        return new StandardServletMultipartResolver();
    }
    @Bean
    ViewResolver internalViewResolver() {
        // the view resolver bean ...
        InternalResourceViewResolver resolver = new InternalResourceViewResolver();
        resolver.setPrefix("/WEB-INF/jsp/");
        resolver.setSuffix(".jsp");
        return resolver;
    }
}

As said above, it is squeletal, but it comes from a working minimal example so you should be able to start with that and extend it at will. In my example, the above three classes live in a org.example.config package that will never be scanned for autodetecting other configuration classes or annotated beans.

Hope it helps ...

I know this doesn't answer your question fully, but hopefully the links will be useful.

WebApplicationInitializer - A 100% code based approach to configuration

as well as AnnotationConfigWebApplicationContext

Also, if you have the time, reading the relevant sections of Spring's MVC chapter of their documentation is helpful.

I Wish that this link will be helpful for you Spring security with annotation Mkyong

The latest versions of STS integrate the Spring guides from https://spring.io/guides directly, try the "Import Spring Getting Started Content" wizard. There are good guides included for creating a Spring Boot based web service, for example, among many others.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!