我目前正在将Spring和Hibernate添加到现有应用程序中,但在阅读了大量教程之后仍然有一些(也就是很多东西)对我来说很奇怪,或者我错过了什么......
我发现的所有教程都是直截了当的(就像大多数教程应该的那样),如示例A 所示,一个控制器来处理请求(JSP或WS)并自动装配管理器类与DB进行交互。
在我的情况下,这并不适用,因为应用程序有一个类来处理请求,然后它实例化一个处理程序类,而处理程序类又创建一个新类来处理其他创建新类来处理的类(....)*然后处理数据库连接,如示例B 。
所示我的问题是我如何才能使我的业务逻辑类 " Springable" ,即能够在其中自动装配数据库管理器?
从我见过的所有例子中,我都提出了这些替代方案:
我错过了什么或者还有其他选择吗?
答案 0 :(得分:1)
这只是我的意见,但您可能会感兴趣。
Spring的基本原理是,容器中涉及但不涉及业务对象的对象的创建和配置称为IoC或依赖注入。根据配置,容器创建并关联(注入)对象。这允许您删除与实例化和配置相关的业务类的代码(此代码可能非常复杂)。因此,您的课程将变得更加简单和清晰,并且可以专注于业务逻辑而不是其他任何内容。
我相信业务对象不需要互相创建。让春天去做吧。他完美地做到了。
只需标记您的业务逻辑类,依赖于其角色,使用一种刻板印象:@Component
,@Service
,@Controller
(您可以找到刻板印象的含义here) ,并用@Autowired
注入它。如果您在此类中需要数据库管理器,请以相同的方式注入。
所以,我的选择对应于第二点:“2。将所有业务逻辑类转换为bean ...”
答案 1 :(得分:0)
你可以(并且应该!)使用Spring Stereotypes。
有关建议的应用程序结构的详细信息,请参阅my previous answer to a similar question。