Spring Ioc:
IOC是Spring容器的内核,AOP和声明式事务都在此基础上构建。通过容器来控制业务对象的依赖关系而非由代码直接操控。
Ioc和DI在Spring环境下是等同的概念,Ioc是通过DI实现的。所谓依赖注入指的是容器负责创建对象和维护对象间的依赖关系,而不是通过对象本身负责自己的创建和解决自己的依赖。
依赖注入的目的是为了解耦,体现了一种“组合”的概念。如果你希望你的类具备某项功能的时候,是继承自一个具有此功能的父类好呢?还是组合另外一个具有这个功能的类好呢?答案不言而喻,继承子类将与父类耦合,组合另外一个类使得耦合度大大降低。
每个被Spring管理的Java对象都称之为Bean;
Spring Ioc容器(ApplicationContext)负责创建Bean,并通过容器将功能类Bean注入到你需要的Bean中。Spring提供xml、注解、Java配置、groovy配置实现Bean的创建和注入。
元数据(xml配置、注解配置、Java配置、groovy配置)即描述数据的数据。元数据本身不具备任何可执行的能力,只能通过外界代码来对这些元数据进行解析后积极性一些有意义的操作。Spring容器解析这些配置元数据进行Bean初始化、配置和管理依赖。
声明Bean的注解:
@Component组件,没有明确的角色
@Service在业务逻辑层(service层)使用
@Repository在数据访问层(dao层)使用
@Controller在展示层(MVC→Spring MVC)使用
注入Bean的注解,一般情况下通用:
@Autowired,Spring提供的注解
@Inject,JSR-330提供的注解
@Resource,JSR-250提供的注解