topic01 工程拆分
manager-web 独立:
还需要添加spring相关依赖
web配置独立tomcat插件 8081manger-service 打war包 web.xml
- 瓜分配置文件,web只留springmvc.xml
- manager maven run as install 安装到本地仓库
Q:为什么不依赖service而是interface?
A:那样分工程有什么意义?
dubbo接口interface句:一个通讯的规范
topic02 搭建zookeeper&dubbo
zookeeper篇:
step0: jdk环境
step1:(从这里开始都是zookeeper文件夹相对路径) mkdir data
step2: mv conf/zoo_sample.cfg conf/zoo.cfg(方便管理)
vim conf/zoo.cfg
dataDir=/root/zookeeper-3.4.6/data
clientPort=2181 #客户端连接zookeeper的端口号
step3: bin/zkServer.sh start
bin/zkServer.sh status
bin/zkServer.sh stop
关闭防火墙 service iptables stop
chkconfig iptables off
data/zookeeper_server.pid 阻碍启动的杀手
dubbo篇:
初始化spring容器就造就了一个服务provider
springmvc.xml也可以初始化一个容器
service端
step1: dubbo相关三个包:排除spring和netty防止jar冲突
step2: ac-service.xml:dubbo本地约束
step3: dubbo三句:
application
registry
protocol dubbo 20800
service interface全类名 ref实现类(扫描的@Service)
web端
step1: dubbo相关三个包:排除spring和netty防止jar冲突
step2: ac-service.xml:dubbo本地约束
step3: 引用服务时候就在springmvc.xml中
dubbo三句:
application
registry
reference interface依赖的接口 id创建的service对象名@Autowired
直接用
topic3 异常处理
log4j调试卡着不动的原因:
- 数据库连接不上
- 数据中心zookeeper连接不上
- 逆向工程生成的文件有问题
pojo序列化(网络传输的需要)
implements Serializable
install pojo
我的问题
浏览器访问8081一直卡(web层)
log4j加入web的resources:closedChannelExeption线程:端口占用
原来查看一下端口,接受服务端只应该有“两句半”
发现连接的zookeeper主机地址写错了
终于成功了,还是要细心一点 ,对dubbo更熟悉一点,然后善于利用日
志log4j,利器
非重点
- debug模式:模式下找不到代码,添加代码
- dubbo:服务端得不到响应自动重试三次 可设置超时时间 timeout
- 监控中心:就是一个war,需要tomcat,最好和管理中心放在同一个
服务器上 tomcat的webapps下
启动tomcat bin/startup.sh
访问8080:dubbo-admin
有用的命令:tail -f 循环查看尾部命令
应用:tail -f logs/catalina.out
dubbo-admin/WEB-INF/dubbo.properties
注册中心地址端口配置,密码配置
topic4 编码部分
4.1配置文件
springmvc.xml 可以资源映射配置
(否则样式文件会被前端配置器拦截 url / 拦截 js css,jsp不拦截)
<mvc:resources location="/js/" mapping="/js/**"/>
<mvc:resources location="/css/" mapping="/css/**"/>
4.2 easyui前端框架
class=easyui-tree控件 day03会涉及更多关于此控件
data-options url 跳转的页面链接
商品添加页面:一个html片断,样式在母html引入
*class=easyui-datagrid
【重要】
1. data-options url 初始化页面的数据的请求
2. 所有请求都是AJAX请求
3.响应一个json,easyui-datagrid对它有要求
{total:”2”,rows:[{“id”:”1”,”name”:”张三”},{“id”:”
2”,”name”:”李四”}]}
rows里面的field与下面data-option的field:”name”对应
那total和row字段怎么办?common里面添加定制pojo
4.3 pageHelper:分页
配置:SqlMapConfig.xml 配置plugin
傻傻的问题:SqlMapConfig.xml 的名称 matters吗? 答案:与applicationContext-dao.xml 的 sqlSessionFactoryBean配 置吻合就行
原理:拦截器,修改sql语句
导入,安装(导入本地仓库)
在manager的dao层引用依赖
关键:
1. PageHelper.startPage(initPage,eachPage)
对下面一句查询生效
2. PageInfo<TbItem> pageInfo = new PageInfo<>(list);
pageInfo调用方法即可
web层: springMVC
pojo自动转json
分页版本pojo:通用pojo放在common工具类工程里
一旦修改(common interface)就Maven install
> 查询商品列表的警告问题: list:被PageHelper篡改了变成了一个page对象(arraylist添加了几 个成员变量的子类)