一些建议:
这些天,请考虑通过Javaconfig对Spring进行配置。
要回答问题1和2非常重要,您需要了解以下内容:
- 当您运行应用程序时,Spring会
Application Context
在Spring中创建一个由Spring创建和管理的所有bean。现在考虑一下,Application Context
应该从两个“子”应用程序上下文创建它,通常在文档中“提及”它们的方式ServletApplicationContext
和方式RootApplicationContext
- 前者应该扫描有关Web的所有内容,例如您
@Controller
和@Bean
的有关基础架构的信息,例如forViewResolver
等。 - 后者应扫描有关服务器的所有信息,例如
@Service
和@Repositories
和@Bean
有关基础结构(例如)的和DataSource
。
- 前者应该扫描有关Web的所有内容,例如您
了解以下内容非常重要:
ServletApplicationContext
->RootApplicationContext
- 这意味着前者可以访问后者(它与使用依赖项有关,即:a
@Controller
需要a@Service
)。因此,它反映出Web
侧面可以进入server
侧面。
- 这意味着前者可以访问后者(它与使用依赖项有关,即:a
一旦说,这下面是 没有 可能
RootApplicationContext
->ServletApplicationContext
- 没有感觉到服务器端的Bean想要访问Web端(一种不好的做法)
很久以前我不使用
web.xml,但
DispatcherServlet
+contextConfigLocation
(通过<init-param>
)代表ServletApplicationContext
ContextLoaderListener
+contextConfigLocation
(通过<context-param>
)代表RootApplicationContext
Bean是否通过以下方式声明并不重要:
XML
JavaConfig
- 注释
@Controller
等
Spring管理着以什么顺序创建bean的周期。因此
.xml,无论如何声明文件(以您的情况为准)(关于顺序)都没有关系。



