为什么在Dependecy Injection上使用java进行注释

时间:2017-12-26 23:55:46

标签: java web dependency-injection annotations

所以我第一次阅读了依赖注入。我想我已经弄明白了,我已经理解了为PHP编写的一个例子。虽然,我正在阅读这个JAVA教程,但它坚持要添加注释。如果我打算在外部使用构造函数提供类依赖,那么为什么需要注释呢?另外,我正在阅读Spring框架,它还指出您需要注释。注释如何适应?任何信息都表示赞赏。

1 个答案:

答案 0 :(得分:2)

  

为什么需要注释?

无论您需要XML配置还是注释,都由您自己决定。 Spring使用注释作为XML的替代方法进行声明性配置。

让我们举个例子,你想通过构造函数传递依赖 Department对象依赖于Employee对象来创建它        Employee对象有两个属性id和name。

  1. 通过使用注释你怎么做?

    @Configuration
    @ComponentScan("com.example.spring")
    public class Config {
    
        @Bean
    public Employee employee() {
        return new Employee("1", "John");
    }
    }
    
  2. 现在创建部门对象:

    @Component
    public class Department {
    
        @Autowired
        public Department (Employee employee) {
            this.employee= employee;
    
        }
    }
    
    1. 使用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>
      

    2. 使用Java:您可以执行类似

      的操作
       Employee employee=new Employee("1","John");   
       Department dept=new Department(employee);
      
    3. 重点是,这取决于你想做什么。

      看一下这个问题Xml configuration versus Annotation based configuration