11.JavaWeb-Spring框架

11.JavaWeb-Spring框架_第1张图片

1.Spring概念

        Spring框架是一个轻量级开源的应用程序框架,用于开发Java企业级应用程序。它提供了一种综合的编程和配置模型,可以帮助开发人员构建灵活、可扩展且易于维护的应用程序。

        Spring的根本使命:简化Java开发

        【Spring给予了Java新生】

1.1 Spring特点

  1. 解耦和简化开发:通过IOC容器管理对象的依赖关系,简化了代码的耦合度,让开发者专注于业务逻辑的实现。

  2. IOC容器管理对象:Spring负责对象的创建和注入,降低了对象之间的耦合度。

  3. 集成支持:提供对主流框架的集成支持,方便开发者使用其他框架的功能。

  4. 面向切面编程(AOP):实现横切关注点的模块化,如权限拦截、事务管理、日志记录等。

  5. 高度可开放性:开发者可以选择使用Spring的部分或全部特性,也可以与其他框架灵活集成。

2.Spring核心(Spring Core)

        spring为企业级开发提供了丰富的功能,这些功能的底层都依赖于他的两个核心特性:依赖注入(DI)、面向切面编程(AOP)

2.1 依赖注入

        DI能够让相互协作的软件组件保持松散耦合,依赖注入通过IOC容器实现

2.1.1 耦合度

        耦合就是联系的紧密程度,一方面,紧密耦合的代码难以测试、难以复用、难以理解,经常修复一个bug,出现一个或者更多新的bug另一方面,一定程度的耦合又是必须的,完全没有耦合的代码什么也做不了

        通过DI,对象无需自己创建依赖关系,依赖关系将被自动注入到需要他们的对象中

2.1.2 控制反转(IOC)

        IOC是一种软件设计原则,基本概念:不创建对象 

        传统的程序设计中,对象之间的依赖关系是由对象自己创建和管理的。这样的设计方式导致了高耦合度、难以维护和测试的代码。

        而控制反转则是将对象之间的依赖关系的控制权反转给了框架或容器。对象不再直接创建和管理它所依赖的对象,而是由外部的框架来负责创建和注入依赖。对象只需声明它所需要的依赖,由框架在合适的时机将依赖注入进去。

        IOC容器负责创建、组装和管理对象,对象只需通过配置文件或注解来声明依赖关系,而不需要显式地创建和管理这些对象。框架会根据配置文件或注解的信息,自动创建和注入依赖对象,从而实现了对象之间的解耦。

2.1.3 依赖注入的方式

        1.构造函数注入

        2.Setter方法注入

        先在相应的xml文件中创建对象,并赋值


    
        
        
    

         再在需要调用对象的类中加载spring的配置文件来得到上下文对象,再用上下文对象获取要调用的对象

//1.加载spring的配置文件,得到应用程序上下文对象
ApplicationContext context = new ClassPathXmlApplicationContext("spring-context.xml");

//2.获取想要的对象
Object aaa = context.getBean("aaa");

        3.注解注入:日常开发用的最多

        实现起来简单,只需给变量添加一个@Resource或者@Autowired注解,并在xml文件中开启注解扫描即可

@Resource
private EmployeeServiceimpl employeeServiceimpl;

@Autowired
private EmployeeServiceimpl employeeServiceimpl;

2.2 面向切面编程

        面向切面编程允许把遍布应用各处的功能分离出来形成可重用的组件

2.2.1 不使用面向切面编程的问题

        1.有时一段代码可能会重复出现在多个组件中,当你想改变这段代码时,必须修改各个组件中的相关实现,就算把这段代码封装起来,其他组件只是调用他的方法,但方法的调用还是会重复出现在各个组件中

        2.组件会因为那些与自身核心业务无关的代码而变得混乱,一个向地址册增加地址条目的方法应该只关注如何添加地址,而不应该关注它是不是安全的或者是否需要支持事务

2.1 IOC控制反转

        将对象的创建和依赖关系的管理从应用程序代码中反转到框架(如Spring)中进行

        传统的开发方式中,应用程序代码通常负责创建对象并维护对象之间的依赖关系。这样的设计可能导致高度耦合的代码,难以维护和测试。而IOC的思想是将对象的创建和依赖关系的管理交给框架来完成,从而实现解耦、灵活和可扩展的设计。 

        在Spring框架中,IOC通过IOC容器来实现。IOC容器负责创建和管理对象,应用程序通过IOC容器来获取需要的对象实例,而不是直接在代码中创建对象。

        实现IOC的方式有多种,其中最常见的方式是依赖注入(Dependency Injection)。依赖注入是指通过构造函数、属性注入或方法注入的方式将对象的依赖关系注入到目标对象中。通过依赖注入,可以将对象之间的关系解耦,提高代码的可测试性和可维护性。

        Spring框架提供了多种方式来实现依赖注入,包括XML配置、注解和Java配置等。开发者可以根据需求选择合适的方式进行配置和使用。

你可能感兴趣的:(spring,java,后端)