public class B {
public B(){
System.out.println("B is created");
}
public void print(){
System.out.println("hello b");
}
}
учащегося B.javaавтоматическое связывание весной (имя свойства и имя боба должно быть таким же)
public class A {
B c;
public A(){
System.out.println("a is created");
}
public B getB(){
return c;
}
public void setB(B c){
this.c =c;
}
void print(){
System.out.println("hello a");
}
void display(){
print();
c.print();
}
}
учащегося A.java
<?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:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
<bean id="b" class="B"></bean>
<bean id="a" class="A" autowire="byName"></bean>
</beans>
applicationContext.xml
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class Test {
public static void main(String[] args) {
ApplicationContext context = new ClassPathXmlApplicationContext("applicationcontext.xml");
A a1 = context.getBean("a",A.class);
a1.display();
}
}
Тест .java
Я проходил обучение по автоустановке весной, используя режим «byName». и он говорит: Режим byName вводит зависимость объекта в зависимости от имени компонента. В этом случае имя свойства и имя компонента должны быть одинаковыми. Он внутренне вызывает метод setter.
, но в этом приложении имя свойства и имя бина оба разные, но все еще работает нормально, так как работает эта автоустановка, хотя оба имени разные?
есть вопросы? .. в любом случае работает отлично, потому что у вас в классе A есть метод setB, который неявный способ для свойства с именем b. – Xstian