JavaSpring项目中的服务层对象能否从Application-Context.xml调用bean?

JavaSpring项目中的服务层对象能否从Application-Context.xml调用bean?,java,spring,spring-mvc,Java,Spring,Spring Mvc,JavaSpring项目中的服务层对象能否从Application-Context.xml调用bean public class MemberInquiryServiceImpl implements MemberInquiryService { private String BASE_URI; private String user; private String password; HttpResponse response; public Me

JavaSpring项目中的服务层对象能否从Application-Context.xml调用bean

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();

    }
JavaSpring项目中的服务层对象可以在bean中调用吗 从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();

    }
是的,但在代码中您正在创建一个新的ApplicationContext:

public MemberInquiryServiceImpl() {

        ApplicationContext ctx = new ClassPathXmlApplicationContext();
我怀疑你到底想做什么(我假设你的
MemberInquiryServiceImpl
是由Spring创建的)

相反,例如,您可以将
RequestTrackerConfig
自动连接(使用注释或xml配置)到
memberinquiryserviceinpl
,或者制作
memberinquiryserviceinpl
实现-接口,并使用注入的应用程序上下文获取“RequestTrackerConfig”-bean

JavaSpring项目中的服务层对象可以在bean中调用吗 从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();

    }
是的,但在代码中您正在创建一个新的ApplicationContext:

public MemberInquiryServiceImpl() {

        ApplicationContext ctx = new ClassPathXmlApplicationContext();
我怀疑你到底想做什么(我假设你的
MemberInquiryServiceImpl
是由Spring创建的)


例如,您可以将
RequestTrackerConfig
自动连接到
memberinquiryserviceinpl
,或者使
memberinquiryserviceinpl
实现-接口,并使用注入的应用程序上下文获取“RequestTrackerConfig”-bean。

为什么不使用依赖注入来注入它?

为什么不使用依赖注入来注入它?

当然可以。你是在问如何编写代码来做到这一点,还是说这是一种“架构上合理的”实践,或者…?是的,当然。您是在问如何编写代码来实现这一点,还是这是一种“架构上合理的”实践,或者……?听起来您对Springs的依赖注入/控制反转原则并不完全有信心,也许可以通读文档的第3章:。网络上也有大量关于使用ApplicationContextAware、autowiring等的教程和示例,例如:听起来你对Springs的依赖注入/控制反转原理没有完全的信心,也许可以通读文档的第3章:。网上还有大量关于使用ApplicationContextAware、autowiring等的教程和示例,例如: