我目前正在尝试使用Spring框架进入Java EE开发.由于我是Spring的新手,很难想象一个好的运行项目应该如何开始.
你有什么最好的做法,tipps或主要的DO NOTs 为首发?你是如何从Spring开始的 - 大项目或类似教程的小应用程序?您使用了哪种技术:AOP,复杂的Hibernate ......
小技巧 - 我发现根据应用程序的关注模块化并清楚地标记我的Spring xml上下文文件是有帮助的.这是我工作的Web应用程序的示例:
MyProject / src / main / resources / spring /
datasource.xml - 我的单个数据源bean.
persistence.xml - 我的DAO /存储库.取决于datasource.xml
豆类.
services.xml - 服务层实现.这些通常是我使用AOP应用事务性的bean.取决于persistence.xml
豆类.
controllers.xml - 我的Spring MVC控制器.取决于services.xml
豆类.
views.xml - 我的视图实现.
这份清单既不完美也不详尽,但我希望它说明了这一点.选择最适合您的命名策略和粒度.
在我(有限)的经历中,我看到这种方法有以下好处:
更清晰的架构
明确命名的上下文文件为那些不熟悉您的项目结构的人提供了开始寻找bean定义的合理位置.可以更容易地检测循环/不需要的依赖项.
帮助域名设计
如果你想添加一个bean定义,但它不适合你的任何上下文文件,那么是否会出现一个新的概念或关注点?例子:
假设您希望使用AOP使您的服务层处于事务处理状态.您是将这些bean定义添加到services.xml
自己的bean 中transactionPolicy.xml
吗?与您的团队讨论.您的交易政策应该是可插入的吗?
将Acegi/Spring Security bean添加到您的controllers.xml
文件中,或创建security.xml
上下文文件?您对不同的部署/环境有不同的安全要求吗?
集成测试
您可以连接应用程序的一个子集进行集成测试(例如:给定上述文件,以测试您只需要创建的数据库datasource.xml
和persistence.xml
bean).
具体来说,您可以注释集成测试类:
@ContextConfiguration(locations = { "/spring/datasource.xml" , "/spring/persistence.xml" })
适用于Spring IDE的Beans Graph
拥有大量专注且命名良好的上下文文件,可以轻松创建自定义BeansConfigSets,以使用Spring IDE的Beans Graph可视化应用程序的各个层.我之前使用过它,可以让新团队成员对我们的应用程序组织进行高级概述.
首先关注Spring的核心:依赖注入.一旦你看到DI可以使用的所有方式,然后开始考虑更有趣的部分,如AOP,远程处理,JDBC模板等.所以我最好的建议是让你使用Spring从核心中成长.
最佳实践?如果您使用的是标准XML配置,请管理单个文件的大小并明智地对其进行评论.您可能认为您和其他人将完全理解您的bean定义,但实际上它们比普通的旧Java代码更难回归.
祝好运!