我是 Spring MVC 和 Hibernate 的新手。我正在尝试按照教程启动一个项目,但我遇到了问题,因为我的项目结构与我正在阅读的教程不一致。
我已经下载了最新的 STS,并且确实看到了创建 Spring MVC 项目的选项。然而它基于 Spring 3 并且仍然使用 XML 文件。据我所知,从 Spring 3 开始,似乎有一种无需 XML 文件即可完成此操作的方法。相对于 XML 文件,我更喜欢注释。
如何创建一个基于注释并最少依赖 xml 文件的 Spring MVC 4 应用程序?
编辑: 我想创建一个网络项目
最佳答案
这是一个完整的 java 配置的简单示例。您将需要:
- 扩展
AbstractAnnotationConfigDispatcherServletInitializer
的类替换旧的web.xml
文件 - 一个或多个
@Configuration
带注释的类来初始化根上下文(替换旧的applicationContext.xml
) - 一个或多个
@Configuration
带注释的类来初始化DispatcherServlet
上下文(替换旧的dispatcher-servlet.xml
)
这是 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
将声明业务模型、服务和 dao bean,此处未显示。
ServletConf
声明 Controller 和 servlet 配置:
@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;
}
}
如上所述,它是 squeletal,但它来自一个工作的最小示例,因此您应该能够从它开始并随意扩展它。在我的示例中,上述三个类位于 org.example.config
中。永远不会扫描自动检测其他配置类或带注释的 bean 的包。
希望有帮助...
关于eclipse - 创建带有注释且无 xml 文件的 Spring 4 MVC 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26519426/