:two_hearts: build SSM from 0 👉🏽👉🏽 distributed micro service.

3443
1339
Java



使用Idea搭建的Maven项目,会不定期更新一些在实际开发中使用的技巧,没有复杂的业务流程,更不是XXXX系统,只有一些技术的分享

目录结构

├── SSM-API                                    // 通用API  
│   ├── src/main
│   ├── ├──java/com/crossoverJie               // 具体代码。  
│   ├── ├──resources
├── SSM-BOOT                                   // 提供给内部使用的dubbo依赖
│   ├── ├──resources/spring                    // dubbo consumer相关配置
├── SSM-SECONDS-KILL                           // 秒杀模块
│   ├── ├──SSM-SECONDS-KILL-API                // 对外 dubbo 相关的 api
│   ├── ├──SSM-SECONDS-KILL-ORDER-CONSUMER     // 订单的 kafka 消费
│   ├── ├──SSM-SECONDS-KILL-SERVICE            // dubbo 服务模块
│   ├── ├──SSM-SECONDS-KILL-WEB                // Web 模块
├── SSM-SERVICE                                // dubbo应用的service实现
│   ├── src/main
│   ├── ├──java/com/crossoverJie/api           // 具体代码
│   ├── ├──├──controller                       // 心跳检测接口
│   ├── ├──├──dubbo                            // dubbo相关代码
│   ├── ├──├──├──dao                           // dao层
│   ├── ├──├──├──pojo                          // pojo包
│   ├── ├──├──├──service                       // service层
│   ├── ├──├──├──util                          // 工具类
│   ├── ├──├──impl                             // dubbo API实现
│   ├── ├──resources                           // 配置文件
│   ├── ├──├──mapping                          // *.mapper配置文件
│   ├── ├──├──spring                           // spring相关配置文件
├── SSM-WEB                                    // web应用
│   ├── src/main
│   ├── ├──java/com/crossoverJie               // 具体代码
│   ├── ├──├──controller                       // 控制器层
│   ├── ├──├──cxf                              // CXF相关代码
│   ├── ├──├──dao                              // dao层
│   ├── ├──├──enums                            // 枚举包
│   ├── ├──├──intercept                        // 拦截器
│   ├── ├──├──kafka                            // Kafka
│   ├── ├──├──├──official                      // 官方消费
│   ├── ├──├──├──optimization                  // 多线程消费
│   ├── ├──├──lucene                           // Lucene 相关包
│   ├── ├──├──pojo                             // pojo包
│   ├── ├──├──req                              // 请求类
│   ├── ├──├──res                              // 响应类
│   ├── ├──├──service                          // service层
│   ├── ├──├──shiro                            // shiro相关代码
│   ├── ├──├──util                             // 工具类
│   ├── ├──├──vo                               // vo包
│   ├── ├──resources
│   ├── ├──├──mapping                          // *.mapper配置文件
│   ├── ├──webapp                              // 前端文件
├── doc
│   ├──lucene                                  // lucene文件
│   ├──sql                                     // sql脚本
├── .gitignore                                 // git忽略项
├── pom.xml                                    // 父pom
├── LICENSE               
├── README.md               

TODO LIST


常见问题

crossoverJie 开头的依赖或代码不存在?

这是由于我在项目中有依赖自己的 jar 包,并没有发布到 maven 中央厂库。

解决方案:

  • 如果不需要这两个插件再 pom 依赖中去掉相关依赖即可。
  • 如果需要则按照

https://github.com/crossoverJie/SSM-REQUEST-CHECK

https://github.com/crossoverJie/SSM-DUBBO-HTTP

https://github.com/crossoverJie/SSM-DUBBO-FILTER

install 到本地即可。

  • 不要 clone master分支,使用https://github.com/crossoverJie/SSM/releases/tag/2.1.0 或之前的 tag 即可。

应用截图

封面.jpg

dubbo-http封面.jpg

2.jpg

2017-04-25 15:15:38,968 DEBUG [com.alibaba.dubbo.remoting.transport.DecodeHandler] -  [DUBBO] Decode decodeable message com.alibaba.dubbo.rpc.protocol.dubbo.DecodeableRpcInvocation, dubbo version: 2.5.3, current host: 127.0.0.1
2017-04-25 15:15:39,484 DEBUG [com.crossoverJie.dubbo.filter.DubboTraceFilter] - dubbo请求数据:{"args":[1],"interfaceName":"com.crossoverJie.api.UserInfoApi","methodName":"getUserInfo"}
2017-04-25 15:15:39,484 INFO [com.crossoverJie.api.impl.UserInfoApiImpl] - 用户查询Id=1
2017-04-25 15:15:39,505 DEBUG [org.mybatis.spring.SqlSessionUtils] - Creating a new SqlSession
2017-04-25 15:15:39,525 DEBUG [org.mybatis.spring.SqlSessionUtils] - SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@6f56b29] was not registered for synchronization because synchronization is not active
2017-04-25 15:15:39,549 DEBUG [org.mybatis.spring.transaction.SpringManagedTransaction] - JDBC Connection [com.alibaba.druid.proxy.jdbc.ConnectionProxyImpl@778b3121] will not be managed by Spring
2017-04-25 15:15:39,555 DEBUG [com.crossoverJie.api.dubbo.dao.T_userDao.selectByPrimaryKey] - ==>  Preparing: select id, username, password,roleId from t_user where id = ? 
2017-04-25 15:15:39,591 DEBUG [com.crossoverJie.api.dubbo.dao.T_userDao.selectByPrimaryKey] - ==> Parameters: 1(Integer)
2017-04-25 15:15:39,616 DEBUG [com.crossoverJie.api.dubbo.dao.T_userDao.selectByPrimaryKey] - <==      Total: 1
2017-04-25 15:15:39,616 DEBUG [com.alibaba.druid.pool.PreparedStatementPool] - {conn-10003, pstmt-20000} enter cache
2017-04-25 15:15:39,617 DEBUG [org.mybatis.spring.SqlSessionUtils] - Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@6f56b29]
2017-04-25 15:15:45,473 INFO [com.crossoverJie.dubbo.filter.DubboTraceFilter] - dubbo执行成功
2017-04-25 15:15:45,476 DEBUG [com.crossoverJie.dubbo.filter.DubboTraceFilter] - dubbo返回数据{"args":[{"id":1,"password":"123456","roleId":1,"userName":"crossoverJie"}],"interfaceName":"com.crossoverJie.api.UserInfoApi","methodName":"getUserInfo"}

更多信息

联系作者