当前位置: 首页 > 知识库问答 >
问题:

Spring如何通过XML向Queue注入值

丌官嘉良
2023-03-14

使用Spring框架,我想创建一个类型为Person的bean对象,这个bean对象有一个queue类型为queue的属性

Spring版是4.3

参考文件是https://docs.spring.io/spring/docs/4.3.25.RELEASE/spring-framework-reference/htmlsingle/#beans-工厂级电机

但我找不到队列。

我尝试使用

对象如下

public class People {
    private int id;
    private Queue<Integer> queue;
    // add constructor

    // add get and set
}

应用程序上下文。xml如下所示

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
        https://www.springframework.org/schema/beans/spring-beans.xsd">

    <bean id="..." class="...">
        <property name="queue">
            <bean class="java.util.ArrayDeque">
                //How should I add values to the queue object
            </bean>
        </property>
    </bean>
</beans>

共有1个答案

逄俊力
2023-03-14

通过参考Spring对collection的支持,

下面的示例演示如何向ArrayDeque添加值。

应用Context.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
        https://www.springframework.org/schema/beans/spring-beans.xsd">

    <bean id="people" class="spring.People">
        <property name="queue">
            <bean class="java.util.ArrayDeque">
                <constructor-arg>
                    <list value-type="java.lang.Integer">
                        <value>1</value>
                        <value>2</value>
                        <value>3</value>
                    </list>
                </constructor-arg>
            </bean>
        </property>
    </bean>
</beans>

主类

package spring;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class InjectQueueApplication {
    public static void main(String[] args) {
        ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
        People people = context.getBean("people", People.class);
        System.out.println(people.getQueue().toString());
    }
}
 类似资料:
  • 我已经从SO问题中得到了在没有XML配置的情况下设置LdapContextSource和LdapTemplate的答案。通过注释而不是XML配置SpringLdap模板的最佳实践? 下面xml的注解方式应该是什么——基于接口自动创建存储库bean?

  • 问题内容: 我试图通过注释将整个JSF托管Bean注入另一个托管Bean非常相似,但是我正在注入Bean,而不是Servlet)。这就是我在做什么: 不起作用(JSF 2.0 / Mojarra 2.0.3): 有没有可能或者我需要通过编程方式进行注射? 问题答案: 您需要添加setter和getter 当将解析并注入依赖项时,它将使用setters注入,因此适当的setters / getter

  • 我是Spring Security的新手。我看过很多关于如何通过外部属性文件的注释注入值的文章。我尝试了很多方法,但最终都是用java。lang.IllegalArgumentException:无法解析占位符“val.id”异常。 你能给我一些提示如何处理这个例外吗? 我的java类如下所示: 我的属性文件名为val.properties,位于WEB-INF下,其内容为val.id=xyz 我将

  • 问题内容: 我正在使用hibernate模式开发应用程序。当我尝试创建登录页面时,出现Sql Injection问题。我有以下代码: 在这种情况下,如何防止Sql Injection?loginInfo表的创建表语法如下: 问题答案: 您还有其他选择,请参阅mkyong的这篇不错的文章。

  • 问题内容: 设置环境变量后,AWS 在http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create_deploy_Java.managing.html中讨论 。一切都很好,除了我不能在我的Spring XML配置代码中调用,也不能调用资源束快捷方式,因为资源束本身必须以某种方式提取这些环境变量来为它们服务。您能帮我将这个示例配置转换为使用

  • 目标: 通过访问多个持久性单元/数据源。 问题:在 Spring xml 配置中不流畅。注册多个数据源似乎需要多个 EntityManagerFactory,这会导致错误,指出 EntityManagerFactory 不是唯一的。我尝试了两个带有抽象父级的实体管理器工厂,因为我无法在实体管理器工厂定义中添加多个数据源而不是单个数据源。我该如何解决这个问题? 我不能使用SpringBoot或Jpa