学习Spring day1

Spring是一个以依赖注入和AOP为核心的Java开发框架,简化开发过程,提高代码可重用性和效率,支持企业级应用的多个模块,包括数据访问、Web开发和测试。Maven依赖展示了其核心库和扩展包的使用。
摘要由CSDN通过智能技术生成

1.介绍

Spring是一个开源的Java开发框架,它提供了一种简化Java应用程序开发的方式。Spring框架以依赖注入(DI)和面向切面编程(AOP)为核心思想,旨在提供灵活、可扩展、模块化和松耦合的开发环境。

2.Spring 的好处

  1. 简化开发:Spring框架提供了一种简化Java应用程序开发的方式,通过依赖注入和控制反转等特性,可以降低代码的耦合度,提高代码的可维护性和可测试性,使开发人员能够更加专注于业务逻辑的实现。

  2. 提高代码的可重用性:Spring框架通过面向切面编程等特性,将与业务逻辑无关的横切关注点(如日志记录、事务管理等)从业务逻辑中分离出来,以便于复用和维护。这样可以减少重复的代码,提高代码的可重用性。

  3. 提高开发效率:Spring框架提供了许多开箱即用的功能模块,如企业级缓存、数据库访问、Web应用开发等,使开发人员可以更加方便地开发各种类型的应用程序。同时,Spring框架也提供了丰富的文档和社区支持,使得开发人员能够更快地解决问题和学习新的技术。

  4. 提供了一致的编程模型:Spring框架提供了一致的编程模型,使得开发人员可以更加方便地理解和使用框架的各个功能。同时,Spring框架也支持多种开发方式,如基于XML配置、基于注解配置、基于Java配置等,使开发人员能够根据自己的喜好和项目需求选择合适的开发方式。

  5. 支持集成测试:Spring框架提供了一套完整的测试框架,可以方便地进行单元测试和集成测试。通过使用Spring的测试框架,开发人员可以更加方便地编写和执行测试用例,确保应用程序的质量和稳定性。

总之,Spring框架的好处包括简化开发、提高代码可重用性、提高开发效率、提供一致的编程模型和支持集成测试等。这些好处使得Spring成为Java开发中广泛使用的框架之一。

3.Spring的结构

 

Spring是一个开源的Java框架,用于构建企业级应用程序。它提供了一个全面的体系结构,包括以下几个主要组件:

  1. 核心容器(Core Container):核心容器提供了Spring框架的基本功能,包括依赖注入(Dependency Injection)和控制反转(Inversion of Control)。通过依赖注入,Spring可以管理应用程序中各个对象之间的依赖关系,使得对象的创建和管理更加灵活和可扩展。控制反转则是指将对象的创建和管理交给Spring容器来处理,从而减轻了开发人员的负担。

  2. AOP支持(Aspect-Oriented Programming):AOP是一种面向切面编程的技术,它允许开发人员通过定义切面、连接点和通知等元素来实现对应用程序中横切逻辑的管理。Spring提供了对AOP的完整支持,可以方便地在应用程序中应用切面编程的思想,例如日志记录、事务管理等。

  3. 数据访问/集成(Data Access/Integration):Spring提供了对各种数据访问和集成技术的支持,包括JDBC、ORM框架(如Hibernate、MyBatis)、事务管理等。通过Spring的数据访问/集成模块,开发人员可以更加方便地访问和操作数据库、消息队列、缓存等。

  4. Web开发(Web Development):Spring框架还提供了丰富的Web开发支持,包括MVC框架、RESTful服务、WebSocket、安全性等。通过Spring的Web开发模块,开发人员可以轻松地构建灵活、可扩展的Web应用程序。

  5. 测试(Testing):Spring框架提供了一套完整的测试支持,包括单元测试、集成测试等。通过Spring的测试模块,开发人员可以编写简洁、高效的测试代码,并借助Spring的依赖注入和控制反转功能来简化测试环境的搭建和管理。

综上所述,Spring框架的体系结构是一个多层次、模块化的结构,各个组件相互配合,为开发人员提供了一套完备的工具和功能,帮助他们构建高质量、易于维护的企业级应用程序。

4.IOC

IOC(Inversion of Control,控制反转)是Spring框架的核心概念之一。它是一种设计原则,用于解耦和管理对象之间的依赖关系。

在传统的应用程序中,对象之间的依赖关系通常是通过对象自己创建和管理其他对象来实现的。这种方式会导致对象之间的紧耦合,使得代码难以维护和测试。而IOC则是将对象的创建和依赖关系的管理交给容器来完成,从而实现了对象之间的解耦。

在Spring中,IOC通过依赖注入(Dependency Injection)来实现。依赖注入是指容器在创建对象时,自动将其所依赖的其他对象注入到目标对象中。这样,目标对象就不需要自己创建和管理其他对象,而是通过容器来完成。

Spring的IOC容器负责管理对象的生命周期和依赖关系。它会根据配置文件或注解来创建和装配对象,将对象之间的依赖关系解耦。开发人员只需要定义好对象的属性和依赖关系,然后交给容器来管理,不需要关心对象的创建和销毁。

Spring的IOC容器有两种实现方式:BeanFactory和ApplicationContext。BeanFactory是IOC容器的基本实现,提供了基本的IOC功能。而ApplicationContext是BeanFactory的子接口,提供了更多的企业级功能,如AOP、事务管理、国际化等。

通过IOC,开发人员可以更加灵活地组织和管理对象,提高代码的可维护性和可测试性。同时,IOC也为其他功能模块,如AOP、数据访问/集成等提供了基础支持,使得开发人员能够更加方便地开发各种类型的应用程序。

5.DI

在Spring中,DI代表的是依赖注入(Dependency Injection),它是Spring框架的核心特性之一。

依赖注入是一种设计模式,通过它可以实现对象之间的解耦和组件的灵活组装。在传统的编程模型中,一个对象通常负责创建和管理其他对象的实例,这导致了对象之间产生了紧耦合的关系。而通过依赖注入,对象不再负责自己所依赖的对象的创建和管理,而是将依赖关系交由外部容器来处理。

Spring框架通过依赖注入来实现对象之间的解耦。开发人员只需要在需要注入依赖的地方声明相应的依赖关系即可,而无需自行创建和管理依赖对象。Spring容器会负责在运行时查找并注入相应的依赖对象,从而实现对象之间的解耦和灵活组装。

Spring提供了多种方式来实现依赖注入,包括构造器注入、Setter方法注入和字段注入等。开发人员可以根据具体的需求选择适合的注入方式。

总结来说,依赖注入是Spring框架的一项重要功能,它通过将对象之间的依赖关系交由外部容器来处理,实现了对象之间的解耦和组件的灵活组装。这种思想使得应用程序的设计更加松散、可维护性更高,同时也方便了单元测试和扩展。

6.所需要的Maven依赖

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>4.3.7.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-beans</artifactId>
            <version>4.3.7.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>4.3.7.RELEASE</version>
        </dependency>
        <!-- 2.Spring dao依赖 -->
        <!-- spring-jdbc包括了一些如jdbcTemplate的工具类 -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>4.3.7.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-tx</artifactId>
            <version>4.3.7.RELEASE</version>
        </dependency>
        <!-- 3.Spring web依赖 -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-web</artifactId>
            <version>4.3.7.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>4.3.7.RELEASE</version>
        </dependency>
        <!-- 4.Spring test依赖:方便做单元测试和集成测试 -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-test</artifactId>
            <version>4.3.7.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
        </dependency>
 
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-aspects</artifactId>
            <version>5.2.7.RELEASE</version>
        </dependency>

下次教大家具体实现; 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器学习模型机器
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值