注解和依赖注入
注解
注解本质上是用来为Java类、接口、方法或变量附加额外信息的特殊Java接口。这些额外信息被开发环境、Java编译器、运行时环境(比如Java EE容器)读取,并对其行为产生影响。因此,从影响行为这方面讲,注解完全可以代替XML配置文件。注解和Java代码被编译到同一个文件中,这可以大大减少管理配置文件带来的麻烦。注解固然有其优势,但是由于配置数据被编译到字节码文件中,这就导致在修改配置文件时必须重新编译Java源文件。通常只将那些很少有可能修改的配置数据(通常是大量的)以注解的形式写入Java源文件,而将少量的配置数据(比如数据库连接信息)写到XML文件中。
依赖注入
组件内部仅使用Java接口,而接口背后实际连接的实现(实现了接口的类的一个实例)则由容器(如Java EE容器、Spring容器)注入(直接为变量赋值或用setter方法设置)到组件中。
注解可以用来为容器提供依赖注入的相关信息。