zoukankan      html  css  js  c++  java
  • Spring的控制反转和依赖注入

    Spring的官网:https://spring.io/

     StrutsHibernate可以做什么事?

      Struts

        Mvc中控制层解决方案

        可以进行请求数据自动封装、类型转换、文件上传、效验

    Hibernate,

      持久层的解决方案;

      可以做到,

      把对象保存到数据库,

      从数据库中取出的是对象。

    传统的开发模式

      基于mvc模式进行项目开发;

      基于mvc的项目框架结构:

      Entity / dao / service / action

    为什么引入Spring:

     思考:

        1. 对象创建创建能否写死?

        2. 对象创建细节

            对象数量

                action  多个   【维护成员变量】

                service 一个   【不需要维护公共变量】

                dao     一个   【不需要维护公共变量】

            创建时间

                action    访问时候创建

                service   启动时候创建

                dao       启动时候创建

        3. 对象的依赖关系

            action 依赖 service

            service依赖 dao

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

    总结:

    spring就是解决上面的问题的!

    简单来说,就是处理对象的创建的、以及对象的依赖关系!

    1:框架设计:

      1.1:侵入式设计:引入了框架,对现有的类的结构有影响,即需要实现或者继承某些特定类

          例如:Struts2框架

      1.2:非侵入式设计:引入了框架,对现有的类结构没有影响

          例如:Hibernate框架,Spring框架


     2:Spring框架

      Spring概述:可以解决对象创建以及对象之间依赖关系的一种框架。且可以很好的和其他框架一起使用,

         如Spring和Hibernate,Spring和Struts2,其实通俗点讲Spring就是起到一种整合的作用,

         如是一座桥梁,连接了Hibernate和Struts2;

      2.1:控制反转(Inversion of Confrol):

          对象的创建交给外部容器完成,这个就叫做控制反转

      2.2:依赖注入(dependency injection):

         处理对象的依赖关系

      2.3:控制反转和依赖注入的区别:

         控制反转:解决对象创建的问题[对象创建交给别人即ioc容器]; 

         依赖注入:在创建完对象后,对象的关系的处理就是依赖注入[通过set方法依赖注入];

      2.4:AOP面向切面编程
        面向切面编程:切面,简单的说来可以理解为一个类,由很多重复代码形成的类。
        例如:事务,日志,权限。


    3:Spring提供了一站式解决方案:

      3.1:SpringCore:

          Spring的核心功能,IoC容器,解决对象创建以及依赖关系

      3.2:SpringWeb:

         Spring对web模块的支持:

            (1)可以与struts2整合,让struts2的action的创建交给Spring

               (2)Spring mvc模式 

      3.3:SpringDao:

          Spring对jdbc操作的支持[JdbcTemplate模板工具类]

        3.4:SpringORM:

         Spring对orm的支持:

          (1):既可以与Hibernate整合

          (2):也可以使用Spring对Hibernate操作的封装

      3.5:SpringAOP:

          面向切面编程

      3.6:SpringEE:

        Spring对JavaEE其他模块的支持  


     框架啊,东西多而杂,耐着性子慢慢消化~~~

  • 相关阅读:
    1、Java语言概述与开发环境——Java程序运行机制
    1、Java语言概述与开发环境——JDK的安装与环境变量的配置
    针孔成像模型
    anconda下安装opencv
    用Navicat Prenium12连接Oracle数据库(oracle11g版本)时报错ORA-28547:connection to server failed,probable Oracle Net admin error.解决办法
    JQueryEsayUI的datagrid分页
    java中String和int的互相转化
    js页面刷新
    oracle的正则表达式
    EL表达式中,param和requestScope的区别
  • 原文地址:https://www.cnblogs.com/biehongli/p/6538250.html
Copyright © 2011-2022 走看看