项目一众筹网08_01_项目里面如何加入SpringSecurity、怎么查看源码、找不到bean异常

系列文章目录

提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档

13-加入SpringSecurity环境

加入SpringSecurity环境,第一步就是加入依赖
在这里插入图片描述
在这里插入图片描述
参考源码
在这里插入图片描述

拿到父工程里面去
在这里插入图片描述
在这里插入图片描述
加入到父工程里面之后就没有了吗,其实还有要考虑的,
那就是什么地方用,这里就是哪个工程用?

父工程

一样的复制粘贴一下,只是这个子工程里面不用带版本号,仅此而已
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

	<filter>
		<filter-name>springSecurityFilterChain</filter-name>
		<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
	</filter>
	<filter-mapping>
		<filter-name>springSecurityFilterChain</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>

自己复制一下源码即可
然后使用注解开发模式,在配置类里面加2个注解
如下新建1个类,代码如下
在这里插入图片描述
这里抛出一个问题
在这里插入图片描述
区别如下:
在这里插入图片描述
在这里插入图片描述
所以最后我们选择哪个呢?
我们应该在SpringMvc的IOC容器里面去扫描,
因为浏览器直接访问的不是Handler就是view-controller
我们想控制的也是浏览器请求

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

14-找不到bean异常-分析问题

运行项目起来看一下,
注意直接访问登录接口(http://localhost:8080/atcrowdfunding02-admin-webui/admin/to/login.ht)会比较稳,
而不是去访问页面,因为页面可能因为未登录导致不能访问
在这里插入图片描述
此时运行项目会报这个(找不到bean)错,
但是不要慌,因为这个是springSecurity加入到项目里面首先要解决的一个问题
在这里插入图片描述
提出(发现)问题,分析问题、解决问题
其实就是找不到这个:
在这里插入图片描述
明明有,为什么找不到呢,这是因为查找bean需要到IOC容器里面去找
我们分析一下
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
因为此时springMvc的容器还没有创建好,所以找不到
如下:
在这里插入图片描述
在这里插入图片描述
我们后面来想办法
看看怎么解决

15-找不到bean异常-Debug看源码

怎么查看源码

第一步,要改一下tomcat的启动时间,默认的45秒肯定是不够的
在这里插入图片描述
打开源码有两种方法,一种是找到后,然后按住Ctrl键,点进去,
在这里插入图片描述

还有一种就是你得记得住类名,然后如下按Ctrl+shift+T,然后输入这个框架类的名字
在这里插入图片描述
Ctrl+O调出大纲
在这里插入图片描述
在这里插入图片描述
根据源码可知,如果wac是null,后面就不执行了,所以找不到就放弃了,源码里面没有else

打个断点进来
在这里插入图片描述
源码本身不难,只是不是我们自己控制的,所以有些人会觉得看源码非常枯燥
不能用心去看源码,其实是有点吃亏的,
不过也能理解,毕竟不是自己整的,不是按照自己的想法来的,需要去要强行适应
继续跟着源码一步一步调试往下走
去体会下面这条线是怎么走的
在这里插入图片描述

16-找不到bean异常-看源码

(略)

17-找不到bean异常-解决办法 一 把两个IOC容器合二为一

在这里插入图片描述
这句话怎么理解?
在这里插入图片描述
具体怎么做?
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

由于这种方案会破坏现有程序的结构,所以这里我们推荐用第二种方式,
看看能不能保持结构不变的情况下,又把这个问题完美的解决了

18-找不到bean异常-解决办法二-改源码

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
上面这里注释掉,还有一个地方
下面看具体操作
改源码,可参考前面说的
这里就不那么详细说了前期的步骤了,直接看具体改的地方
在这里插入图片描述
第一个地方:
在这里插入图片描述
第二个地方:
在这里插入图片描述
在这里插入图片描述
这个时候再运行项目,就会发现被SpringSecurity控制住了,几乎全部拦截了,
必须要登录被SpringSecurity判断了权限后才能看到我们的项目,
下面就是放行登录页和静态资源了
在这里插入图片描述

19-SpringSecurity原理

在这里插入图片描述

20-目标1-放行登录页和静态资源(下一篇)

总结

今日总结
1、项目里面加入springSecurity的依赖
2、加入依赖之后解决找不到bean的问题,需要改源码
3、在项目里面SpringSecurity环境搭好之后,需要放行登录页和静态资源,因为这部分是不需要权限控制的
4、我发现项目加入了SpringSecurity环境之后,启动速度变慢了很多,我猜测,目前很多公司的项目启动速度比较慢可能跟配置了权限管理系统有一定的关系
在这里插入图片描述
这里我们卖个关子,用最终版的代码(还没讲)和现在的代码,启动速度是相差特别大的
575324 - 34759=540,565 相当于 540秒 差不多10分钟,好家伙,启动一个项目10分钟 这不优化太恐怖了
可以得知肯定是可以优化的,并且优化后的启动速度只是现在速度的零头 差距非常非常明显
在这里插入图片描述

剩余部分

21-目标2-内存登录-调整表单
22-目标2-内存登录-进行配置
23-目标3-退出登录
24-目标4-数据库登录-思路
25-目标4-数据库登录-查询角色和权限信息
26-目标4-数据库登录-创建SecurityAdmin
27-目标4-数据库登录-根据账号查询Admin
28-目标4-数据库登录-完成UserDetailsService类
29-目标4-数据库登录-使用UserDetailsService

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值