SpringMVC+Maven开发项目源码详细介绍
Spring MVC概述
Spring MVC框架是一个开源的Java平台,为开发强大的基于Java的Web应用程序提供全面的基础架构支持非常容易和非常快速。
Spring web MVC框架提供了MVC(模型 - 视图 - 控制器)架构和用于开发灵活和松散耦合的Web应用程序的组件。
MVC模式导致应用程序的不同方面(输入逻辑,业务逻辑和UI逻辑)分离,同时提供这些元素之间的松散耦合。
-
模型(Model)封装了应用程序数据,通常它们将由POJO类组成。
-
视图(View)负责渲染模型数据,一般来说它生成客户端浏览器可以解释HTML输出。
-
控制器(Controller)负责处理用户请求并构建适当的模型,并将其传递给视图进行渲染。
项目目录结构
主要代码说明
1、添加控制器
控制器处理GET和POST请求。
@Controller表明这个类是一个控制器在处理具有模式映射的@RequestMapping请求。这里使用 ‘/’, 它被作为默认的控制器。
方法inputCorpus注解为RequestMethod.GET服务默认是GET请求,并呈现包含空白表单的网页。
方法nliProcess注解为RequestMethod.POST服务处理表单提交POST请求。
@Valid要求spring来验证相关的对象(CorpusInfo)。
@Controller
@RequestMapping("/")
public class DemoController {
private NLIProcess nli = new NLIProcess();
@RequestMapping(method = RequestMethod.GET)
public String inputCorpus(ModelMap model) {
CorpusInfo cinfo = new CorpusInfo();
model.addAttribute("cinfo", cinfo);
return "enroll";
}
@RequestMapping(method=RequestMethod.POST)
public String nliProcess(@Valid @ModelAttribute("cinfo") CorpusInfo cinfo,
BindingResult result, ModelMap model) {
if (result.hasErrors()) {
return "enroll";
}
model.addAttribute("answer", nli.getAnswer(cinfo.getCorpus()));
return "success";
}
}
2、添加配置类
@Configuration指示该类包含注解为@Bean生产Bean管理是由Spring容器的一个或多个 bean 的方法。
@EnableWebMvc 等效于 mvc:annotation-driven 在XML文件中。
@ComponentScan 等效于 context:component-scan base-package=”…” 提供具有到哪里查找管理Spring beans/类。
方法ViewResolver 配置一个 ViewResolver 用来找出真正的视图。
方法 addResourceHandlers 配置 ResourceHandler 静态资源。例子中,将css文件放在 Web应用程序的 /static/css 目录中。
@Configuration
@EnableWebMvc
@ComponentScan(basePackages = "com.demo")
public class DemoConfiguration extends WebMvcConfigurerAdapter {
@Bean
public ViewResolver viewResolver() {
InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();
viewResolver.setViewClass(JstlView.class);
viewResolver.setPrefix("/WEB-INF/views/");
viewResolver.setSuffix(".jsp");
return viewResolver;
}
@Bean
public MessageSource messageSource() {
ResourceBundleMessageSource messageSource = new ResourceBundleMessageSource();
messageSource.setBasename("messages");
return messageSource;
}
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/static/**").addResourceLocations("/static/");
}
}
方法messageSource 配置消息包,以支持[国际化]消息属性文件。Spring 将搜索应用程序类路径中一个名为messages.properties文件:
Size.cinfo.corpus=corpus must be between {2} and {1} characters long
项目运行效果
运行应用程序,访问URL:http://localhost:8080/SpringMVCDemoNLI
SpringMVC+Maven开发项目源码详细介绍
注:本文著作权归作者,由demo大师代发,拒绝转载,转载需要作者授权
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· 使用C#创建一个MCP客户端
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· Windows编程----内核对象竟然如此简单?