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

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...

    ssm框架Java毕设源码-jspm农业电商服务系统_--论文-mysql+项目文档.zip

    该项目采用SSM(Spring+Spring MVC+Mybatis)框架进行开发,通过MySQL数据库管理数据,实现了农业电商服务系统的各项功能。 项目主要功能涵盖了农业产品的在线展示、交易、支付以及用户管理等多个方面。用户可以在...

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

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

    SSM入门级电商源码

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

Global site tag (gtag.js) - Google Analytics