我有下一個簡單的應用程序(類消息具有打印傳入消息,並且具有用於所述問題沒有興趣只有一個方法):彈簧的自動裝配行爲
package messager.spring;
public class User {
private Messenger misiger;
private String name;
public User(String name) {
this.name = name;
}
public void setMessenger(Messenger messinger) {
this.misiger = messinger;
}
public void send(String mess) {
String message = name + " sent message " + "'" + mess + "'";
misiger.send(message);
}
// public String getname() {
// return name;
// }
}
主類:
package messager.spring;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class Main {
public static void main(String[] args) {
ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
User user = (User) context.getBean("user");
user.send("testing3...");
}
}
彈簧配置文件:
<?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
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
<bean id="user" class="messager.spring.User" autowire="byName">
<constructor-arg type="java.lang.String" value="Vova2"/>
</bean>
<bean id="messenger" class="messager.spring.MobileMessenger"/>
</beans>
我用自動裝配的類用戶自動裝配Messanger類。根據文檔:
當使用綽號,它然後嘗試匹配和與由所述配置文件中的相同名稱定義的豆連線其屬性。如果找到匹配,它會注入那些bean,否則它會拋出異常。
這種配置的作品,但我不明白爲什麼(((我沒有內部用戶類名信使財產(((我改變了它的目的misiger,而且它仍然有效,似乎該bean ID不直接取決於屬性的名稱,但在制定者的名字!這樣呢?
容易,更改setter名稱和ID =「misiger」,看看它是否失敗,如果是的話,那麼春天是通過setter方法來做的。我認爲它確實使用了setter,或者完全移除了setter方法。 – Elbek