Spring和SpringMVC整合实现增删改查

首先一张图了解Spring MVC的分层方式

 

Spring和SpringMVC整合实现增删改查

 

SpringMVC引入Spring,将Spring IoC、AOP功能引入了,甚至可以使用Spring管理事务。

将Service与Dao当作Bean,放入IoC容器中,整个Servlet项目就可以实现“松耦合”式的各层级调用。

项目结构如下:

Spring和SpringMVC整合实现增删改查

MySQL数据库如下:

Spring和SpringMVC整合实现增删改查

 

其中view层还用到了前端框架Vue.js和Bootstrap

Spring和SpringMVC整合实现增删改查

 

完整案例代码如下:(数据库自己创建)

链接:https://pan.baidu.com/s/12k0dowGgMT4tbpBQVDSgAA 
提取码:brhz 

 

一部分具体理解:

  • 这个程序中一共存在两个ApplicationContext(两个容器),一个是全局的,一个是Servlet的
    • dispatcher-servlet.xml是Servlet级的
    • application-context.xml是全局级的
  • 由于使用到MVC分层,并且两个“容器”需要加载不同的Bean,按功能分包是很重要的了
    • SpringMVC中,将代码分为Controller、Service、Dao三层,其中Service、Dao构成Model层
    • Service负责逻辑运算,Dao负责数据访问
    • View层由jsp或html页面承担
  • ContextLoaderListener是Spring中已经定义好的Web Listener。这是一个ServletContextListener的实现:
    • 回忆:ServletContextListener是监听ServletContext的,可以在项目启停时执行一个方法
    • ContextLoaderListener中写的是将参数contextConfigLocation的值作为配置文件,创建一个全局的容器
  • DispatcherServlet是Spring MVC提供的Servlet,它可以接收任何请求并分类转发出去
    • DispatcherServlet也可以根据自己的contextConfigLocation值创建一个属于自己的容器
    • DispatcherServlet会解析接收到的请求,按照@RequestMapping配置调用相应的方法
    • @RequestMapping("/student")在类上,@RequestMapping("/get")在方法上,两个配置信息拼接在一起生效,所以访问/student/get即可访问到getStudent方法
  • @Controller和@Component作用相同,都表示“这是一个Bean”
    • @Controller表示:这个Bean是Spring MVC的Bean,这个Bean做C层使用
    • DispatcherServlet会找带有@RequestMapping的Bean调用