所以我第一次阅读了依赖注入。我想我已经弄明白了,我已经理解了为PHP编写的一个例子。虽然,我正在阅读这个JAVA教程,但它坚持要添加注释。如果我打算在外部使用构造函数提供类依赖,那么为什么需要注释呢?另外,我正在阅读Spring框架,它还指出您需要注释。注释如何适应?任何信息都表示赞赏。
答案 0 :(得分:2)
为什么需要注释?
无论您需要XML配置还是注释,都由您自己决定。 Spring使用注释作为XML的替代方法进行声明性配置。
让我们举个例子,你想通过构造函数传递依赖 Department对象依赖于Employee对象来创建它 Employee对象有两个属性id和name。
通过使用注释你怎么做?
@Configuration
@ComponentScan("com.example.spring")
public class Config {
@Bean
public Employee employee() {
return new Employee("1", "John");
}
}
现在创建部门对象:
@Component
public class Department {
@Autowired
public Department (Employee employee) {
this.employee= employee;
}
}
使用XML:
<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-3.0.xsd">
<bean id="department" class="com.example.spring.Department">
<constructor-arg index="0" ref="employee"/>
</bean>
<bean id="employee" class="com.example.spring.Employee">
<constructor-arg index="0" value="1"/>
<constructor-arg index="1" value="John"/>
</bean>
使用Java:您可以执行类似
的操作 Employee employee=new Employee("1","John");
Department dept=new Department(employee);
重点是,这取决于你想做什么。
看一下这个问题Xml configuration versus Annotation based configuration