我有两个类Employee和Address。我的Employee类需要Address类作为依赖项。所以我将做@AutoWired地址地址。不用烦恼@Autowired我可以写
Address address = new Address();
为什么我们要编写自动连线。它在其他方面具有更多优势 写作方式。
class Employee{
@Autowired
Address address;
}
答案 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
自动为您提供存储库引用。