假设我有Spring安全的Spring MVC驱动应用程序。我有:
- UserBean类,它为表User
提供CRUD操作
- UserController:将用户上的操作公开给http客户端
的控制器
- UserLogin:Spring安全认证提供程序,用于对用户进行身份验证。
醇>
如果符合以下条件,我应该如何配置我的应用程序:
- 我想要简单的XML配置,通过注释自动发现bean(< context:component-scan base-package =“org.example”/>)
- UserLogin和UserController需要UserBean才能工作
- UserLogin和UserController使用事务注释和方面注释
醇>
我看到以下机会:
创建一个公共的Spring XML配置文件,由DispatcherServlet和ContextLoaderListener
使用
- 缺点:没有人在教程中显示该解决方案。所有bean都是重复的(ContextLoaderListener上下文中的一个实例,DispatcherServlet中的第二个实例)。重复可能会导致一些难以跟踪的错误。重复不是很优雅
创建两个Spring XML配置文件,一个用于ContextLoaderListener(main),另一个用于DispatcherServlet(控制器)。 UserBean在第一个配置中声明,在第二个配置中可见
- 缺点:为避免重复,我必须向两个文件添加复杂的组件扫描规则(上下文:组件扫描)。 < tx:annotation-driven和< aop:aspectj-autoproxy />必须在两个文件中定义。在宣布新内容时,我仍然会怀疑哪个配置文件是合适的。
创建两个Spring XML配置文件,并包含第三个用于常见设置,例如< tx:annotation-driven
总结:我正在寻找使用Spring MVC + Spring Security配置应用程序的良好实践。安全部分与业务部分高度连接。我正在寻找好的例子,但我总是发现安全代码与业务代码隔离的情况。但我需要安全和业务共享代码的例子
类似的问题:ContextLoaderListener or not?