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>