Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Spring安全性和@Configuration顺序_Java_Spring Mvc_Spring Security_Spring Boot - Fatal编程技术网

Java Spring安全性和@Configuration顺序

Java Spring安全性和@Configuration顺序,java,spring-mvc,spring-security,spring-boot,Java,Spring Mvc,Spring Security,Spring Boot,我处理了几个spring问题(通常涉及spring安全性,但在这个问题的标签中也提到了其他技术),使用了@Configuration排序,其中有些东西初始化得“太早”或“太迟” 举个例子: 答案通常是为一些bean创建单独的@Configuration文件,然后开始工作。我收到的错误(stacktraces)的性质通常不会引起注意,这可能是我的错:) 有人能告诉我在哪里可以找到关于为什么创建单独的@Configuration类有帮助,以及如何确定@Configuration类的顺序的信息吗 任何

我处理了几个spring问题(通常涉及spring安全性,但在这个问题的标签中也提到了其他技术),使用了
@Configuration
排序,其中有些东西初始化得“太早”或“太迟”

举个例子:

答案通常是为一些bean创建单独的
@Configuration
文件,然后开始工作。我收到的错误(stacktraces)的性质通常不会引起注意,这可能是我的错:)

有人能告诉我在哪里可以找到关于为什么创建单独的
@Configuration
类有帮助,以及如何确定
@Configuration
类的顺序的信息吗


任何关于在stacktrace中注意什么以识别这类问题的提示都将非常受欢迎。

它有时之所以有用,是因为它为Spring提供了bean创建顺序的替代选项。一种(过于)简化的方法是,如果你把所有东西都放在一个文件中,那么顺序是由文件的内容决定的。然而,如果你打破它,那么Spring可以探索其他选项,事情可以按照另一个更合适的顺序进行。请注意,您可以为
@Configuration
使用内部类和包保护类(只要它们是静态的),因此不需要创建新文件

@Configuration
类也可能是自相矛盾的(例如,您希望
@Autowired
在同一个单元中创建的东西-有时有效,有时无效)。此外,在这些情况下,通常需要提前实例化由Spring创建的组件(不是由您自己的代码显式创建的)。Spring Boot需要在
ServletContext
完全初始化之前创建
Servlets
Filters
,这必然会加剧这种情况

就堆栈跟踪而言,结果为空的
@Autowired
依赖项是一种气味。此外,在日志中,您可能会看到信息级别的日志,其中指出某些bean“不适合后期处理”。这并不能保证是致命的(因此是信息级别),但如果你看到很多,你可能会遇到麻烦

我不知道这种推理有任何规范的参考