簡體   English   中英

注射這些四季豆,我做錯了什么? 使用自動裝配

[英]What am I doing wrong in injecting these spring beans? Using Autowiring

這是問題的后續措施,並以此為參考。

這是我修改過的spring-context.xml

<bean id="sampleApacheConnectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory" lazy-init="true">
    <property name="brokerURL" value="tcp://localhost:61616"/>
    <property name="userName" value=“kodeseeker"/>
    <property name="password" value=“mypassword"/>

</bean>

 <bean id="connectionFactory" class="org.springframework.jms.connection.CachingConnectionFactory">
        <constructor-arg ref="sampleApacheConnectionFactory" />
    </bean>

    <!--  Default Destination Queue Definition-->
    <bean id="defaultDestination" class="org.apache.activemq.command.ActiveMQQueue">
        <constructor-arg index="0" value="test.Foo"/>
    </bean>

    <!-- JmsTemplate Definition -->
    <bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate">
        <property name="connectionFactory" ref="connectionFactory" />
        <property name="defaultDestination" ref="defaultDestination" />
    </bean>

    <!-- Message Sender Definition -->
    <bean id="messageSender" class="com.mypackage.Publisher2">
    </bean>

<!-- Message Receiver Definition -->
    <bean id="messageReceiver" class="com.mypackage.Listener">

    </bean>
       <bean class="org.springframework.jms.listener.SimpleMessageListenerContainer">
        <property name="connectionFactory" ref="connectionFactory" />
        <property name="destinationName" value="test.Foo" />
        <property name="messageListener" ref="messageReceiver" />
    </bean>
 <context:component-scan base-package="com.mypackage" /> 
    <bean name=“publisher" class=“com.mypackage.Publisher2"/>
        <bean name="updateHandler" class="com.mypackage.UpdateHandlerImpl”/>    

</beans>

和首先接收到請求的傳入類。

package com.mypackage

@ComponentScan
@Controller
@Path("/")
public class BaseApiImpl  {

…..
    @Context
    HttpHeaders headers;
    @Autowired
    UpdateHandlerImpl updateHandler;


    @PUT
    @Path("v1/“)
    @Consumes("application/json")
    @Produces({ "application/json" })
    public PutTransactionsResponse updateTransactions(
            UpdateTransactionsRequest entity)
            throws Exception {
     // @formatter:on
        LOGGER.entry();
        try {
        //updateHandler is always Null!
              return updateHandler.handle(new UpdateTransactionsMessage(headers.getRequestHeaders(), entity));

        } catch (Exception e) {
            LOGGER.catching(e);
                   } finally {
            LOGGER.exit();
        }

    }

但是,盡管使用@Controller注釋了類並在上下文文件中聲明了bean。 我發現updateHandler始終為null。 我到底在做什么錯?

創建一個Jersey Config類並將其注冊為bean,並在BaseApiImpl類上刪除@Component@ComponentScan ,希望它應該能工作,就我而言,我正在使用Spring boot。

import org.glassfish.jersey.server.ResourceConfig;
import javax.ws.rs.ApplicationPath; 

@ApplicationPath(value = "/<contextpath>")
public class JerseyConfig extends ResourceConfig{

  public JerseyConfig() {
    packages(true, "<your @Path classes package>");
  }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM