spring 干嘛用的,记录。以后用多了再补充

http://zhidao.baidu.com/link?url=TVePPDbQU1n61s_Bu2FT9_YoJebaux8tYlNEZQhiHYHpT8QIbbyOSC8wDnpVmnmurwNntgNpRqwFkMcu8U9K8K

其实我一开始也好楼主有同样的困惑,但是在项目的慢慢积累,感觉spring的配置文件太有才了

我就和你分享一点:那就是软件的后期维护

比如说有一个订单的DAO接口:interface OrderDAO

在开发的时候我是用的MySql数据库,实现类为 class MySqlOrderDAOImpl implements OrderDAO

在业务代码里面,我要使用OrderDAO,这没什么难的,直接new一个对象不就行了吗,于是我就这样了:

OrderDAO dao = new MySqlOrderDAOImpl();

轻松完成,最后项目完成,实施运营了,后来客户发现MySql不行了,要换成Oracle,这不难,我在写一个OrderDAO的实现类不就行了吗,于是我两指一挥:

class OracleOrderDAOImpl implements OrderDAO

可是这样就又来了一个麻烦就是在我的业务代码里面,我都是自己new的对象,都是“MySqlOrderDAOImpl”,

没问题,把 “MySqlOrderDAOImpl” 替换成”OracleOrderDAOImpl “就可以了

于是,全体动员,查找“MySqlOrderDAOImpl”然后替换成”OracleOrderDAOImpl “,这样浪费了半天,还可能有些地方还没替换呢

=============================================

后来就想到了spring的Ioc,在配置文件里配置OrderDAO的实现类就可以了,只要OrderDAO的有新的实现类,我只是在配置文件中修改一下就可以了,大概需要几秒钟吧,时间太快,没法计算啊(呵呵)



不带Ioc :http://blog.csdn.net/tydldd1/article/details/8107786
Aop:http://www.blogjava.net/javadragon/archive/2006/12/03/85115.html
http://outofmemory.cn/code-snippet/3762/Spring-AOP-learn-example


我理解的ioc 控制反转,所谓的控制翻转就是在配置文件中配置一些信息,要用的地方通过读取配置文件反射出要用的实体,这个实体有一个基类或者接口,将反射的实体赋值给
基类或者接口,调用基类或者接口的方法,会调用重写或者实现的接口方法,这样的话A,B实体都实现了接口I,只需要在配置文件中修改时用A还是B,在调用的地方都是用I来操作,也就不需要知道到底是A在用还是B在调用。
控制翻转的实现原理见http://blog.csdn.net/it_man/article/details/4402245
  1. ApplicationContext context = new FileSystemXmlApplicationContext(  
  2.                 "applicationContext.xml");  

下面简单叙述一下ioc到底做了什么。

<bean id="test" class="Test">  
        <property name="testMap">  
            <map>  
                <entry key="a">  
                    <value>1</value>  
                </entry>  
                <entry key="b">  
                    <value>2</value>  
                </entry>  
            </map>  
        </property>  
    </bean>  

首先会解析配置文件,

将我们配置的信息保存在一个HashMap中,HashMap的key就是Bean 的 Id ,HasMap 的value是这个Bean,只有这样我们才能通过context.getBean("animal")这个方法获得Animal这个类。

它是通过反射机制实现的,在实例化一个类时,它通过反射调用类中set方法将事先保存在HashMap中的类属性注入到类中。

最后它将这个类的实例返回给我们,我们就可以用了

IoC就是对象的创建,依赖都由Spring及配置文件控制
AOP就是统一的给一些类似的方法加上同样的功能,比如日志,事务
原文地址:https://www.cnblogs.com/m7777/p/4089086.html