自动装配的用途是什么?

时间:2019-06-06 11:40:08

标签: spring

我有两个类Employee和Address。我的Employee类需要Address类作为依赖项。所以我将做@AutoWired地址地址。不用烦恼@Autowired我可以写

Address address = new Address();

为什么我们要编写自动连线。它在其他方面具有更多优势 写作方式。

class Employee{
    @Autowired
    Address address;
}

2 个答案:

答案 0 :(得分:0)

@Autowired确保spring context (Application context)为在运行时隐式声明的自动引用的引用生成对象。这称为依赖注入。您将控制权交给spring管理对象,因此您不必不必手动创建对象。就像您使用new Class()

所说的那样

Spring标识在@Component类别(如{@Controller,@Service)下具有注释的,为其进行依赖的类,并且当您使用构造函数,setter等(使用@Autowired)自动装配时,spring Application Context在运行时为您提供对象(自动提供内存)。

  

它使spring负责所有对象管理(内存   管理,创建和销毁对象),这使您   应用程序不易发生内存泄漏。

答案 1 :(得分:0)

Employee可能是一个实体类(该类的数据是从某种持久性数据中填充的)。您不是@Autowire实体,还有其他表示表联接的方法,例如@OneToMany

让我们说您有一个DAO类,负责从持久化的任何地方检索Employee个实体。并且您还有一个服务类负责处理这些实体。要以Spring的方式进行处理,您需要在DAO类中添加一个@Repository批注,并在服务类中添加一个@Service批注,以告知Spring进行管理他们。现在,服务需要先对存储库类进行引用,然后才能执行其工作,因此您将存储库@Autowire插入服务中,并且Spring自动为您提供存储库引用。