1

我想将我的 spring 应用程序的 xml 配置替换为注释样式。

我有这样的@Controller:

@Controller

@RequestMapping("/events")

public class EventController extends AbstractController{
    @Autowired
    EventService eventService;


    Jaxb2Marshaller refMarsh;

    /// 
}

在我有这样的xml配置之前:

<bean id="jaxbMarshaller" class="org.springframework.oxm.jaxb.Jaxb2Marshaller">
        <property name="classesToBeBound">
            <list>
                <value>com.epam.hhsystem.model.candidate.Candidate</value>
                <value>com.epam.hhsystem.model.vacancy.Vacancy</value>
                <value>com.epam.hhsystem.model.event.Event</value>
            </list>
        </property>
    </bean>

    <bean id="eventController" class="com.epam.hhsystem.ws.controller.EventController">
        <property name="jaxb2Mashaller" ref="refMarsh" />
    </bean>

</beans>

我用注释样式替换了 thirst bean:

@Configuration
public class ContextConfiguration {



    @Bean(name = "refMarsh")
    public Jaxb2Marshaller jaxb2Marshaller() {
        Jaxb2Marshaller jaxb2Marshaller = new Jaxb2Marshaller();
        jaxb2Marshaller.setClassesToBeBound(Event.class);
        jaxb2Marshaller.setClassesToBeBound(Candidate.class);
        jaxb2Marshaller.setClassesToBeBound(Vacancy.class);
        return jaxb2Marshaller;
    }
}

如何更换第二个bean?

4

2 回答 2

0

关键是您如何配置 Web 配置是使用“WebApplicationInitializer”还是带有监听器的 web.xml,然后在配置中您可以扩展 WebMvcConfigurerAdapter 或使用 @EnableWebMvc,请查看这些 YT 视频

http://www.youtube.com/watch?v=-pV351E_stM

编辑2:好的,你添加了@ComponentScan 并添加了你的控制器包吗?在视频中,您必须使用 @ComponentScan

于 2013-08-02T12:20:50.310 回答
0

可能你想要这个:

    @Bean(name = "eventController")
    public EventController getEventController(@Qualifier("refMarsh") Jaxb2Marshaller marshaller) {
        EventController controller = new  EventController();
        controller.setJaxb2Mashaller(marshaller);
        return controller;
    }
于 2013-08-02T13:03:51.583 回答