• Spring的概念


    Spring是一个清量级框架,她大大简化了Java企业级开发,提供了强大,稳定的功能,有没有额外的负担,让人们在使用它做每件事情的时候都有得体的优越感的感觉.

    Spring有两个主要的目标:一是让现有技术更易于使用,二是促进良好的编程习惯

    spring是一个全面解决的方案,但它坚持一个原则:不重新发明轮子.已经有较好解决方案的领域,

    spring绝不做重复性的实现

    列如:对象持久化和ORM,Spring只是对现有的JDBC.mybatis.Hibernate等技术提供支持,让他们更加的便于使用

    Spring框架由大约20个功能框架组成

    这些模块分成六个部分,分别是Core Container,Data Access/InteGration,Web,AOP,Instrumentation及Test

    Spring Core是框架最基础部分,提供IoC特性.spring Context为企业级开发提供了便利和集成的工具

    Spring AOP是基于Spring Core的符合规范的面向切面编程的实现.Spring JDBC提供了JDBC的抽象层,

    简化了JDBC代码,同时使代码更加健壮.

    Spring IoC

    理解控制反转

    控制反转,也称依赖注入,是面向对象编程中的一种设计理念,用来降低程序代码之间的耦合度

    什么是依赖关系

    例子:

    public interface UserDao{
        
        void save();
    
    
    
    
    
    
    }    
    public class UserDaoImpl implments UserDao{
            public void save(){
                    System.out.println("实现save");
    }
    }
    //........不写UserService巨口了
    public class UserserviceImpl implements UserService{
        UserDao dao=new UserDaoImpl();
    Public void save()
    {
    }
    }

    以上代码UserServiceImpl对UserDaoImpl存在依赖关系.这样的代码是很常见的,但是存在一个严重的问题,即他们存在高度耦合,如果因为需求变化需要变化需要替换

    UserDao的实现类,将导致UserServiceImpl中的代码随着发生修改.如此程序不具备优良的可扩展性,可维护性,甚至在开发中难以测试

    我们可以利用简单工厂和工厂方法模式的思路来解决问题

    public class UserDaoFactoty{
      public static UserDao getInstance()
    {
    //创建Dao实例的过程
    }  
    }
    public class UserServiceImpl implenments UserService
    {
     user dao=UserDaoFactory.getInstance();
    }

    这里的用户Dao工厂类UserDaoFactory体现了控制反转的思想:UserServiceImpl不在依靠自身的代码去获得所依赖的具体DAO对象,而是把这一工作转交给了第三方

    从而避免了和UserDao实现之间的耦合.由此可见,在如何获取控制依赖的对象这件事情上,控制权发生了反转

    但这种方式虽然解决了问题,但是大量的工厂类会被引入开发的过程中,明显增加了代码量.

    而Spring能够替我们分担这些工作,为我们提供完整的ioC实现,让我们专注于业务类和DAO类的设计

  • 相关阅读:
    SQL 语法总结
    终于开始用github了
    前端开发第一阶段总结
    windows系统快捷操作の高级篇
    windows系统快捷操作の进阶篇
    windows系统快捷操作の基础篇
    安装使用ubuntu问题汇总
    十进制转任意进制
    任意进制转10进制
    爬取妹子图(requests + BeautifulSoup)
  • 原文地址:https://www.cnblogs.com/liuzhiw/p/7687647.html
Copyright © 2020-2023  润新知