第一天:电商Ego-基于SOA架构,使用Dubbo,逆向工程,分页插件完成商品查询
一、准备工作
1、电商行业介绍
B2B:企业到企业
B2C:商家到客户
C2C:客户到客户
O2O:线下到线下
2、技术选型
Spring、SpringMVC、MyBatis
JSP、JSTL、jQuery、jQuery plugin、EasyUI、KindEditor(富文本编辑器)、CSS+DIV
Redis
Solar
Dubbo
MySql
Nginx
jsonp
nexus maven私服
MyBatis逆向工程
HttpClient(使用java完成请求及响应的技术)
MyCat(mysql分库分表技术)
3、开发工具和环境
idea
Maven3.x
Tomcat 7.0.96
JDK1.8
Mysql 5.7.26
Nginx 1.17.3
redis 3.0.504
windows7
Linux(CentOS)
4、整个电商结构图
5、基于SOA架构
二、数据库准备和逆向工程
1、直接运行sql脚本
2、使用逆向工程生成mapper和pojo
三、搭建Maven环境
1、为什么使用Nexus搭建maven私服(私服的作用)
1、1公司开发成员可能没有外网,需要通过局域网去连接nexus私服,由私服连接外网
1、2把项目发布到私服,其他人员从私服下载
2、使用私服之后的架构图
3、搭建nexus的步骤
3、1把nexus解压包解压到非中文目录
3、2修改nexus端口(nexus-2.12.0-01\conf\nexus.properties:默认端口8081)
3、3更新索引库(不配置的话无法搜索:大小2.0G左右)
3、4 nexus-2.12.0-01\bin\jsw\windows-x86-64(找对应自己的系统)
3、4、1install-nexus.bat安装服务
3、4、2 start-nexus.bat 开启服务
3、4、3 stop-nexus.bat 停止服务
3、4、4 uninstall-nexus.bat 卸载服务
3、5 在浏览器输入 http://localhost:8091/nexus
3、6 点击右侧 login ,输入用户名:admin,密码:admin123
3、7 在左侧搜索框中输入 artifact id 测试是否配置成功
4、使用maven连接私服
4、1 前提:把maven环境搭建,并设置users settings引用settings.xml
4、2 在 settings.xml 配置
4、2、1 本地仓库路径
4、2、2 配置 jdk
4、2、3 配置私服构建(连接私服用的到 jar 等内容):注意里面的id设置 profile
4、2、4 配置让私服构建生效:对应4、2、3里的 idactiveProfiles
4、2、5 配置镜像,maven 连接私服 mirror
5、把项目发布到私服的步骤
5、1 在 pom.xml 中配置私服路径
5、2 在 settings.xml 中配置连接私服仓库的用户名和密码
5、2、1 <server>中<id>和 pom.xml 中<repository>中<id>对应
5、3 右键项目--> run as 输入 deploy
四、创建项目
1. 创建六个项目:像创建parent,再在parent项目里创建子module
1.1 ego-commons: 放工具类等
1.2 ego-manage: 后台项目
1.3 ego-parent:父项目
1.4 ego-pojo:实体类
1.5 ego-service: 服务接口
1.6 ego-service-impl: dubbo 的 provider
2. 把后台页面放在 ego-manage/WEB-INF 中
3. 在 ego-manage 编写控制器类
五、MyBatis分页插件
1. 在mybatis.xml中配置<plugin>标签,在程序员所编写的sql命令基础上添加一些内容.
2. 在 pom.xml 配置依赖pagehelper
3. 创建 mybatis.xml 并配置插件信息
<configuration><plugins><plugin interceptor="com.github.pagehelper.PageHelper">
<!-- 告诉分页插件是哪个数据库 --><property name="dialect" value="mysql"/>
</plugin></plugins></configuration>
4. 在 applicationContext.xml 中配置加载 mybatis.xml:SqlSessionFactoryBean里的configLocation
5. 编写代码时注意: PageHelper.startPage(page, rows)写在查询全部上面.
六、实现商品分页功能
1. 在 ego-commons 中创建 EasyUIDatagrid 类
1.1 把所有 ego-pojo 中类序列化
2. 在 ego-service 中创建接口 TbItemDubboService
3. 在 ego-service-impl 编写功能 TbItemDubboServiceImpl
4. 在 ego-service-impl 中 applicationContext-dubbo.xml 配置接口
5. 编写 Test 类运行 dubbo 服务 Main.main(args)
6. 在 ego-manage 添加 TbItemService 及实现类
7. 在 ego-manage 里新建 TbItemController
七、商品下架、上架和删除
1. 在 ego-service 中 TbItemDubboService 接口及实现类添加
2. 在 ego-commons 中添加 EgoResult,做为 java 代码和 jsp 叫做公共类
3. 在 ego-manage 的 TbItemService 及实现类添加
4. 在 ego-manage 中 TbItemController 添加三个控制器方法