首页 / 知识
您对第一个Java EE Spring项目的“最佳实践”是什么?
2023-04-12 01:25:00

What's your “best practice” for the first Java EE Spring project?我目前正在尝试使用Spring框架进行Java EE开发。 由于我是Spring的新手,很难想象一个好的运行项目应该如何开始。 对于初学者,您是否有最佳实践,建议或主要建议? 您是如何从Spring开始的-大项目或类似小型教程的应用程序? 您立即使用了哪种技术:AOP,复杂的Hibernate ... 小提示-我发现根据应用程序的关注对我的Spring xml上下文文件进行模块化和清晰地标记很有帮助。这是我从事的Web应用程序的示例:
这份清单既不完美也不详尽,但我希望它能说明这一点。选择最适合您的命名策略和粒度。 以我的(有限的)经验,我已经看到这种方法具有以下好处: 更清晰的架构
明确命名的上下文文件为那些不熟悉您的项目结构的人提供了合理的选择 帮助域名设计 如果您想添加一个bean定义,但是它不能很好地适合您的任何上下文文件,那么也许有一个新概念或新的关注点出现了?例子:
整合测试
您可以连接应用程序的一个子集以进行集成测试(例如:给定上述文件,要测试数据库,您只需创建 具体来说,您可以这样注释集成测试类:
与Spring IDE的Beans Graph配合使用 拥有大量集中且名称明确的上下文文件,可以轻松创建自定义BeansConfigSet,以使用Spring IDE的Beans Graph可视化应用程序的各层。在此之前,我已经使用过此功能为新团队成员提供了我们应用程序组织的高级概述。 首先关注Spring的心脏:依赖注入。一旦您了解了可以使用DI的所有方式,然后开始考虑更有趣的部分,例如AOP,Remoting,JDBC模板等。因此,我最好的建议是让您从核心中使用Spring。 最佳实践?如果使用标准XML配置,请管理单个文件的大小并明智地对其进行注释。您可能认为您和其他人会完全理解您的bean定义,但实际上,与普通的旧Java代码相比,它们很难返回。 祝好运! 首先,Spring是关于模块化的,如果人们专注于编写能够完成一件事并做得很好的小型组件,那么它的工作效果最佳。 如果您遵循一般的最佳做法,例如:
如果您的组件很小,并且遵循上面的教条,那么它们应该很容易接线并与其他东西玩耍。 以上几点自然也适用于Spring框架本身。 聚苯乙烯 不要听以上几点,他们正在谈论如何做任何事情。 学习如何思考比做某事更重要。 人类会思考,重复某件事并不聪明,思考才是。
从这里开始-我实际上认为它是我已阅读的最好的Software Dev书籍之一。 了解MVC类的新的基于注释的配置。这是Spring 2.5的一部分。使用基于注释的类将使编写单元测试变得容易得多。减少XML的数量也是一件好事。 哦,是的,单元测试-如果您使用的是Spring,那么最好还是进行单元测试。 :)为所有Web和服务层类编写单元测试。 阅读有关域驱动设计的文章。可以在Spring Application的所有级别上使用Domain Object类的事实意味着您将拥有一个非常强大的Domain Model。利用它。 但是,在将Domain Object类用于表单填充时,您将需要注意有关Spring Framework的最新安全问题。服务器端的讨论揭示了关闭注释漏洞的方法。 我实际上非常喜欢Spring ..在您普通的J2EE Java Bean中,这是新鲜的空气。 我建议实现Spring提供的示例: http://static.springframework.org/docs/Spring-MVC-step-by-step/ 另外,我决定全力以赴,并将Hibernate添加到我的Spring应用程序中;),因为Spring为Hibernate提供了出色的支持... :) 但是我确实有一个"不要",这是我学到的很难的方法(生产中的产品)...如果您仅实现Controller接口,并返回ModelAndView对象以及该接口提供的一些数据,Spring确实会进行垃圾收集资源,用于尝试缓存那些数据。因此请小心将大数据放入那些ModelAndView对象中,因为只要查看了该页面,只要服务器处于空中状态,它们就会占用服务器内存。 " ...您立即使用了哪种技术:AOP,复杂的Hibernate ..."-我想说的一个更好的问题是,请问人们没有立即使用什么。我会将您引用的示例添加到该列表中。 Spring MVC和JDBC模板将是我的入门建议。仅此而已,您就可以走很长一段路。 我的建议是忠实遵循Spring架构建议。使用他们的分层想法。确保您的Web层与其余层完全可分离。通过让Web层仅通过服务层与后端交互来实现此目的。 如果您想重用该服务层,一个很好的建议是使用Spring"首先合同" Web服务来公开它。如果从来回传递的XML消息开始,则客户端和服务器可以完全分离。 具有最佳Spring支持的IDE是IntelliJ。值得花几美元。 一个很好的入门方法是专注于" Springframework"。 Spring产品组合已经发展到围绕企业软件各个方面的大量项目。从一开始就坚持核心,并尝试掌握概念。熟悉内核后,下载最新的二进制文件并查看Spring的petclinic示例。它很好地概述了SpringSource提供的各种项目。 尽管文档非常好,但是在您掌握了核心概念之后,我还是建议您读一本书。我发现该文档存在问题,因为它不够深入,无法为您提供所需的所有详细信息。 自从我使用spring已经有很多年了,我不能说我是它的粉丝,但我知道App Fuse工具(https://java.net/projects/appfuse/)对帮助人们很有帮助在生成您需要开始的所有工件方面进行引导。 随着Spring 2.5和3.0的发布,我认为现在最重要的最佳实践之一就是Spring注释。控制器,服务和存储库的批注可以为您节省大量时间,使您可以专注于应用程序的业务逻辑,并且有可能使您所有的对象变成纯Java旧对象(PO??JO)。 如果您只是想花一点时间看看是否喜欢它,我建议使用Spring的JDBC和/或Hibernate支持从DAO层开始。这将使您了解很多核心概念,但是这样做的方式很容易与应用程序的其余部分隔离。这是我遵循的方法,在使用Spring构建一个完整的应用程序之前,它是一个很好的热身。 Spring也非常关乎单元测试以及类的可测试性。这基本上意味着考虑模块化,关注点分离,通过接口引用类等。 |
最新内容
相关内容
python代码如何在命令行运行
python代码如何在命令行运行,代码,培训,路径,空格,文件,下面,以上,目录,更多,内容,我们在编写python代码时,可以在交互模式下运行代码,也可以用python什么是Python web框架
python什么是Python web框架,网站,培训,管理,业务,工具,名字,软件,网络,公司,框架,web框架(webframework)或者叫做web应用框架(webapplicatiopython怎么运行函数
python怎么运行函数,代码,工具,培训,函数,信息,检测,定义,参数,阶段,程序,python函数定义及调用1、什么是函数?在程序中,函数就是具备某一功能python可以在哪里运行
python可以在哪里运行,培训,工具,环境,项目,文件,路径,控制台,下方,环境变量,结果,如何运行Python程序(即.py文件)?第一种,使用自带的GUI工具Ipython模块能优化Python的运行速度
python模块能优化Python的运行速度吗?,代码,平台,培训,官网,环境,工作,系统,模块,程序,语言,今天介绍下Psyco模块,Psyco模块可以使你的Pythonpythonpython是如何编译运行的
pythonpython是如何编译运行的,培训,代码,工作,程序,字节,语言,链接,机器,时候,问题,这里的解释执行是相对于编译执行而言的。我们都知道,使用pythonpipenv的环境运行
pythonpipenv的环境运行,环境,项目,培训,环境变量,实例,命令,以上,以下,文件,方法,pythonpipenv的环境运行1、说明直接运行pipenvshell并不会python命令行如何运行文件
python命令行如何运行文件,培训,文件,命令,目录,文件名称,实例,桌子,以上,方法,教程,python命令行如何运行文件1、说明写了python文件,想通过关于c#:ILMerge最佳实践
关于c#:ILMerge最佳实践,关于c#:ILMerge最佳实践,合并,组件,发现,程序集,ILMerge Best Practices您是否使用ILMerge? 您是否使用ILMerge合关于.net 1.1:寻找在C#中进行“网络
关于.net 1.1:寻找在C#中进行“网络使用”的最佳实践,关于.net 1.1:寻找在C#中进行“网络使用”的最佳实践,驱动器,异常处理,命令行,断关于c#:能否让Memcached在Windows(x6
关于c#:能否让Memcached在Windows(x64)64位环境中运行?,关于c#:能否让Memcached在Windows(x64)64位环境中运行?,运行,设置,托管,有谁知道,CiPhone Web应用程序,模板,框架?
iPhone Web应用程序,模板,框架?,iPhone Web应用程序,模板,框架?,应用程序,站点,用于,网页,iPhone web applications, templates, framework