Spring 春季自动布线
我使用的是Spring 春季自动布线,spring,Spring,我使用的是Spring,我没有使用JSF,也没有使用ajax等等 我有服务 @Service(value="mailService") public class MailService{ //an autowired dao, etc here } 我有一个bean,我希望这个bean有一个邮件服务 //Here i have tried so far individually @Service, @Component, @Controller public class EmailAgent{
Spring
,我没有使用JSF
,也没有使用ajax
等等
我有服务
@Service(value="mailService")
public class MailService{
//an autowired dao, etc here
}
我有一个bean,我希望这个bean有一个邮件服务
//Here i have tried so far individually @Service, @Component, @Controller
public class EmailAgent{
private MailService mailService;
public MailService getMailService() {
return mailService;
}
@Autowired
public void setMailService(MailService mailService) {
this.mailService = mailService;
}
}
我在applicationContext.xml中有以下内容
<context:component-scan base-package="mypack.containing.emailagent.path.too" />
<context:annotation-config/>
我面临着非唯一缓存等问题,以及生成更多上下文的问题。
那么,我如何“获取”上下文,防止“生成”更多上下文呢
解决
我补充说
<bean class="email.EmailService" id="emailService">
<dwr:remote javascript="emailService">
<dwr:include method="sendMail"/>
<dwr:include method="readAllMails"/>
<dwr:include method="removeMailsById"/>
</dwr:remote>
</bean>
到dwr.xml,并从emailService中删除了关于dwr的注释
正如我所看到的,dwr和spring的注释确实存在冲突
感谢@NimChimpsky提供了检测问题的想法。除非您正在进行集成测试,否则您不需要其他上下文 emailagent在哪里使用?只要像平常一样注射就行了。就像你使用邮件服务一样
您可以使用组件或服务对其进行注释,两者都是合适的。您如何实例化mailagent?它需要由spring自己管理too@NimChimpsky非常感谢。这是重点。我编辑了我的问题。这可能会对您有所帮助。我使用的是dwr,它在同一个类定义上有一些注释,并且注释相互冲突。因此,有没有办法从“现有”上下文内联bean?注释相互冲突?它们并不冲突——只是引用您想要使用的一个。
<bean class="email.EmailService" id="emailService">
<dwr:remote javascript="emailService">
<dwr:include method="sendMail"/>
<dwr:include method="readAllMails"/>
<dwr:include method="removeMailsById"/>
</dwr:remote>
</bean>