需要一些快速帮助。
是否有可能使用@Service
注释的类成为非单例,我可以使用Clazz c = new Clazz();
并创建新对象?
如果没有:是否可以在未使用@Async
或@Scheduled
注释的类中使用@Component
和@Service
?
喝彩!
答案 0 :(得分:2)
如果你想要一个非单例的,由spring管理的对象,用scope="prototype"
(或@Scope("prototype")
声明它。如果你想将原型范围的bean注入单例,你可以使用{ {1}}。每次调用方法时都会返回一个新对象。this is how it is done with xml。
你可以拥有使用aspectj weaver和lookup-method
通过spring实例化的对象,但这不是我推荐的。
您可以在任何弹簧管理的bean上拥有@Configurable
和@Async
。有多种方法可以定义它:注释(@Scheduled
),xml配置或java配置。
答案 1 :(得分:1)
@Service
的好处是Spring会自动发现,实例化和管理bean。如果他们不是单身人士,那么这个注释就没有任何好处。
是。 @Async
和@Scheduled
与@Service
和@Component
无关,
答案 2 :(得分:0)
是的,您可以实例化标记为@Service
的类,只是因为Spring创建了它的单个实例并不意味着您无法创建其他实例。