为什么要搭建maven私服?
毕竟不是传奇私服,好好的maven不用,为什么要搭建maven私服呢?其实这个问题有很多答案,我这边搭建私服的目的有两个:
- 封装公共类库,以工具类和验证类为主。
- 封装权限系统,将权限系统分为带部门的审批权限系统和不带部门的浏览权限系统两种,根据具体的业务,引入不同的权限系统。
没啥高深技术,只求水水更健康!
毕竟不是传奇私服,好好的maven不用,为什么要搭建maven私服呢?其实这个问题有很多答案,我这边搭建私服的目的有两个:
之前搭建好Nexus私服之后,就想着开始封装一套固定的权限管理模块,以备公司项目使用,之前我们部门一直使用的是Shiro,但是后来经过再三的考虑,感觉Shiro毕竟不是Spring的亲儿子,小版本升级还好,如果一旦遇到Springboot的大版本升级,则会明显感觉到亲儿子在时效性上的优势(之前我们试图在Springboot2.0上使用Activiti6,噩梦啊!)
好了,闲言少叙,现在开始在Springboot2.0中加入SpringSecurity吧!
上一篇文章(《搭建Naven私服Nexus3,并在IDEA的Springboot项目下使用》)我们讲到了如何使用Nexus搭建私服并上传相关的项目以及如何在宿主项目中使用Nexus私服的库。
现在我们回想一下我当时做这个私服有两个目的:
第一个目的很好实现, 上一篇文章已经带着大家实现了,问题不大,但是第二个目的,需要将一个项目的Controller Service和Mapper以及静态页面都要封装起来,并且让宿主项目可以通过pom文件的dependency就可以引入并使用,这里就面临一个问题了,如何让引入项目的Controller能起作用呢?默认Springboot是不扫描子项目的注解的呀?
这里大家应该很奇怪,为什么先要介绍我的布局框架呢?其实主要的原因是因为先了解了我的布局框架后,再去理解我为什么会遇到这样的问题,会比较容易有代入感,下次看官你也遇到这种情况的时候可以很快的想起来这篇文章的解决方案了。
现在先来简单介绍一下我的布局,看代码:
这里我先要说明一下,我们的项目架构是Springboot+Shiro+Ehcache+ThymeLeaf+Mybaits,在这个基础上,我们再加入了CAS单点登录,虽然前面的框架看着很长,但是和单点登录相关的核心架构其实就是Springboot和Shiro而已,所以在看这篇文章之前,需要你掌握的知识有Springboot的基础框架搭建以及集成Shiro后的一些操作,因为之后的集成CAS其实也是在这个基础上进行的修改。