作为一个相当新的Spring我有一个关于注释类的问题 . 用 @Component 注释一个类时是否意味着这个类将是一个Spring Bean,默认情况下是一个单例?
@Component
是的,这是正确的, @Component 是一个Spring bean和一个Singleton .
如果类属于服务层,则可能需要使用 @Service 来注释它
@Service
但请记住,为了检测这些注释,您需要将此行放在 applicationContext.xml 中:
applicationContext.xml
<context:component-scan base-package="com.yourcompany" />
关于单身人士 - 默认情况下, Spring beans 都是单身范围 . 您唯一需要记住的是,您不应该将状态存储在字段变量中(它们应该只保存依赖项) . 因此,您的应用程序将是线程安全的,并且每次都不需要bean的新实例 . 换句话说,你的bean是无状态的 .
默认情况下 - 是 .
但是,您可以使用 @Scope 批注覆盖此行为 . 例如: @Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)
@Scope
@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)
2 回答
是的,这是正确的,
@Component
是一个Spring bean和一个Singleton .如果类属于服务层,则可能需要使用
@Service
来注释它但请记住,为了检测这些注释,您需要将此行放在
applicationContext.xml
中:关于单身人士 - 默认情况下, Spring beans 都是单身范围 . 您唯一需要记住的是,您不应该将状态存储在字段变量中(它们应该只保存依赖项) . 因此,您的应用程序将是线程安全的,并且每次都不需要bean的新实例 . 换句话说,你的bean是无状态的 .
默认情况下 - 是 .
但是,您可以使用
@Scope
批注覆盖此行为 . 例如:@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)