SSM
:two_hearts: build SSM from 0 👉🏽👉🏽 distributed micro service.
Install / Use
/learn @crossoverJie/SSMREADME
I'll update some skills in actual development aperiodically.There are no complicated operation flows or xxx system,just some practical shares about skills.
Directory Structure
├── SSM-API // common API
│ ├── src/main
│ ├── ├──java/com/crossoverJie // specific code。
│ ├── ├──resources
├── SSM-BOOT // Available for internal use of dubbo dependencies
│ ├── ├──resources/spring // dubbo consumer configuration
├── SSM-SECONDS-KILL // seckill module
│ ├── ├──SSM-SECONDS-KILL-API // seckill open api
│ ├── ├──SSM-SECONDS-KILL-ORDER-CONSUMER // Kafka consumer module
│ ├── ├──SSM-SECONDS-KILL-SERVICE // service module
│ ├── ├──SSM-SECONDS-KILL-WEB // web module
├── SSM-SERVICE // The service implementation of the dubbo application
│ ├── src/main
│ ├── ├──java/com/crossoverJie/api // specific code
│ ├── ├──├──controller // Heartbeat detection interface
│ ├── ├──├──dubbo // Dubbo related code
│ ├── ├──├──├──dao // dao package
│ ├── ├──├──├──pojo // pojo package
│ ├── ├──├──├──service // service package
│ ├── ├──├──├──util // Toolkit
│ ├── ├──├──impl // implement dubbo API
│ ├── ├──resources // configuration file
│ ├── ├──├──mapping // *.mapper configuration file
│ ├── ├──├──spring // Spring related configuration file
├── SSM-WEB // web application
│ ├── src/main
│ ├── ├──java/com/crossoverJie // specific code
│ ├── ├──├──controller // controller package
│ ├── ├──├──cxf // CXF related code
│ ├── ├──├──dao // dao package
│ ├── ├──├──enums // enum package
│ ├── ├──├──intercept // Interceptor
│ ├── ├──├──kafka // Kafka
│ ├── ├──├──├──official // Official consumption
│ ├── ├──├──├──optimization // Multi-threaded consumption
│ ├── ├──├──lucene // Lucene related code
│ ├── ├──├──pojo // pojo package
│ ├── ├──├──req // request package
│ ├── ├──├──res // response package
│ ├── ├──├──service // service pachage
│ ├── ├──├──shiro // shiro related code
│ ├── ├──├──util // Toolkit
│ ├── ├──├──vo // vo package
│ ├── ├──resources
│ ├── ├──├──mapping // *.mapper configuration file
│ ├── ├──webapp // front code
├── doc
│ ├──lucene // lucene related code
│ ├──sql // sql scripts
├── .gitignore // gitignore
├── pom.xml // parent pom
├── LICENSE
├── README.md
TODO LIST
- [x] SSM(一)架构的整合
- [x] SSM(二)Lucene全文检索
- [x] SSM(三)Shiro使用详解
- [x] SSM(四)WebService入门详解
- [x] SSM(五)基于webSocket的聊天室
- [x] SSM(六)跨域传输
- [x] SSM(七)在JavaWeb应用中使用Redis
- [x] SSM(八)动态切换数据源
- [x] SSM(九) 反射的实际应用 - 构建日志对象
- [x] SSM(十) 项目重构-互联网项目的Maven结构
- [x] SSM(十一) 基于dubbo的分布式架构
- [x] SSM(十二) SSM(十二) dubbo日志插件
- [x] SSM(十三) 将dubbo暴露出HTTP服务
- [x] SSM(十四) 基于annotation的http防重插件
- [x] SSM(十五)乐观锁与悲观锁的实际应用
- [x] SSM(十六)曲线救国-
Kafka consumer消费异常处理 - [x] SSM(十七) MQ应用
- [x] SSM(十八) 秒杀架构实践
Quick Start
- Import SQL Script
https://github.com/crossoverJie/SSM/tree/master/doc/sql
Q&A
Does the reliance or code that begins with crossoverJie do not exist?
This is because I have a dependency on my jar package in the project, which is not published to the maven central factory library.
Because there is dependence:
https://github.com/crossoverJie/SSM-REQUEST-CHECK
https://github.com/crossoverJie/SSM-DUBBO-HTTP
https://github.com/crossoverJie/SSM-DUBBO-FILTER
jar.
solution:
- if you do not need them, please remove it.
- if you need,flow:
https://github.com/crossoverJie/SSM-REQUEST-CHECK
https://github.com/crossoverJie/SSM-DUBBO-HTTP
and Installed locally。
Partial Screenshots





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"}
More Information
Contact Author

Related Skills
node-connect
334.1kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
82.1kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
334.1kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
commit-push-pr
82.1kCommit, push, and open a PR
