Spring学习

Why Spring

Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架,它由Rod Johnson创建。它是为了解决企业应用开发的复杂性而创建的。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。

个人总结

这里写图片描述

什么是IOC

IOC(Inversion of Control)控制反转,把创建对象的权利交给框架。
个人理解:找工作的时候,我们都知道投完简历之后,我们不用给中介公司打电话,如果我们简历他们满意的话公司会给我们打电话的。公司有着对录用与否的绝对控制,我们只能等待。我们就相当于一个个的Java Class,一开始的时候都是自己找工作的,后来有了中介公司,所有的事都由中介公司来搞定,于是控制就翻转了

面向对象编程用Class来对现实世界抽象,运行的时候这些类会实例化为对象。

Teacher t = new Teacher();

业务变复杂了,抽象出People类

People p1 = new Teacher();
People p2 = new Student();
...

这时候想根据用户的参数来创建对象

public class PeopleFactory{
    private People p = null;
    People create(String p){
        if(p=="Teacher"){
            p = new Teacher();
        }else if(p == "Student"){
            p = new Student();
        }
        return p;
    }
}

如果这时候还要增加一个People的子类还需要修改上面这个方法,其实上面这就是一个简单工厂,但是还没有完全的解除依赖

//在上面的类里增加一个方法
public void setPeople(People p){
    this.p = p;
}
//把People 换成抽象类或接口这就是典型的面向接口编程,而不是对实现编程

业务逻辑这时候更复杂了,人要上网,要吃饭等等

//上面是设置的是人类,还需要进行下面的设置
**.setComputer(ComputerInterface c);
**.setFood(FoodAbstractClass f);
**.setProt(NetPInterface n);
...

随着系统的复杂度增加上面的东西越来越多,这样的代码也越来越多,变得很难维护,这时候有一种东西刚好能把这些依赖关系统一维护,那就是XML

<beans>
    <bean id="people" class="com.live.People" scope="property">
        <property name="computer" ref="computer"/>
        <property name="food" ref="food"/>
        <property name="net" ref="net"/>
    </bean>
</beans>

xml有了之后再有一个xml解析器(XmlAppContext)就能完美解决了:
解析xml,获取元素——>通过反射,调用set方法把实例注入——>然后就可以自己组合逻辑让程序运行了。

什么是Aop

Aop(Aspect Oriented Programming)面向切面编程

评论 20
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值