Spring笔记

一、IoC/DI

1.什么叫IoC

IoC (Inversion of Control,控制反转) ,是面向对象编程中的一种设计原则,可以用来减低计算机代码之间的耦合度。只是因为该理论时间成熟相对较晚,并没有包含在GoF中。

系统中通过引入实现了IoC模式的IoC容器,即可由IoC容器来管理对象的生命周期、依赖关系等,从而使得应用程序的配置和依赖性规范与实际的应用程序代码分离。

从使用上看,以前手动new对象,并设置对象中属性的方式,控制权是掌握在应用程序自身。现在则全部转移到了容器,由容器来统一进行管理对象。因为控制权发生了扭转,所以叫控制反转。

2.什么叫DI

DI 是实现IoC的方法之一。所谓依赖注入,就是由IOC容器在运行期间,动态地将某种依赖关系注入到对
象之中。
所以,依赖注入(DI)和控制反转(IOC)是从不同的角度的描述的同一件事情,就是指通过引入IOC容器,利
用依赖关系注入的方式,实现对象之间的解耦。

二、Spring容器使用流程

Spring容器的API有 BeanFactory 和 ApplicationContext 两大类,他们都是顶级接口。其中ApplicationContext 是 BeanFactory 的子接口。
在这里插入图片描述

三、初始化/注册Bean

1.注册Bean的方式一:类注解

在类上使用注解 @Controller , @Service , @Repository , @Component 。需要保证该类会被Spring扫描到,这种定义方式默认会注册一个名称为类名首字母小写的Bean对象到容器中。
以下定义一个模拟数据库操作的类 org.example.dao.LoginRepository , @Repository 注解会注册名称为 loginRepository 的对象到容器中:

package org.example.dao;
import org.example.model.User;
import org.springframework.stereotype.Repository;

@Repository
public class LoginRepository {
   
}

定义好了Bean对象,注册到容器中以后,就可以获取Bean对象了,在入口类中,可以通过 ApplicationContext 对象获取Bean,有两种方式获取:
• 通过类型获取:这种获取方式要求该类型的Bean只能有一个
• 通过名称获取:同一个类型的Bean可以有多个

package org.example;
import org.example.dao.LoginRepository;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class App {
   

    public static void main(String[] args) {
   
        //根据Spring配置文件路径创建容器:应用上下文对象
        ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");
        LoginRepository loginRepository1 = (LoginRepository)context.getBean("loginRepository");
        LoginRepository loginRepository2 = context.getBean(LoginRepository.class);
        System.out.printf("loginRepository: %s%n", loginRepository1 == loginRepository2);
        //关闭容器
       ((ClassPathXmlApplicationContext) context).close();
   }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值