自动注入
今天在编写配置类中遇到了这个问题,
在使用SpringBoot框架编写Java代码时,这里的参数会提示“无法自动装配。找不到 'HttpSecurity' 类型的 Bean。 ”这样的错误,
我使用了SpringBoot框架,也添加了Spring Security的依赖
解决办法:
1、在主启动类中添加`@EnableWebSecurity`注解
第一个注解就是要解决无法自动装配问题所需要的注解
第二个注解是被标注的类是主启动类
2、在本类中添加`@EnableWebSecurity`注解
原因:
在Spring Security中,`@EnableWebSecurity`注解用于启用基于Web的安全性配置,
如果没有添加`@EnableWebSecurity`注解,Spring无法知道这是一个Web安全配置类,也就无法自动装配`HttpSecurity` Bean。
不过,在查阅相关资料后所得到的回答是:
如果正在使用Spring Boot,并且需要配置Spring Security以保护你的应用程序,通常可以不添加`@EnableWebSecurity`注解。这是因为Spring Boot自动配置了Spring Security,并且默认情况下是启用的。
也就是说,如果应用程序中包含Spring Security的依赖,那么Spring Boot会自动配置Spring Security,并根据类路径中存在的依赖项自动配置相应的安全特性。
就是说由于我有Spring Security的依赖,即使我不添加`@EnableWebSecurity`注解也是可以自动注入而不会出现错误才对的,可能是我哪些地方遗漏了重要的东西。
还有一点:
`@EnableWebSecurity`注解已经包含了`@Configuration`注解的功能,因此,如果在一个类上添加了`@EnableWebSecurity`注解,可以不再显式添加`@Configuration`注解。
`@EnableWebSecurity`注解实际上是一个组合注解,它包含了`@Configuration`注解,用于表示这是一个配置类,并且还包含其他一些注解用于启用Spring Security的Web安全性配置。
因此,在Spring Security配置类中,如果已经添加了`@EnableWebSecurity`注解,那么这个类就会被Spring识别为一个配置类,不需要再额外添加`@Configuration`注解。
但是我懂得很少就@Configuration注解也加上了以防后面出现问题