Spring实战(2)-IOC

Bean:

在spring中,所有的java对象都会被spring核心容器管理。一切对象统称为Bean。


IoC:

控制翻转,在spring中就是依赖注入:指的就是容器负责创建对象和维护对象间的依赖关系,而不是通过对象本身负责自己的创建和解决自己的依赖。主要目的是为了解耦。通俗说就是我写的java类,在别的地方使用的时候需要实例化,注入等。而现在在spring中,这些实例化,注入到需要使用的地方这些工作全部由一个spring提供的容器(第三方)去负责。

Spring IoC 容器ApplicationContext)负责创建Bean,并通过容器将Bean注入到需要的地方去。实现的方式是通过XML、注解、java配置等方式来实现的。

既然容器可以知道我写的那个类是Bean,而且还的把这个Bean注入到需要的地方去。那么就涉及到了Bean的声明和Bean的注入。我需要告诉spring哪个是你要去声明的和哪个地方是你需要去注入的。

声明Bean的注解:

  • @Component 组件,没有明确的角色
  • @Serivice 在业务逻辑层使用
  • @Repository 在持久层使用
  • @Controller 在展现层使用

注入Bean的注解:(一般情况下通用)

  • @Autowired  :Spring提供的注解
  • @Resource   :JSR-250提供的注解

 


JAVA反射机制:

Spring可以做到这种依赖注入,凭借的就是java本身的反射机制。

JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。

Java程序在运行时,Java运行时系统一直对所有的对象进行所谓的运行时类型标识。这项信息纪录了每个对象所属的类。虚拟机通常使用运行时类型信息选准正确方法去执行,用来保存这些类型信息的类是Class类。

也就是说,ClassLoader找到了需要调用的类时,就会加载它,然后根据.class文件内记载的类信息来产生一个与该类相联系的独一无二的Class对象。该Class对象记载了该类的字段,方法等等信息。以后jvm要产生该类的实例,就是根据内存中存在的该Class类所记载的信息来进行。

流程图:(转自https://blog.csdn.net/sinat_38259539/article/details/71799078

我们使用java提供的这个Class,注意首字母大写。以及它提供的一些方法就可以实现获取构造函数,方法等。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值