Может ли объект уровня сервиса в проекте Java Spring вызывать бин из Application-Context.xml? - PullRequest
0 голосов
/ 30 ноября 2011

Может ли объект уровня службы в проекте Java Spring вызывать бин из Application-Context.xml?

public class MemberInquiryServiceImpl implements MemberInquiryService {

    private String BASE_URI;
    private String user;
    private String password;

    HttpResponse response;

    public MemberInquiryServiceImpl() {

        ApplicationContext ctx = new ClassPathXmlApplicationContext();

        RequestTrackerConfig rtc = (RequestTrackerConfig) ctx
                .getBean("requestTrackerConfig");

        BASE_URI = rtc.getUrl();
        user = rtc.getUser();
        password = rtc.getPassword();

    }

Ответы [ 2 ]

2 голосов
/ 30 ноября 2011

Почему бы вам не внедрить его с помощью внедрения зависимостей?

2 голосов
/ 30 ноября 2011

Может ли объект уровня службы в проекте Java Spring вызывать бин из Application-Context.xml?

Да, но в своем коде вы создаете новый ApplicationContext:

public MemberInquiryServiceImpl() {

        ApplicationContext ctx = new ClassPathXmlApplicationContext();

что я сомневаюсь, что вы действительно хотели сделать (я предполагаю, что ваш MemberInquiryServiceImpl создан Spring).

Вместо этого вы можете, например, autowire (используя аннотацииили xml-config) от RequestTrackerConfig до MemberInquiryServiceImpl, или заставьте MemberInquiryServiceImpl реализовать ApplicationContextAware -интерфейс и использовать вставленный ApplicationContext для получения "requestTrackerConfig" -bean.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...