gpt4 book ai didi

java - Spring没有注入(inject)属性

转载 作者:行者123 更新时间:2023-11-30 03:08:51 25 4
gpt4 key购买 nike

我想从 xml 文件注入(inject)端口值,但它似乎不起作用。这是我的 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" xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.2.xsd">

<bean id="serverSocket" class="some.dir.KomunikacjaSpring.ServerSocketMy">
<property name="port" value="3111" />
<property name="port2" value="911" />
</bean>
<bean id="server" class="some.dir.KomunikacjaSpring.Server">
<constructor-arg ref="serverSocket" />
</bean>

</beans>

我正在尝试将端口值注入(inject)我的 ServerSocket 类中。

public class ServerSocketMy extends ServerSocket {


static int port = 6066;
int port2;

public ServerSocketMy() throws IOException {
super(port);
System.out.println("PORT2: "+port2);
}

public int getPort() {
return port;
}

public void setPort(int port) {
this.port = port;
}

public void setPort2(int port2) {
this.port2 = port2;
}


}

当程序运行时,一切正常,但端口值没有改变。

最佳答案

学习 bean lifecycle and dependency injection更深入。对于您的示例,请注意:

  • MySocketServer 是在一个阶段中构建的。
  • 这些属性会在另一个阶段注入(inject)。
  • 构建期间port2的值仍然是0(默认值)。
  • 您可以使用constructor argument instantiation

关于java - Spring没有注入(inject)属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34094342/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com