Spring框架学习总结【狂神说Java】

Spring框架学习总结【狂神说Java】Spring 概述 Spring 框架是什么 Spring 是一个轻量级的控制反转 IoC 和面向切面 AOP 的容器 框架 Spring 的优点 Spring 是一个轻量级的框架 非侵入式的 对事务的支持 对框架整合的支持 针对接口编程 解耦合 Spring 的体系结构 Spring

大家好,我是讯享网,很高兴认识大家。

Spring概述

Spring框架是什么?

Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器(框架)

Spring的优点

  • Spring是一个轻量级的框架 , 非侵入式的
  • 对事务的支持 , 对框架整合的支持
  • 针对接口编程,解耦合

Spring的体系结构

Spring 框架是一个分层架构,由 7 个定义良好的模块组成。

  • 核心容器(Spring Core):核心容器提供 Spring 框架的基本功能。核心容器的主要组件是 BeanFactory,它是工厂模式的实现。BeanFactory 使用控制反转(IOC) 模式将应用程序的配置和依赖性规范与实际的应用程序代码分开。
  • Spring 上下文(Spring Context):Spring 上下文是一个配置文件,向 Spring 框架提供上下文信息。Spring 上下文包括企业服务,例如 JNDI、EJB、电子邮件、国际化、校验和调度功能。
  • Spring AOP:通过配置管理特性,Spring AOP 模块直接将面向切面的编程功能 , 集成到了 Spring 框架中。所以,可以很容易地使 Spring 框架管理任何支持 AOP的对象。Spring AOP 模块为基于 Spring 的应用程序中的对象提供了事务管理服务。通过使用 Spring AOP,不用依赖组件,就可以将声明性事务管理集成到应用程序中。
  • Spring DAO:JDBC DAO 抽象层提供了有意义的异常层次结构,可用该结构来管理异常处理和不同数据库供应商抛出的错误消息。异常层次结构简化了错误处理,并且极大地降低了需要编写的异常代码数量(例如打开和关闭连接)。Spring DAO 的面向 JDBC 的异常遵从通用的 DAO 异常层次结构。
  • Spring ORM:Spring 框架插入了若干个 ORM 框架,从而提供了 ORM 的对象关系工具,其中包括 JDO、Hibernate 和 iBatis SQL Map。所有这些都遵从 Spring 的通用事务和 DAO 异常层次结构。
  • Spring Web 模块:Web 上下文模块建立在应用程序上下文模块之上,为基于 Web 的应用程序提供了上下文。所以,Spring 框架支持与 Jakarta Struts 的集成。Web 模块还简化了处理多部分请求以及将请求参数绑定到域对象的工作。
  • Spring MVC 框架:MVC 框架是一个全功能的构建 Web 应用程序的 MVC 实现。通过策略接口,MVC 框架变成为高度可配置的,MVC 容纳了大量视图技术,其中包括 JSP、Velocity、Tiles、iText 和 POI。

IOC本质

控制反转IoC(Inversion of Control),是一种设计思想,DI(依赖注入)是实现IoC的一种方法,DL(依赖查找)也是实现IOC的一种方法;


讯享网

采用XML方式配置Bean的时候,Bean的定义信息是和实现分离的,而采用注解的方式可以把两者合为一体,Bean的定义信息直接以注解的形式定义在实现类中,从而达到了零配置的目的。

Spring容器是一个超级大工厂,负责创建、管理所有的Java对象,这些Java对象被称为Bean。Spring 容器管理着容器中Bean之间的依赖关系,Spring 使用DI(依赖注入)的方式来管理Bean之间的依赖关系。使用loC实现对象之间的解耦合。

控制反转是一种通过描述(XML或注解)并通过第三方去生产或获取特定对象的方式。在Spring中实现控制反转的是IoC容器,其实现方法是依赖注入(Dependency Injection,DI)。

HelloSpring

准备

实现步骤: 1.创建maven项目 2.加入maven的依赖 spring的依赖 junit依赖 lombok依赖 3.创建Student类,和没有使用框架一样,就是普通的类。 4.创建spring需要使用的配置文件 声明类的信息。这些类由spring创建和管理 5.测试spring创建的对象。 

讯享网

Sprig的第一个程序

讯享网<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans.xsd"> <!--告诉spring创建对象 声明bean,告诉spring要创建某个类的对象 id是对象的自定义名称(唯一值)。spring通过这个名称找到对象 class:类的全限定名称(不能是接口,因为spring是反射机制) spring就完成Student student = new Student(); spring是把创建好的对象放到了map中,spring框架中有一个map存放对象的。 springMap.put(id的值,对象) 例如 springMap.put("student",new Student()); 一个bean标签只声明一个对象 --> <bean id="student" class="com.test.dyh.Student"> <property name="id" value="1"/> <property name="age" value="12"/> <property name="name" value="段玉"/> </bean> </beans> <!--spring的配置文件 1.beans是根标签,spring中把Java对象成为bean 2.spring-beans.xsd是约束文件,和mybatis指定的类似 --> 

测试

package com.test.dyh; import org.junit.Test; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import java.text.MessageFormat; public class AppTest { 
    /*spring默认创建对象的时间:在创建spring的容器时,他会创建配置文件中的所有对象*/ @Test public void shouldAnswerWithTrue() { 
    //使用spring容器创建的对象 //1.指定spring配置文件的名称 String config="bean.xml"; //2.创建表示spring容器的对象,ApplicationContext //ClassPathXmlApplicationContext;表示从类路径中加载spring的配置文件 ApplicationContext st = new ClassPathXmlApplicationContext(config); //3.从容器中获取某个对象,你要调用对象的方法, //getBean("配置文件中的bena的id值"); Student student = (Student) st.getBean("student"); //使用spring创建好的对象 System.err.println(MessageFormat.format("id={0}, age={1}, name={2}", student.getId(), student.getAge(), student.getName())); //输出:id=1, age=12, name=段玉 } } 

IOC创建对象的方式

小讯
上一篇 2025-01-26 18:18
下一篇 2025-03-02 22:52

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/51475.html