`
sophia828
  • 浏览: 9759 次
社区版块
存档分类
最新评论

4.电商框架搭建(二)MVC模式+mybatis

 
阅读更多

    继续电商框架搭建~

 

  • 4.服务器Java代码分层

     采用 MVC模式:

    • M概念对应:model包里的对象类
    • V概念对应:WEB-INF/views 下的页面
    • C概念对应:web包里的controller,表示逻辑处理。实际上逻辑处理又由多个部分组成 ,controller+service+dao,Controller是主要是用来接收请求+处理部分逻辑,service是用来把controller和dao结合起来的,处理部分逻辑,dao层是完成数据操作的。其中, service层和dao层我们又分别分为两层,接口层+实现层。实际工作中,一个项目有可能涉及到多个人、多个部门,这时候,需要合作的人之间会一起先定好接口,然后具体实现层就各归各位去完成了,合作的人之间不需要互相知道。

      综上,我们至少需要新建6个package和1个folder,但因为该项目需要用mybatis,dao层的实现会用xml完成,我一般会放到resources/新建的mapper文件夹中,具体新建情况如下:


 

 这里service.impl包就是service的实现层,dao层的sql实现,都在resources/mapper/下,一般以对应的dao接口为前缀+"mapper.xml" 来命名。

 

这几个层的调用顺序分别是:页面(发出请求)<--->controller<--->service<--->dao<--->数据库。

 

  •  5.配置Mybatis

    1>. 通过maven配置数据库以及Mybatis相关的包,要在pom.xml添加的依赖如下:

 

		<!-- mysql驱动,链接mysql必须要有的包 -->
		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
			<version>5.1.39</version>
		</dependency>
		
		<!-- 数据库连接池 -->
		<dependency>
			<groupId>commons-dbcp</groupId>
			<artifactId>commons-dbcp</artifactId>
			<version>1.4</version>
		</dependency>
		
        <!-- mybatis -->
        <dependency>
        	<groupId>org.mybatis</groupId>
        	<artifactId>mybatis</artifactId>
        	<version>3.4.1</version>
        </dependency>
        
        <!-- 把mybatis和spring结合起来的包 -->
        <dependency>
        	<groupId>org.mybatis</groupId>
        	<artifactId>mybatis-spring</artifactId>
        	<version>1.3.0</version>
        </dependency>
 

    2>.接下来,在web.xml配置整合Spring和mybatis的配置文件,添加内容如下:

  

 <context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath:config/spring-mybatis.xml</param-value>
  </context-param>
  

    3>.然后在resources/config/下新建spring-mybatis.xml文件,内容如下:

  

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mvc="http://www.springframework.org/schema/mvc"
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
            http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
            http://www.springframework.org/schema/mvc
            http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
            http://www.springframework.org/schema/context
            http://www.springframework.org/schema/context/spring-context-3.0.xsd
            http://www.springframework.org/schema/aop
            http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
            http://www.springframework.org/schema/tx
            http://www.springframework.org/schema/tx/spring-tx-3.0.xsd ">
    
    <!-- 自动扫描该包,将注解的类变为bean,并注入上下文直接使用-->  
    <context:component-scan base-package="com.qyuz.service.*"  />
    
    <!-- 由于包的兼容性问题, 这里不能用 ${jdbc.driver}类似的形式赋值了-->
    <!--  context:property-placeholder location="classpath:config/jdbc.properties" ignore-unresolvable="true"/>-->
    
    <!-- 1.数据库配置信息 -->
    <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
        <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
        <!--这里需要注意的是'$' 要用 '&amp;'代替 -->
        <property name="url" value="jdbc:mysql://localhost:3306/ecom?useUnicode=true&amp;characterEncoding=utf-8"/>
        <property name="username" value="jxh"/>
        <property name="password" value="123456"/>
        <property name="validationQuery" value="SELECT 1"/>
        <property name="testWhileIdle" value="true"/>
        <property name="timeBetweenEvictionRunsMillis" value="3600000"/>
        <property name="minEvictableIdleTimeMillis" value="1800000"/>
        <property name="testOnBorrow" value="true"/>
    </bean>
    
    <!-- 2.sessionFactory 将spring和mybatis整合 -->
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">  
        <property name="dataSource" ref="dataSource" />  
         <!--property name="configLocation" value="classpath:config/mybatis.cfg.xml" -->
        <property name="mapperLocations" value="classpath:mapper/*.xml" />
    </bean>
    
    <!-- 3.自动扫描 将Mapper接口生成代理注入到Spring-->
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer" autowire="byName">  
        <property name="basePackage" value="com.qyuz.dao" />  
        <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" />  
    </bean>    
    
    <!-- 4.配置事物 (事务管理)transaction manager, use JtaTransactionManager for global tx --> 
    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">  
        <property name="dataSource" ref="dataSource" />  
    </bean>
    
    <!-- 5.设置事物的传播行为种类 -->
    <tx:advice id="transactionAdvice" transaction-manager="transactionManager">
        <tx:attributes>
            <tx:method name="add*" propagation="REQUIRED" />
            <tx:method name="append*" propagation="REQUIRED" />
            <tx:method name="insert*" propagation="REQUIRED" />
            <tx:method name="save*" propagation="REQUIRED" />
            <tx:method name="update*" propagation="REQUIRED" />
            <tx:method name="modify*" propagation="REQUIRED" />
            <tx:method name="edit*" propagation="REQUIRED" />
            <tx:method name="delete*" propagation="REQUIRED" />
            <tx:method name="remove*" propagation="REQUIRED" />
            
            <tx:method name="get*" propagation="SUPPORTS" />
            <tx:method name="find*" propagation="SUPPORTS" />
            <tx:method name="load*" propagation="SUPPORTS" />
            <tx:method name="search*" propagation="SUPPORTS" />           
            <tx:method name="*" propagation="SUPPORTS" />
        </tx:attributes>
    </tx:advice>
    
    <!-- 6.定义一个切面,在定义的切面上加入事物 -->
    <aop:config>
        <aop:pointcut id="transactionPointcut" expression="execution(* com.qyuz.service..*Impl.*(..))" />
        <aop:advisor pointcut-ref="transactionPointcut" advice-ref="transactionAdvice" />
    </aop:config>
</beans>

 

 在这个文件中,做了以下几件事:

 

  • ①注册数据源并初始化,配置相关的数据库信息
  • ②注册sqlSessionFactory数据库访问会话工厂(类似数据库连接池?),并配置mapper, <property name="mapperLocations" value="classpath:mapper/*.xml" />,也就是dao层的实现
  • ③配置dao层接口,通过sqlSessionFactory将dao层注入到spring中
  • ④注册事务并初始化
  • ⑤和⑥结合起来配置事务,其中⑤是配置事务的传播行为种类,简单地说就是调用这些方法的时候,判断是否存在事务,如何处理,propagation的值表示如何处理;⑥是配置⑤发生的地方。这两个要结合使用。

    至此,mybatis相关的配置完成。

 

  • web.xml的其他配置
  1. 编码过滤器(顾名思义就是对请求进行编码上的过滤),如下:
    <filter>
        <filter-name>encodingFilter</filter-name>
        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
        <async-supported>true</async-supported>
        <init-param>
          <param-name>encoding</param-name>
          <param-value>UTF-8</param-value>
        </init-param>
      </filter>
      
      <filter-mapping>
        <filter-name>encodingFilter</filter-name>
        <url-pattern>/*</url-pattern>
      </filter-mapping>
     
  2. 上下文监听,如下:
      <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
      </listener>
     

     查看下一篇博客,测试配置效果。

  • 大小: 15 KB
  • 大小: 18.4 KB
分享到:
评论

相关推荐

    基于springboot+mybatis+mysql的电脑商城源码.zip

    Spring Boot是Spring框架的一个扩展,旨在简化Spring应用的初始搭建以及开发过程。它集成了大量常用的第三方库配置,如JPA、MVC、Data、Security等,通过“约定优于配置”的原则,极大地提高了开发效率。在这个项目...

    spring+springmvc+mybatis+maven框架

    在名为"shop"的项目中,我们可以推测这是一个基于SSM+M框架搭建的电商应用。可能包含用户模块(如注册、登录)、商品模块(商品展示、分类、搜索)、购物车模块以及订单处理等常见功能。开发者利用Spring管理服务层...

    springboot+mybatis+mysql仿天猫商城

    总结来说,"springboot+mybatis+mysql仿天猫商城"项目是一个结合了Spring Boot的快速开发能力、MyBatis的灵活数据访问机制以及MySQL的强大数据库功能的电商系统。对于初学者而言,该项目提供了深入了解和实践这三大...

    基于SSM框架的Java电商项目源码+数据库+项目说明.zip

    基于SSM框架的Java电商项目源码+数据库+项目说明.zip # 码农商城 基于SSM框架的Java项目 # 注意 代码 clone 下来之后有几个 jar 包需要使用 maven 自行导入: &gt; ueditor &gt; json &gt; fastdfs # 技术选型 1. ...

    使用spring+springmvc+mybatis搭建项目,带页面

    在本文中,我们将深入探讨如何使用Spring、SpringMVC和MyBatis这三大核心框架来构建一个完整的电商项目。这个项目不仅包含了后端服务的实现,还提供了前端展示页面,支持对数据库中的商品进行增删改查操作。下面将...

    电商网站完整代码(前端+后端)

    5. **MVC模式**:Model-View-Controller(模型-视图-控制器)架构模式很可能在项目中被应用,它将业务逻辑、数据和用户界面分离,便于维护和扩展。 6. **安全机制**:为了保护用户信息,项目可能包含了安全措施,...

    springboot+layui+mybatis商城后台管理系统.rar

    在本系统中,SpringBoot负责核心的框架搭建,包括服务的启动、配置管理、依赖注入等,使得开发者能够快速地进行业务逻辑开发,无需关注底层配置细节。 其次,MyBatis是一个优秀的持久层框架,它支持定制化SQL、存储...

    mall项目是一套电商系统,包括前台商城系统及后台管理系统,基于SpringBoot+MyBatis实现。 前台商城.zip

    涉及到的技术栈广泛,从后端的SpringBoot+MyBatis到前端的MVC架构和现代前端框架,每一个环节都需要精细的设计和实施,以打造一个高效、安全、用户体验优良的电商系统。对于开发者来说,深入理解和掌握这些技术,将...

    maven+springmvc+mybatis+svn+hudson

    本文将详细讲解一个基于maven、springmvc、mybatis技术栈的电商项目,结合svn版本控制和hudson持续集成的实施过程。广西移动电子商城项目旨在构建一个网上商城,以应对通信行业竞争格局的变化,强化服务竞争力。系统...

    基于SpringBoot + Mybatis + Thymeleaf + MySQL开发的购书商城系统.zip

    该购书商城系统遵循MVC(Model-View-Controller)设计模式,使得业务逻辑、数据处理和用户界面相分离,提高了代码的可维护性和可扩展性。系统可能包含以下几个主要模块: - 用户模块:注册、登录、个人信息管理等...

    Java程序员简历模板详细介绍

    + 作为 Java 开发工程师,负责框架搭建、参与产品设计、产品功能模块编码等工作 * xxxx 有限公司(2015.06 – 2016.06) + 作为 Java 开发工程师,负责业务了解、基本功能模块的编码实现等工作 * 电商商城(2016....

    基于SpringBoot+MyBatis+Redis+RabbitMQ 实现的秒杀系统.zip

    秒杀系统是电商领域常见的一种促销手段,它能够在短时间内吸引大量用户进行抢购,因此对系统的性能、稳定性和并发处理能力有着极高的要求。本项目是基于SpringBoot、MyBatis、Redis和RabbitMQ这四个核心组件实现的...

    llmall:基于springboot2.0+angular1.x+mysql+mybatis+redis商城系统1.0

    “llmall:基于springboot2.0+angular1.x+mysql+mybatis+redis商城系统1.0”是一个完整的电子商务平台开发框架,它融合了多种核心技术,旨在提供高效、稳定且易于扩展的在线购物体验。下面将深入解析这个系统的各个...

    基于SSM框架的Java电商项目

    基于SSM框架的Java电商项目 技术选型 Spring Spring MVC Mybatis redis solr EasyUI UEditor JQuery Freemark activMQ httpClient MySQL FastDFS ... 开发环境 InteliJ IDEA Maven Tomcat7 JDK Nginx Git postman ...

    ssm-Vue java电商扶贫助农网站论文+答辩ppt.rar

    【描述】描述中的"ssm-Vue java电商扶贫助农网站论文+答辩ppt.rar"同样强调了这个项目的核心技术栈和内容——基于Java的SSM框架和前端的Vue.js技术,用于搭建一个电商平台,旨在帮助贫困地区农民销售农产品。...

    SpringBoot高仿小米电子商城项目模板.rar

    【SpringBoot高仿小米电子商城项目模板】是一个基于SpringBoot框架构建的电子商务系统模板,旨在模仿小米商城的界面和功能,提供一个快速开发电商应用的基础。这个项目模板可以帮助开发者节省大量的时间,让他们能够...

    mall-tiny-01:mall集成SpringBoot + MyBatis构建基本框架,项目二进制文件地址github.commacrozhengmall-learningtreemastermall-tiny-01,引用出处www.macrozheng.com

    本文将深入探讨`mall-tiny-01`项目,这是一个利用SpringBoot和MyBatis技术栈构建的基础电商系统框架。该框架旨在提供一个快速开发的起点,帮助开发者在短时间内搭建起一个功能完备的在线商城。项目源码可以在GitHub...

    Java项目基于SSM实现的农副产品销售网站+代码+论文+答辩ppt

    基于SSM(Spring+Spring MVC+MyBatis)框架的农副产品销售网站,集成了高效稳定的技术架构与丰富的电商功能。采用Spring管理业务逻辑,Spring MVC处理前后端交互,MyBatis优化数据库操作,确保系统流畅运行。功能上...

    SSM入门级电商源码

    SSM入门级电商源码是一个基于Java开发的电子商务平台项目,主要使用了Spring、Spring MVC和MyBatis三个框架,这三者合称为SSM框架。这个源码适合初学者学习,通过它,你可以深入理解如何在实际项目中集成这三个框架...

    基于SSM框架的Java电商项目.zip

    Spring MVC Mybatis redis solr EasyUI UEditor JQuery Freemark activMQ httpClient MySQL FastDFS ... 开发环境 InteliJ IDEA Maven Tomcat7 JDK Nginx Git postman sqlyog win7 ... 计划 技术架构 (集群和分布式...

Global site tag (gtag.js) - Google Analytics