【问题标题】:Spring -servlet.xml beans accessSpring -servlet.xml bean 访问
【发布时间】:2013-04-11 13:04:14
【问题描述】:

在 Spring 中,我通常使用 getBean() 方法访问 bean。例如:

AplicationContext.xml:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www... etc">
       <bean id="MyClass" class="ioc.beans.MyClass" /> 
</beans>

java:

ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
MyClass cl = applicationContext.getBean("MyClass", MyClass.class);

现在我正在使用 Spring MVC,bean 是在带有后缀 -servlet 的 xml 文件中创建的,并且我没有 ClassPathXmlApplicationContext。

如果没有 getBeans 方法,我如何从控制器访问我的 java bean 以使用对象? (还要考虑到这种方法——Spring 在任何入门教程中的首要特征——是一种不好的做法)。

【问题讨论】:

    标签: spring spring-mvc


    【解决方案1】:

    如果您在 Web 应用程序中使用 Spring,则没有真正的理由以编程方式获取这样的 bean。

    您应该使用显式构造函数/setter 注入或自动装配。在第一种情况下,所有 Spring 管理的 bean 都应该在您的 XML(或 JavaConfig,如果您正在使用它)中定义。其次,要自动装配的类应该在您的 XML/JavaConfig 中声明,或者应该在组件扫描路径上。

    【讨论】:

    【解决方案2】:

    Spring 依赖注入(构造函数注入) 可以使用 Setter 注入)。

    private WildAnimal wild;
    
    
    @Autowired
      public void setWild(WildAnimal wild) {
        this.wild = wild;
      }
    

    在 XML 中

    <bean id="wild" class="com.javapapers.spring.ioc.Wolf" />
    

    【讨论】:

      【解决方案3】:

      你可以使用

       @Autowired
      

      Annotations

      【讨论】:

        猜你喜欢
        • 2011-07-27
        • 1970-01-01
        • 2018-03-20
        • 2017-03-01
        • 1970-01-01
        • 1970-01-01
        • 2017-11-17
        • 2014-10-17
        • 1970-01-01
        相关资源
        最近更新 更多