spring boot2.1.4+spring security+mybatis+jsp+Oracle整合

进行spring cloud的学习,要安装spring boot spring -tool-suite插件,我在第一次安装时,由于操作不当,两天才完全安装好,真的是要命了,感觉自己蠢死!下面就自己踩过坑以及一些小窍门和大家分享一下。

安装方法:(我使用的是eclipse ,所以就拿eclipse举例了)

 

提示:安装时,网速不好的话过程会比较漫长,所以最好是选择一个网络好一点的地方进行安装。

    方法1、可以自己在eclipse目录:help-->Eclipse Marketplace 下的Search中搜索spring-tool-suite如下图:

    spring boot2.1.4+spring security+mybatis+jsp+Oracle整合

点击右下角Installed进行安装。

方法2、在spring官网上下载相关的插件,然后导入到eclipse中,以下是下载步骤:

        2.1、查看自己eclipse版本是多少,help-->About Eclipse

            spring boot2.1.4+spring security+mybatis+jsp+Oracle整合

        2.2、现在该从官网上下载插件包了,但是进到官网上看到的都是类似于这种:

http://download.springsource.com/release/STS/3.8.1.RELEASE/dist/e4.6/spring-tool-suite-3.8.1.RELEASE-e4.6-win32-x86_64.zip格式的,切记不要下载,我们安装spring boot 插件需要下载  updatesite.zip结尾的压缩文件。

下面给出eclipse3.7.2插件包的路径:

官网路径:http://download.springsource.com/release/STS/2.9.2/dist/e3.7/springsource-tool-suite-2.9.2.RELEASE-e3.7.2-win32-x86_64.zip

所需插件路径: http://download.springsource.com/release/TOOLS/update/2.9.2.RELEASE/e3.7/springsource-tool-suite-2.9.2.RELEASE-e3.7.2-updatesite.zip

我们下载eclipse3.7.2版本spring boot 插件包复制上面【所需插件路径】浏览器回车然后下载即可。

但是,我的eclipse版本是4.5.2怎么办?我需要4.5.2版本的插件包,怎么弄?

点击官网,找到eclipse版本(我的是 4.5.2)对应的文件,如下图,

spring boot2.1.4+spring security+mybatis+jsp+Oracle整合

点击zip,然后复制出官网路径如下

http://download.springsource.com/release/STS/3.7.3.RELEASE/dist/e4.5/spring-tool-suite-3.7.3.RELEASE-e4.5.2-win32-x86_64.zip

对照着上面3.7.2版本路径修改一下复制出的4.5.2官网路径中标红地方即可。修改规则:

(1)STS  --> TOOLS/update

(2)dist 删掉

(3)spring-tool-suite  -->  springsource-tool-suite

(4)win32-x86_64.zip  -->  updatesite.zip

修改完即可得到4.5.2版本的spring boot 插件包路径(如下)

http://download.springsource.com/release/TOOLS/update/3.7.3.RELEASE/e4.5/springsource-tool-suite-3.7.3.RELEASE-e4.5.2-updatesite.zip

复制路径到浏览器回车即可下载。

那么如果你的eclipse是其他版本的话,我就不一一叙述了啊,自己对照上面步骤拼出路径进行下载即可。

各个历史版本下载地址:

https://spring.io/tools3/sts/legacy

 

 

2.3、现在该讲怎么安装了啊,插件包下载到本地之后,进入到 Eclipse --> Help--> Install new Sofware下,如下图:

spring boot2.1.4+spring security+mybatis+jsp+Oracle整合

点击Add,添加本地下载好的 updatesite.zip结尾的压缩文件,

spring boot2.1.4+spring security+mybatis+jsp+Oracle整合

然后点击next

spring boot2.1.4+spring security+mybatis+jsp+Oracle整合

next

spring boot2.1.4+spring security+mybatis+jsp+Oracle整合

选择同意,然后finish

spring boot2.1.4+spring security+mybatis+jsp+Oracle整合

提示会重启eclipse,点击yes重启即可

重启之后,我们进入到  Eclipse-->Windows --> Preferences下,会看到有个spring模块,此时就代表,spring boot 插件安装成功。

spring boot2.1.4+spring security+mybatis+jsp+Oracle整合

spring boot2.1.4+spring security+mybatis+jsp+Oracle整合

spring boot2.1.4+spring security+mybatis+jsp+Oracle整合

根据自己需求选择配置,我这里是选择的war包,jdk8,springboot官方推荐是jdk8,点自己next

spring boot2.1.4+spring security+mybatis+jsp+Oracle整合

我这里选择的是web,mybaits,security。我这里用的是jsp所以没有选择Thymeleaf.官方推荐使用的是Thymeleaf,点击完成就创建成功了。

spring boot2.1.4+spring security+mybatis+jsp+Oracle整合

这三个文件可以删除

spring boot2.1.4+spring security+mybatis+jsp+Oracle整合

创建完成的项目是没有这些文件夹的,需要自己手动创建。

spring boot2.1.4+spring security+mybatis+jsp+Oracle整合

官方默认静态资源是放在static,下面的。所有的页面是放在templates。所以为了让项目能够访问须做如下配置

spring boot2.1.4+spring security+mybatis+jsp+Oracle整合

配置springmvc让项目访问。Mybatis配置是指定你的mapper.xml文件路径。Jsp配置的是热部署,不配置的话每次修改jsp页面都需要重启服务。为了能够使用jsp需加如下配置

spring boot2.1.4+spring security+mybatis+jsp+Oracle整合

到此一个没有权限控制的springboot配置完成。直接写前端页面调用controller,service,mapper,数据库就行了。

权限配置看下个文档

spring boot2.1.4+spring security+mybatis+jsp+Oracle整合

先创建sysuser(用户)、sysrole(角色)、syspermission(权限)。其实我的设计思路是不需要权限这张表的。我把角色就当成了权限。

spring boot2.1.4+spring security+mybatis+jsp+Oracle整合

实现security的UserDetailsService 重写loadUserByUsername方法。在1出将用户的角色塞进authorities我这是将角色当作权限塞进的。所以syspermission对我的影响不大。实际可以根据你的设计思路改. 在2的地方要注意,这里的user用的是security的user。所以我的sysuser中没有继承security的user。至于你想怎么搞,那就看你心情了。开心就好!

spring boot2.1.4+spring security+mybatis+jsp+Oracle整合

spring boot2.1.4+spring security+mybatis+jsp+Oracle整合

最后配配置SecurityConfig类(类名随意。开心就好),这个类要继承WebSecurityConfigurerAdapter。这个给里面会有很多坑。就不在这写了。到此配置完成

spring boot2.1.4+spring security+mybatis+jsp+Oracle整合

当我们哪个方法需要控制的是后只要加上@PreAuthorize("hasAuthority('ADMIN')")这个标签就可以了。admin是访问这个方法的权限(我这里是角色)