Spring三个核心技术点

Spring核心技术点有:

IOC(inversion of control)控制反转(反转控制)

生活过中我们要得到或者使用一个东西,往往第一反应就是去找组成这些东西的原材料和工具,比如,我们要喝一杯橙汁,那么我们首先要去找榨汁机,然后去买橙子,和水才能造出橙汁。

这里就要延伸出两个基本概念:正控和反控

正控:若要使用某个对象需要自己去负责对象的创建,比如:User user=new User();

反控:若要使用某个对象只需要从Spring容器中获取需要使用到的对象,不关心对象的创建过程,也就是把创建对象的控制权交给Spriing控制。

DI(Dependency  injection)依赖注入。

还是先说一个场景:假如有一天你口渴了,需要去小卖铺买一瓶水,但是小卖铺距离你家很远。办法一当然很简单,就是你直接去小卖铺买水,去买水之前你必须要知道怎么去小卖铺,还要知道小卖铺有没有你需要的水,去小卖铺是开车还是不行等等。你也许还要考虑很多其他问题才能买到一瓶水,也就是说,为了一瓶水,你需要借助车等其它工具,问题变得相当复杂。

所以,简单的办法就是:小卖铺提供送货上门服务,凡是注册成为小卖铺的会员,都能享受这一服务,你只需要告知小卖铺你需要什么,小卖铺就会及时把货物送上门。

这样一来你就需要做两件事情:第一,向小卖铺注册成为会员。第二,告知小卖铺你需要什么。

这和Spring做法很想,spring就是小卖铺,你就是A对象,水就是B对象。

第一,Spring中声明一个类A,

第二,告诉Spring,A需要B

指Spring创建对象的过程中,将对象依赖属性(简单值,集合,对象)通过配设置给该对象,实现DI必须有IOC做支持。

//表四把生日这个对象注入到人这个类中

       

XML方式实现DI操作

注入方式:set方式注入,构造方法注入,p名称空间注入,spel表达式注入

注入数据类型:基本类型:int,floart ,double ,String;对象类型;复杂类型



    
        
        
        
        

    

    
        
        
    

然后在User中添加Car对象,并添加set方法。

构造方法创建对象,为什么以上的对象能够被创建,是因为IC默认通过无参构造方法创建对象,可以通过打印无参看看就知道了

但是如果类中没有默认的无参构造方法,比如下面:


    public User(String name,int id){
        this.id=id;
        this.name=name;
    }

那么就要使用下面的方式进行注入:


    
        
        
    

还可以通过index值来确定优先执行那个构造方法

Spring三个核心技术点_第1张图片

还可以使用type来控制找那个类型的参数


    
        
        
    

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(简单物联网搭建)