当用@Component注解一个类时,这是否意味着它是一个Spring Bean和Singleton?

tv6aics1  于 2023-05-05  发布在  Spring
关注(0)|答案(2)|浏览(150)

作为Spring的新手,我有一个关于注解类的问题。当用@Component注解一个类时,这是否意味着这个类将是一个SpringBean,默认情况下是一个单例?

epfja78i

epfja78i1#

是的,这是正确的,@Component是一个Spring bean和一个Singleton。
如果类属于服务图层,则可能需要使用@Service对其进行注解
但是请记住,为了检测这些注解,您需要在applicationContext.xml中放置这一行:

<context:component-scan base-package="com.yourcompany" />

关于单例-默认情况下,Spring Bean都在单例范围内。您必须记住的唯一一件事是,您不应该将状态存储在字段变量中(它们应该只保存依赖项)。因此,您的应用程序将是线程安全的,并且每次都不需要一个新的bean示例。换句话说,您的bean是无状态的。

kyks70gy

kyks70gy2#

默认-是。
但是,您可以使用@Scope注解覆盖此行为。例如:@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)

相关问题