SSM框架之Spring简介

一、Spring Framework的简介

1、概念

        Spring Framework是Spring 基础框架,可以视为 Spring 基础设施,基本上任何其他 Spring 项目都是以 Spring Framework 为基础的。是一个分层的JavaSE/EE full-stack(一站式) 轻量级开源框架 。

2、Spring FrameWork的特征

        Spring Framework的特征主要体现在以下几个方面:

(1)非侵入式:使用 Spring Framework 开发应用程序时,Spring 对应用程序本身的结构影响非常小。对领域模型(domain)可以做到零污染;对功能性组件也只需要使用几个简单的注解进行标记,完全不会破坏原有结构,反而能将组件结构进一步简化。这就使得基于 Spring Framework 开发应用程序时结构清晰、简洁优雅。

 (2)面向切面编程AOP:AOP——Aspect Oriented Programming,在不修改源代码的基础上增强代码功能。

(3)控制反转IOC:IOC——Inversion of Control,反转资源获取方向。把自己创建资源变成环境将资源准备好,我们享受资源注入。

(4)容器:Spring IOC 是一个容器,因为它包含并且管理组件对象的生命周期。组件享受到了容器化的管理,替程序员屏蔽了组件创建过程中的大量细节,极大的降低了使用门槛,大幅度提高了开发效率。

(5)组件化:Spring 实现了使用简单的组件配置组合成一个复杂的应用。在 Spring 中可以使用 XML 和 Java 注解组合这些对象。这使得我们可以基于一个个功能明确、边界清晰的组件有条不紊的搭建超大型复杂应用系统。

(6)声明式:很多以前需要编写代码才能实现的功能,现在只需要声明需求即可由框架代为实现。

(7)一站式:在 IOC 和 AOP 的基础上可以整合各种企业应用的开源框架和优秀的第三方类库。而且 Spring 旗下的项目已经覆盖了广泛领域,很多方面的功能性需求可以在 Spring Framework 的基础上全部使用 Spring 来实现。

3、Spring FrameWork的五大功能组件

功能模块简介
Core Container核心容器,在spring环境下任何时候都要使用IOC容器
AOP&Aspect面向切面编程
TestSpring提供了对junit或者是TestNG测试框架的整合
DataAccess&IntegrationSpring提供对数据访问或集成的功能
Spring MVCSpring提供了面向Web的集成功能能

 二、Spring Container的简介

1、Spring Container的概念

1. 普通容器

普通容器只是负责存储数据(对象),例如我们在JavaSE中学习的数组、List、Map等等,可以让我们使用它存储数据、获取数据,不具备其它复杂的功能

2. 复杂容器

复杂容器不仅要负责存储对象,还需要具备创建对象、调用对象方法、管理对象生命周期、并且在一定情况下负责销毁对象。例如我们之前学习的Tomcat就是一个复杂容器,它能够负责创建Servlet、Filter、Listener等等对象,并且管理他们的生命周期,在生命周期的不同阶段调用他们的不同方法。而我们后续要学习的IOC容器也是一个复杂容器

2、IOC的概念

1、传统的方式创建对象


public User user=new User();

在传统创建对象的过程中:就以创建一个用户类对象来说,在创建完用户类型的变量后,我们需要手动new一个对象,如此这般,程序的耦合性提高。

2、IOC方式创建对象的方式

IOC,即控制反转,对象的使用者在使用对象时不需要创建对象,而是将对象反转给Spring容器创建和管理。其中,反转的意思是对象的创建工作,也就是说,在Spring容器的加持下,我们上述创建对象时就不需要new一个对象了,这一步容器会帮我们完成。

3、IOC容器的两种实现方式

Spring 的 IOC 容器就是 IOC 思想的一个落地的产品实现。IOC 容器中管理的组件也叫做 bean。在创建 bean 之前,首先需要创建 IOC 容器。Spring 提供了 IOC 容器的两种实现方式:

1. BeanFactory

这是 IOC 容器的基本实现,是 Spring 内部使用的接口。面向 Spring 框架本身,供Spring框架内部功能使用,不建议开发人员使用。

2. ApplicationContext

BeanFactory 的子接口,提供了更多高级特性。面向 Spring 框架的使用者,几乎所有场合都使用 ApplicationContext 而不是底层的 BeanFactory。

以后在 Spring 环境下看到一个类或接口的名称中包含 ApplicationContext,那基本就可以断定,这个类或接口与 IOC 容器有关。

3. ApplicationContext的主要实现类

类型名简介
ClassPathXmlApplicationContext通过读取类路径下的 XML 格式的配置文件创建 IOC 容器对象
FileSystemXmlApplicationContext通过文件系统路径读取 XML 格式的配置文件创建 IOC 容器对象
ConfigurableApplicationContextApplicationContext 的子接口,包含一些扩展方法 refresh() 和 close() ,让 ApplicationContext 具有启动、关闭和刷新上下文的能力。
AnnotationConfigApplicationContext可以实现基于Java的配置类加载Spring的应用上下文,创建IOC容器对象
WebApplicationContext专门为 Web 应用准备,基于 Web 环境创建 IOC 容器对象,并将对象引用存入 ServletContext 域中。

 三、Spring IOC

1、快速入门

(1)实现思路

 

(2)导入依赖

在pom.xml文件中引入以下依赖:

<dependencies>
        <!--导入spring所需的所有jar包-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>5.3.1</version>
        </dependency>
        <!--junit测试框架-->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.13</version>
            <scope>test</scope>
        </dependency>
        <!--spring整合junit测试框架-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-test</artifactId>
            <version>5.2.12.RELEASE</version>
        </dependency>
    </dependencies>

(3)创建组件类

创建一个Book实体类

package com.atshen.entity;

public class Book {
    private String name;
    private String author;
    private String price;

    public Book() {
    }

    public Book(String name, String author, String price) {
        this.name = name;
        this.author = author;
        this.price = price;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getAuthor() {
        return author;
    }

    public void setAuthor(String author) {
        this.author = author;
    }

    public String getPrice() {
        return price;
    }

    public void setPrice(String price) {
        this.price = price;
    }

    @Override
    public String toString() {
        return "Book{" +
                "name='" + name + '\'' +
                ", author='" + author + '\'' +
                ", price='" + price + '\'' +
                '}';
    }
}

(4)创建Spring配置文件并配置bean

<?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 
       http://www.springframework.org/schema/beans/spring-beans.xsd">
    
    <!--
    配置Book相对应的bean
    每一个实现类都对应一个bean
    name是bean的一个标识(在这里也可以使用id)
    class的值为实现类对应的全限定名
    -->
    <bean name="book" class="com.atshen.entity.Book"></bean>
    
    
</beans>

 (5)编写测试类

package com.atshen;


import com.atshen.entity.Book;
import org.junit.Test;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class SpringDemo01 {
    @Test
    public void test01(){
        //读取Spring配置文件的信息,并把配置文件的路径以参数的形式传到ApplicationContext中
        ClassPathXmlApplicationContext classPathXmlApplicationContext = new ClassPathXmlApplicationContext("classpath:spring-config.xml");
        //从容器中获取Book对象
        Book bean = classPathXmlApplicationContext.getBean(Book.class);
        //调用对象的方法
        bean.setName("活着");
        bean.setAuthor("余华");
        bean.setPrice(45.6);
        System.out.println(bean);
    }
}

运行结果:

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
资源简介SSM Java 项目集合 一、概述 在这个平台上,我们为大家带来了一系列的 JavaSSMSpring + SpringMVC + MyBatis)项目。这些项目旨在展示SSM框架在实际应用中的魅力,同时也为开发者提供了一个快速学习和实践的机会。通过下载和使用这些项目,您将能够深入了解SSM框架的核心概念、设计模式和最佳实践。 二、项目特点 实战性强:这些项目均来自实际业务场景多个领域,具有很强的实战性和参考价值。 技术先进:所有项目均采用最新的SSM框架版本,包括SpringSpringMVC 和MyBatis 等,确保技术的先进性和稳定性。 代码规范:项目代码严格按照行业标准和最佳实践进行编写,易于阅读和维护。 文档齐全:每个项目都配备了详细的开发文档和使用说明,方便您快速上手和定制开发。 三、适用人群 Java初学者:通过学习和实践这些项目,您将能够快速掌握SSM框架的基础知识和核心技术。 中高级开发者:这些项目将为您提供丰富的实战经验和灵感,帮助您提升技术水平和解决问题的能力。 项目经理和架构师:这些项目可以作为参考和模板,帮助您更好地规划和设计实际业务场景中的Java项目。 四、下载与使用 下载:所有项目均提供下载,您只需在平台上注册并登录即可获取。 安装与部署:每个项目都提供了详细的安装和部署指南,帮助您快速搭建和运行项目。 定制开发:您可以根据实际需求对项目进行定制开发,扩展功能和优化性能。 五、结语 通过这一系列SSM Java项目的下载和学习,您将能够深入了解SSM框架的核心技术,提升自己的编程能力,并在实际业务场景中灵活应用。我们期待您能够通过这些项目获得更多的成长和进步!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Lonely Notes

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值