【发布时间】:2013-11-15 16:14:30
【问题描述】:
假设我有带有 Spring 安全性的 Spring MVC 驱动的应用程序。我有:
- UserBean 类,提供对表 User 的 CRUD 操作
- UserController : 将 User 上的操作公开给 http 客户端的控制器
- UserLogin:来自 Spring security 的身份验证提供程序,用于对用户进行身份验证。
如果出现以下情况,我应该如何配置我的应用程序:
- 我想要简单的 XML 配置,通过注释自动发现 bean (
) - UserLogin 和 UserController 需要 UserBean 才能工作
- UserLogin 和 UserController 使用事务注解和方面注解
我看到了以下机会:
创建一个通用 Spring XML 配置文件,供 DispatcherServlet 和 ContextLoaderListener 使用
- 缺点:没有人在教程中显示该解决方案。所有 bean 都是重复的(一个实例在 ContextLoaderListener 上下文中,第二个在 DispatcherServlet 中)。重复可能会导致一些难以跟踪的错误。复制并不优雅
创建两个Spring XML配置文件,一个用于ContextLoaderListener(main),一个用于DispatcherServlet(控制器)。 UserBean 在第一个配置中声明,在第二个配置中可见
- 缺点:为避免重复,我必须在两个文件中添加复杂的组件扫描规则(上下文:组件扫描)。
必须在两个文件中定义。在声明新内容时,我仍然会怀疑哪个配置文件合适。
创建两个 Spring XML 配置文件并包含第三个用于常见设置,例如
- 缺点:我想要简单的解决方案...
总结:我正在寻找使用 Spring MVC + Spring Security 配置应用程序的良好实践,并且安全部分与业务部分高度相关。我一直在寻找很好的例子,但我总是发现安全代码与业务代码隔离的情况。但是当安全和业务共享代码时,我需要示例
- 缺点:我想要简单的解决方案...
总结:我正在寻找使用 Spring MVC + Spring Security 配置应用程序的良好实践,并且安全部分与业务部分高度相关。我一直在寻找很好的例子,但我总是发现安全代码与业务代码隔离的情况。但是当安全和业务共享代码时,我需要示例
【问题讨论】:
标签: spring spring-mvc spring-security