继续电商框架搭建~
- 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"/> <!--这里需要注意的是'$' 要用 '&'代替 --> <property name="url" value="jdbc:mysql://localhost:3306/ecom?useUnicode=true&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的其他配置
- 编码过滤器(顾名思义就是对请求进行编码上的过滤),如下:
<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>
- 上下文监听,如下:
<listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener>
查看下一篇博客,测试配置效果。
相关推荐
Spring Boot是Spring框架的一个扩展,旨在简化Spring应用的初始搭建以及开发过程。它集成了大量常用的第三方库配置,如JPA、MVC、Data、Security等,通过“约定优于配置”的原则,极大地提高了开发效率。在这个项目...
在名为"shop"的项目中,我们可以推测这是一个基于SSM+M框架搭建的电商应用。可能包含用户模块(如注册、登录)、商品模块(商品展示、分类、搜索)、购物车模块以及订单处理等常见功能。开发者利用Spring管理服务层...
总结来说,"springboot+mybatis+mysql仿天猫商城"项目是一个结合了Spring Boot的快速开发能力、MyBatis的灵活数据访问机制以及MySQL的强大数据库功能的电商系统。对于初学者而言,该项目提供了深入了解和实践这三大...
基于SSM框架的Java电商项目源码+数据库+项目说明.zip # 码农商城 基于SSM框架的Java项目 # 注意 代码 clone 下来之后有几个 jar 包需要使用 maven 自行导入: > ueditor > json > fastdfs # 技术选型 1. ...
在本文中,我们将深入探讨如何使用Spring、SpringMVC和MyBatis这三大核心框架来构建一个完整的电商项目。这个项目不仅包含了后端服务的实现,还提供了前端展示页面,支持对数据库中的商品进行增删改查操作。下面将...
5. **MVC模式**:Model-View-Controller(模型-视图-控制器)架构模式很可能在项目中被应用,它将业务逻辑、数据和用户界面分离,便于维护和扩展。 6. **安全机制**:为了保护用户信息,项目可能包含了安全措施,...
在本系统中,SpringBoot负责核心的框架搭建,包括服务的启动、配置管理、依赖注入等,使得开发者能够快速地进行业务逻辑开发,无需关注底层配置细节。 其次,MyBatis是一个优秀的持久层框架,它支持定制化SQL、存储...
涉及到的技术栈广泛,从后端的SpringBoot+MyBatis到前端的MVC架构和现代前端框架,每一个环节都需要精细的设计和实施,以打造一个高效、安全、用户体验优良的电商系统。对于开发者来说,深入理解和掌握这些技术,将...
本文将详细讲解一个基于maven、springmvc、mybatis技术栈的电商项目,结合svn版本控制和hudson持续集成的实施过程。广西移动电子商城项目旨在构建一个网上商城,以应对通信行业竞争格局的变化,强化服务竞争力。系统...
该购书商城系统遵循MVC(Model-View-Controller)设计模式,使得业务逻辑、数据处理和用户界面相分离,提高了代码的可维护性和可扩展性。系统可能包含以下几个主要模块: - 用户模块:注册、登录、个人信息管理等...
+ 作为 Java 开发工程师,负责框架搭建、参与产品设计、产品功能模块编码等工作 * xxxx 有限公司(2015.06 – 2016.06) + 作为 Java 开发工程师,负责业务了解、基本功能模块的编码实现等工作 * 电商商城(2016....
秒杀系统是电商领域常见的一种促销手段,它能够在短时间内吸引大量用户进行抢购,因此对系统的性能、稳定性和并发处理能力有着极高的要求。本项目是基于SpringBoot、MyBatis、Redis和RabbitMQ这四个核心组件实现的...
“llmall:基于springboot2.0+angular1.x+mysql+mybatis+redis商城系统1.0”是一个完整的电子商务平台开发框架,它融合了多种核心技术,旨在提供高效、稳定且易于扩展的在线购物体验。下面将深入解析这个系统的各个...
基于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"同样强调了这个项目的核心技术栈和内容——基于Java的SSM框架和前端的Vue.js技术,用于搭建一个电商平台,旨在帮助贫困地区农民销售农产品。...
【SpringBoot高仿小米电子商城项目模板】是一个基于SpringBoot框架构建的电子商务系统模板,旨在模仿小米商城的界面和功能,提供一个快速开发电商应用的基础。这个项目模板可以帮助开发者节省大量的时间,让他们能够...
本文将深入探讨`mall-tiny-01`项目,这是一个利用SpringBoot和MyBatis技术栈构建的基础电商系统框架。该框架旨在提供一个快速开发的起点,帮助开发者在短时间内搭建起一个功能完备的在线商城。项目源码可以在GitHub...
该项目采用SSM(Spring+Spring MVC+Mybatis)框架进行开发,通过MySQL数据库管理数据,实现了农业电商服务系统的各项功能。 项目主要功能涵盖了农业产品的在线展示、交易、支付以及用户管理等多个方面。用户可以在...
基于SSM(Spring+Spring MVC+MyBatis)框架的农副产品销售网站,集成了高效稳定的技术架构与丰富的电商功能。采用Spring管理业务逻辑,Spring MVC处理前后端交互,MyBatis优化数据库操作,确保系统流畅运行。功能上...
SSM入门级电商源码是一个基于Java开发的电子商务平台项目,主要使用了Spring、Spring MVC和MyBatis三个框架,这三者合称为SSM框架。这个源码适合初学者学习,通过它,你可以深入理解如何在实际项目中集成这三个框架...