#### 这一个什么项目
##### 使用技术
Spring MVC
Spring Security
Spring webflux
Spring stomp
Jetty 嵌入式运行
H2 嵌入式数据库
Spring Security OAuth2 Client
ActiveMQ
实现功能
用户使用 Stomp 协议发送,接收信息
用户账号注册,账号密码登陆认证
单用户登陆控制
github,google 授权登陆
实时接收,发送信息,用户实时在线列表
API 接口访问权限控制
订阅频道信息权限控制
既可以使用模板技术页面,可以使用前端分离的方式,可以自由选择
因为这个项目使用 Jetty 作为嵌入式 Servlet 容器,可以像 Spring Boot 使用 main 方法直接运行项目,一句话概括 一个使用 Spring MVC 项目就像 Spring Boot 一样运行,一样部署。如果你只想单纯使用 Spring MVC 构建项目,但是像和 Spring Boot 直接编译成一个 jar 运行,又可以忍受没有修改自动编译重启,可以了解这个 Demo。
在逐步开发过程中,发现自己需求,用户使用,页面样式,做得都不是很好。希望很和牛逼的人合作,一齐完善这个项目,能让它变成可以使用的产品。自己也可以在此不断学习,不断累计新的知识,慢慢变强起来。如果有人想加入我,这个项目里的三个邮箱都是我的账户,随时可以给我 email,
github
为什么选用 Spring MVC
其实这种 Spring Stomp+Spring Security 项目网上有很多,大多数都是用 Spring Boot 构建,很少有用 MVC 的。其实这几年很多新出技术 demo 大多数都是用 Spring Boot 构建,Spring Boot 借助简洁的配置,大量自动化注入深得开发者喜爱,抢夺 Spirng MVC 市场。但是,再学习前提下,我特别喜欢用 Spring MVC,可以深入了解每一个技术细节,每引入一个新东西,都需要了解怎么合并到 Spring 框架中。我一开始做的时候就直接选择 Spring MVC,当我想去网上搜索一些参照例子,发现少得可惜,也踩了不少坑。如果你看下这个项目代码,你会发现,将 pom 的依赖换成 Spring Boot,不用改任何代码就可以直接运行了。因为你会发现,这个项目也基本上没有任何 xml 配置,非常简洁,引入 Spring Security 等框架也只是加一个注解 OK。公司构建一个普通 Java Web 项目都喜欢用 Spring Boot,因为构建非常快,配置少,部署方便,但是使用 Spring MVC 构建也不差什么,Spring Boot 有很多特性都是专门为 Spring Cloud 使用,单纯用来做 Web 有点浪费了。很多人还停留在,使用 Spring MVC 这些框架就是要引入一大堆 xml 配置文件,但是我跟你说,自从 Spring 3.2 推出后,就可以使用 Java Config 方式了,现在都更新到了 Spring 5 了,还在用 xml 方式构建项目。
项目路径
http://shenyifeng.tk/static/html/jetty-chat.html
登录页面 初始化了三个账户 ting6405@gmail.com,aojianshop@gmail.com,shenyifeng0xw@gmail.com,密码:123456
其他的功能我就不展示了,有兴趣可以直接到 http://shenyifeng.tk/static/html/jetty-chat.html 查看
代码就在 https://github.com/xiaowu6666/spring-stomp-security-webflux-embedded-jetty