控制翻转(Inversion of Control-IOC)和依赖注入(dependency injection-DI)在Spring环境下是同等概念,控制翻转是通过 依赖注入实现的。所谓依赖注入指的是容器负责创建对象和维护对象间的依赖关系,而不是通过对象本身负责自己的创建和解决自己的依赖。
依赖注入的主要目的是为了解耦,体现了一种“组合”的理念。
将组合与继承对比,继承一个父类,子类将于父类耦合,组合另一个类则使得耦合度大大降低。
Spring IoC容器(ApplicationContext)负责创建Bean,并通过容器功能类Bean注入到需要的Bean中。
Spring提供使用xml、注解、Java配置、groovy配置实现Bean的创建和注入。
无论是xml配置、注解配置还是Java配置,都被称为配置元数据,Spring容器解析这些配置元数据进行Bean初始化、配置和管理依赖。
声明Bean的注解:
1、@Component组件,没有明确的角色
2、@Service在业务逻辑层(Service层)使用
3、@Repository在数据访问层(Dao层)使用
4、@Controller在展现层(MVC→Spring MVC)使用
注入Bean的注解一般情况下通用:
1、@Autowired:Spring提供的注解
2、@Inject:JSR-330提供的注解
3、@Resource:JSR-250提供的注解
@Autowired、@Inject、@Resource可注解在set方法上或者属性上。