• 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就是统一的给一些类似的方法加上同样的功能,比如日志,事务
  • 相关阅读:
    git命令
    基于babel实现react核心功能(初始化,fiber,hook)
    Vue组件化原理-Xmind版
    访问后台 出现 俩次请求拼接情况 例如 https://localhost:4431/api/auth/jwt/token+https://localhost:4431/api/auth/jwt/token
    spring mvc 拦截器和过滤器
    前后端分离,session登录实例,jquery版本必须大于1.5,否则withCredentials不起作用
    kafka batches 数据结构是自定义map
    数据库blob中文乱码,如何查看
    先更新数据库 后删缓存
    高老师好
  • 原文地址:https://www.cnblogs.com/m7777/p/4089086.html
Copyright © 2020-2023  润新知