现在2个月,我决定根据MVC模式开发一个Web应用程序.
我来自嵌入式程序(C/C++),所以我将逐步学习Java.
到目前为止,我正在手工完成所有应用程序开发,即我将所有Servlet都放在一个包中,将我的JavaBean放在一个包中,将my(JPA)实体放在另一个包中,并将相同的DAO层放在一个包中.到目前为止一切顺利,我明白我在做什么,一切运作良好.
为了" 促进 "开发和更快地做事,我决定使用Spring MVC(我听说这个框架很好)但是在这里我遇到了一些理解Spring Bean概念的问题.
以下是我对此的疑问:
什么是Spring Bean?(我已经读过这个了,但它没有告诉我如何使用它?)(对我来说,一个Bean只是一个简单的Java类,它尊重一些规则但是当我看一个Spring Bean它完全不同时,我看到一些Spring代码在哪里他们的bean返回了一个对象,为什么他们称之为"Bean",我很困惑),所以.
Spring Bean在SpringMVC的工作流程中涉及哪些方面?
应用程序应该在哪里放置Spring Beans?
如何以及何时使用它?
我在我的应用程序的业务部分使用JavaBeans,例如从表单中检索字段,是否可以使用Spring Beans执行相同的操作?
由于Spring Bean的配置似乎遇到困难(因为我无法理解后面的机制)我们可以使用Spring MVC创建一个Web应用程序而不使用单个Spring bean(当然除了DispatcherServlet)?
为什么使用SpringBean而不是Java Bean?
Spring Bean还有什么?
我意识到Spring MVC并不是那么简单,需要掌握很多东西,特别是很多配置.
从哪儿开始?
我应该放弃使用Spring MVC吗?
我在网上搜索了解但我找不到任何能够详细解释的东西.
谢谢.
PS:对不起我的英语,我住在法国.
java bean和spring-managed bean是不同的东西.Java bean确实是一些具有特定命名约定的对象,其中spring bean是不同的.
spring指的是(spring managed)bean只是一个类的实例,生命周期由Spring框架管理.它不必遵循Java bean命名约定等.bean的最直接用法是依赖注入.您可以将这样的spring-manged对象(bean)注入其他bean - 例如控制器.
您有几种方法来创建bean.它在文档中很好地描述.
请注意,从弹簧的角度来看,即使控制器只是另一个碰巧有一些额外功能的bean.
要开始,我会使用一些spring-boot示例应用程序.它为您节省了大量配置,这通常是一个很好的起点.
让我先尝试解释一下 Spring Framework 的要点。
Spring 基于控制反转(IoC)的概念。这个概念基本上意味着功能bean在接口中表达它们的依赖关系,并且某些东西(在本例中是Spring)负责注入正确的实现。
例如假设我有一个UserRepository
(界面)。我有两种实现, aMySqlUserRepository
和 a MongoDbUserRepository
,因为我的客户可以选择这两种存储技术之一。假设现在我有多个消耗UserRepository
. 为了避免让他们都知道我们正在使用哪个 impl,消费者只表达他们需要一个UserRepository
(通常通过@Inject
or@Autowired
注释),并且我利用这个框架在初始化时注入正确的 impl。
这就是Spring框架的要点。这些对象(UserRepository impl 和消费者)是 Spring 管理的 bean,或者更简洁地说,Spring Bean。Spring 管理它们的生命周期并将它们连接在一起。
Spring MVC 是一个基于 Spring 框架构建的 MVC 框架。也就是说,您的 MVC 制品(控制器等)是 Spring Bean。
Spring 通常应该管理所有无状态对象(在某些情况下可能有充分的理由不这样做,但这超出了本答案的范围)。有状态对象是无状态对象所管理的对象。Spring 管理管理状态的对象。
Spring 是一个非常强大的框架,有很多附加组件,java 生态系统中的大多数包至少都有一个关于如何让它们与 Spring 一起工作的教程,如果不是开箱即用的集成。
归档时间: |
|
查看次数: |
6762 次 |
最近记录: |