На основе приведенного здесь примера: https://dzone.com/articles/autowiring-in-spring
import org.springframework.stereotype.Component;
@Component
public class Department {
private String deptName;
public String getDeptName() {
return deptName;
}
public void setDeptName(String deptName) {
this.deptName = deptName;
}
}
Аннотация @Autowired размещена в Департаменте.
import org.springframework.beans.factory.annotation.Autowired;
public class Employee {
private int eid;
private String ename;
@Autowired
private Department department; //<----------------------
public int getEid() {
return eid;
}
public void setEid(int eid) {
this.eid = eid;
}
public String getEname() {
return ename;
}
public void setEname(String ename) {
this.ename = ename;
}
public Department getDepartment() {
return department;
}
public void setDepartment(Department department) {
this.department = department;
}
public void showEmployeeDetails(){
System.out.println("Employee Id : " + eid);
System.out.println("Employee Name : " + ename);
System.out.println("Department : " + department.getDeptName());
}
}
Запускает программу.
public class RunThis {
public static void main(String[] args)
{
System.out.println("Hello World");
Employee emp = new Employee();
emp.showEmployeeDetails();
}
}
Запуск программы приводит к исключению NULL, которое ожидается, но для указанного URL оно выглядит так:
@Autowired on Properties
In the below example, when the annotation is directly used on properties, Spring looks for and injects Department when Employee is created.
В результате я истолковал, что это означает, что объект Department неявно будет создан за кулисами во время создания объекта Employee, но, по-видимому, это неправильно.
1 - Как можно изменить этот образец для просмотра реальных преимуществ аннотации @Autowired?
Во многих других примерах аннотация @Autowired влияет на то, что записано в какой-то XML файл в моем проекте.
Я искал в своем проекте все файлы и не вижу никаких ссылок на объект (Отдел), кроме Сотрудника и Отдела.
2 - Где находится файл XML, в котором можно просмотреть изменения, затронутые использованием аннотации @Autowired?