栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

这波 SpringFramework5.x 我先干了(MVC框架整合)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

这波 SpringFramework5.x 我先干了(MVC框架整合)

一、MVC框架整合思想

1.搭建web运行环境

 
    
    
      javax.servlet
      javax.servlet-api
      3.1.0
      provided
    
    
      javax.servlet
      jstl
      1.2
    
    
      javax.servlet.jsp
      javax.servlet.jsp-api
      2.3.1
      provided
    
    
    
      org.springframework
      spring-web
      5.1.14.RELEASE
    
    
      org.springframework
      spring-core
      5.1.14.RELEASE
    
    
      org.springframework
      spring-beans
      5.1.14.RELEASE
    
    
    
      org.springframework
      spring-tx
      5.1.14.RELEASE
    
    
    
      org.springframework
      spring-context
      5.1.14.RELEASE
    

    
    
      org.springframework
      spring-webmvc
      5.1.14.RELEASE
    

    
    
      org.slf4j
      slf4j-log4j12
      1.7.25
    

    
    
      log4j
      log4j
      1.2.17
    

    
    
      junit
      junit
    

    
    
      mysql
      mysql-connector-java
      5.1.49
    

    
    
      org.mybatis
      mybatis
      3.4.6
    

    
    
      org.springframework
      spring-jdbc
      5.1.14.RELEASE
    
    
      org.mybatis
      mybatis-spring
      2.0.2
    

    
    
      com.alibaba
      druid
      1.1.18
    

    
      junit
      junit
      4.12
      test
    
    
    
      org.springframework
      spring-aop
      5.1.14.RELEASE
    
    
      org.aspectj
      aspectjrt
      1.8.8
    
    
      org.aspectj
      aspectjweaver
      1.8.3
    
    
      org.projectlombok
      lombok
      1.18.12
      compile
    

    
      junit
      junit
      4.11
      test
    
  

2.为什么要整合MVC框架

1.MVC框架提供了控制器(Controller)调用Service
2.请求相应的处理
3.接受请求参数 
4.控制程序运行流程
5.试图解析(JSP  JSON  Freemarker Thyemeleaf)

3.Spring可以整合哪些MVC框架

1.struts1
2.webwork
3.jsf
4.struts2
5.springMVC

4.Spring整合MVC框架的核心思路
(1)准备工厂

1.Web开发过程中如何创建工厂
		ApplicationContext ctx = new ClassPathXmlApplicationContext("/applicationContext.xml");
												new  WebXmlApplicationContext();
2.如何保证工厂唯一同时被公用
	被公用:Web   request|session|ServletContext(application)
	工厂存储在ServletContext这个作用域中ServletContext.setAttribut("xxx",ctx);
	
	唯一:ServletContext对象 创建的同时--->ApplicationContext ctx = new ClassPathXmlApplicationContext("/applicationContext.xml");
	ServletContextListener --->Application ctx  =new ClassPathXmlApplicationContext("/applicationContext.xml");
	ServletContextListener 在ServlContext对象创建的同时,被调用(只会被调用一次),把工程创建的代码,写在ServletContextListener中,也会保证只调用一次,最终工厂就保证了唯一性
3.总结
	ServletContextListener(唯一)
		ApplicationContext ctx =new ClassPathXmlApplicationContext("/applicationContext.xml");
		ServletContext.setAttribute("xxx",ctx);  (公用)
4.Spring封装了一个ContextLoaderListener			
		1)创建工厂
		2)把工厂存在ServletContext中										
ContextLoaderListener使用方式
Web.xml


	org.springframework.web.context.ContextLoaderListener


	contextConfigLocation
	classpath:applicationContext.xml

(2)代码整合

依赖注入:把Service对象注入给控制器对象

二、Spring与Struts2框架整合

1.Spring与Struts2整合思路分析

Struts2中的Action需要通过Spring的依赖注入获得Service对象。

2.Spring与Struts2整合的编码实现

  • 搭建开发环境

    • 引入相关jar(Spring Struts2)
    
     	org.apache.struts
     	struts2-spring-plugin
     	2.3.8
    
    
    • 引入对应的配置文件
      (1)applicationContext.xml
      (2)struts.xml
      (3)log4j.properties
    • 初始化配置
      Spring —ContextLoaderListener -> web.xml
      Struts2—filter -> web.xml
       
    
       org.springframework.web.context.ContextLoaderListener
    
    
       contextConfigLocation
       classpath:applicationContext.xml
    
    
    
    
       struts2
       org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
    
    
       struts2
       /*
    
    
  • 编码

    • 开发service对象
      最终在Spring配置文件中创建Service对象
      
      
    • 开发Action对象
      (1)开发类
      public class RegAction implements Action {
          private UserService userService;
      
          public UserService getUserService() {
              return userService;
          }
      
          public void setUserService(UserService userService) {
              this.userService = userService;
          }
      
          @Override
          public String execute() throws Exception {
              userService.register();
              return Action.SUCCESS;
          }
      }
      
      (2)Spring(appicationContext.xml)
      
          
      
      
      (3)Struts2(struts.xml)
      
      	url reg.action --->会接受到用户的请求后,创建RegAction这个类的对象 进行相应的处理
      	
          	/index.jsp
      	
      
      

3.Spring+Struts2+Mybatis整合
1.思路分析

SSM = Spring + Struts2 Spring+Mybatis

2.整合编码

  • 搭建开发环境

    • 引入相关jar(Spring Struts2 Mybatis)
      
         org.apache.struts
         struts2-spring-plugin
         2.3.8
      
      
      
         javax.servlet
         javax.servlet-api
         3.1.0
         provided
      
      
         javax.servlet
         jstl
         1.2
      
      
         javax.servlet.jsp
         javax.servlet.jsp-api
         2.3.1
         provided
      
      
      
         org.springframework
         spring-web
         ${spring.version}
      
      
         org.springframework
         spring-core
         ${spring.version}
      
      
         org.springframework
         spring-beans
         ${spring.version}
      
      
      
         org.springframework
         spring-tx
         ${spring.version}
      
      
      
         org.springframework
         spring-context
         ${spring.version}
      
      
      
         org.springframework
         spring-webmvc
         ${spring.version}
      
      
      
         org.slf4j
         slf4j-log4j12
         1.7.25
      
      
      
         log4j
         log4j
         1.2.17
      
      
      
         junit
         junit
      
      
      
         mysql
         mysql-connector-java
         5.1.49
      
      
      
         org.mybatis
         mybatis
         3.4.6
      
      
      
         org.springframework
         spring-jdbc
         ${spring.version}
      
      
         org.mybatis
         mybatis-spring
         2.0.2
      
      
      
         com.alibaba
         druid
         1.1.18
      
      
         junit
         junit
         4.12
         test
      
      
      
         org.springframework
         spring-aop
         ${spring.version}
      
      
         org.aspectj
         aspectjrt
         1.8.8
      
      
         org.aspectj
         aspectjweaver
         1.8.3
      
      
         org.projectlombok
         lombok
         1.18.12
         compile
      
      
         junit
         junit
         4.11
         test
      
      
    • 引入对应的配置文件
      (1)applicationContext.xml
      (2)struts.xml
      (3)log4j.properties
      (4)xxxMapper.xml
    • 初始化配置
      Spring —ContextLoaderListener -> web.xml
      Struts2—filter -> web.xml
       
    
       org.springframework.web.context.ContextLoaderListener
    
    
       contextConfigLocation
       classpath:applicationContext.xml
    
    
    
    
       struts2
       org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
    
    
       struts2
       /*
    
    
  • 编码

    • DAO(Spring+Mybatis)
      1.配置文件的配置
      	(1).DataSource
      	(2).SqlSessionFactory --->SqlSessionFactoryBean
      		1>.dataSource
      		2>.typeAliasesPackage
      		3>.mapperLocations
      	(3).MapperScannerConfigur --->DAO接口实现类	
      2.编码
      	(1).entity
      	(2).table数据库表
      	(3).DAO接口
      	(4).实现Mapper
      
    • Service(Spring添加事务)
      1.原始对象 ---->注入DAO
      2.额外功能 ---->DataSourceTransactionManager --->dataSource
      3.切入点 + 事务属性
      	@Transactional(propagation,redOnly...)
      4.组装切面
      	 
    • Controller(Spring+Struts2)
      1.开发控制器 impliements Action 注入Service
      2.Spring的配置文件
      	(1).注入Service
      	(2).scope=prototype
      3.struts.xml
      	
      
三、Spring多配置文件

Spring会根据需要,把配置信息分门别类的放置在多个配置文件中,便于后续的管理及维护。
DAO -------------application-dao.xml
Service -------------application-service.xml
Action -------------application-action.xml
注意:虽然提供了多个配置文件,但是后续应用的过程中,还要进行整合

  • 通配符方式
1.非web环境
	ApplicationContext ctx = new ClassPathXmlApplicationContext("/application-*.xml")
2.web环境
 	
        contextConfigLocation
        classpath:applicationContext-*.xml
    
  • import标签
applicationContext.xml 目的 整合其他配置内容



1.非web环境
	ApplicationContext ctx = new ClassPathXmlApplicationContext("/application.xml")
2.web环境
 	
        contextConfigLocation
        classpath:applicationContext.xml
    

四、Spring+SpringMVC+Mybatis编码整合

待完结。。。。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/695084.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号