6.Spring ICO and DI

 

Spring

  1. ICO(控制反转)
  2. DI(依赖注入)

在Spring环境中的控制反转是通过依赖注入来实现的。

ICO是指将对象的创建、维护对象间的依赖关系,反转给容器来实现。依赖注入的目的是为了解耦。

Spring IOC容器负责创建Bean,并通过容器将Bean注入到需要的Bean对象上。同时Spring IOC容器还负责维护Bean对象和Bean对象之间的关系。

注解:

  1. 声明Bean注解
1
2
3
4
@Component      //组件,没有明确的角色
@Controller //表现层(控制层)
@Service //服务层(业务逻辑层)
@Repository //数据访问层(Dao层)
  1. 注入Bean注解
1
2
3
@Autowired      //Spring提供的注解
@Resource //JSR-250提供的注解
@Inject //JSR-330提供的注解

@Resource的装配方式

  1. 按照名称(默认): 名称可以通过name属性指定
  2. 按照字段名: 注解写在字段上
  3. 按照属性名:注解写在setter()方法上
  4. 按照类型:找不到与名称匹配的bean时
1
2
@Resource(name="userDao")
private UserDao userDao;

@Autowired的装配方式

  1. 按照类型: (默认),默认要求依赖对象必须存在,如果要允许null值,可以设置它的required属性为false,@Autowired(required=false)
  2. 按照名称:结合@Qualifier注解进行使用
    1
    2
    3
    @Autowired
    @Qualifier("userDao")
    private UserDao userDao;