[JAVAee]Spring的基础介绍

这篇具有很好参考价值的文章主要介绍了[JAVAee]Spring的基础介绍。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

本文章介绍了Spring大致是什么,核心的功能.

目录

Spring是什么?

容器?

IoC?

Spring的核心功能

IoC与DI


Spring是什么?

Spring指的是Spring Framework(Spring框架).

支持广大的开发场景,能够使应用开发变得简单.

其集成了各种工具,还实现了底层的类的实例化和生命周期的管理.

简单来说,Spring就是拥有众多工具方法的IoC容器

容器?

容器就是用来装载物品的工具.

List列表,Map图都是容器,可以用来装载一定的元素.

Tomcat也是容器的一种,主要用来装载web项目.

Spring也是容器的一种,其装载的是对象.

IoC?

IoC的全称为:Inversion of Control(控制反转).

这不是一种技术,只是一种设计的思想.

当我们在当前类A,调用其他类的方法时,通常是在A类中new一个B类的对象,并调用.可是当B类进行修改的时候,A类中的代码也要进行修改.就会导致耦合度过高的情况,这并不符合我们高内聚低耦合的思想.

Ioc思想是:当A类想要调用B类的时候,不是在A类中new一个B的实例,而给A类传送一个B类的实例.当B类进行修改的时候,改的只是自身内部的属性.而给A传送的是一个整体,并不会对A进行影响.

情况一:

A类中的方法new一个实例B

public class B {
    public void sayHi(){
        System.out.println("HI");
    }
}
public class A {
    //需要调用B类
    public void sayHi(){
        B b = new B();
        b.sayHi();
    }

    public static void main(String[] args) {
        A a = new A();
        a.sayHi();
    }
}

可是当情况一中的B类自身发生改变的时候,例入加入了新的属性.

A类中就要相应的发生变化,当前只是一个属性的变化,如果B类一下子更改了很多,那么A类受的影响会更大.

public class B {
    private int id;//发生变化
    public B(int id){
        this.id = id;
    }

    public void sayHi(){
        System.out.println("HI");
    }
}

public class A {
    //需要调用B类
    public void sayHi(int id){//此处需要加入参数,用来构造B
        B b = new B(id);
        b.sayHi();
    }

    public static void main(String[] args) {
        A a = new A();
        a.sayHi(10);
    }
}

情况二:

将B类的实例传送给A类调用,而不是在A类中new

public class B {
    public void sayHi(){
        System.out.println("HI");
    }
}

public class A {
    //需要调用B类
    public void sayHi(B b){
        b.sayHi();
    }

    public static void main(String[] args) {
        A a = new A();
        B b = new B();
        a.sayHi(b);
    }
}

当B类自身发生变化的时候,A类也不会遭到影响 

public class B {
    private int id;
    public B(int id){
        this.id = id;
    }
    public void sayHi(){
        System.out.println("HI");
    }
}

public class A {
    //需要调用B类
    public static void sayHi(B b){
        b.sayHi();
    }

    public static void main(String[] args) {
        A a = new A();
        B b = new B(10);
        a.sayHi(b);
    }
}

上面两种情况很好的解释了IoC中的控制翻转:

这里的控制,其实所指的是"对实例创建的控制".

情况一下,对于B类来说,是在A类中被new出来的.B是被动的一方,A是主动的一方.B类自己并不能主导什么时候创建出实例,自己实例的创建的控制权在别人的手上

而在情况二下,B类的实例创建是自己能够控制的,在自己实例化之后再传输给A类.并不受A类的左右.主导了实例创建的控制权

这就是IoC思想,控制翻转.达到了低耦合的美好结果.

Spring的核心功能

对于上述的内容,spring的总结为:是一个IoC容器,装载着对象.

作为容器来说,最重要是功能就是存储与取出.

Spring的核心功能也正是这两个,Spring能够帮助我们存储类的对象,当我们需要使用的时候能够将所需的对象取出.

Spring也正有着创建与销毁的权利才能帮助我们完成上述的功能.

当对象放在了Spring中,就像线程池一般.方便我们取出,使用完后再存储起来,而不是重新new一个对象出来,结束后便进行销毁.

IoC与DI

DI是Dependency Inection.依赖注入,将所依赖的对象进行注入到所需的类中.是spring框架的核心之一.

可以观察,上面的情况二.我们为了达成IOC控制权翻转,是在main中创建了B类的实例再传给A.

在一个项目中,如果为了实现IOC而一次性把所需要的类都手动进行实例化一遍显然是不现实的.

而在spring中,当我们指定了一些类后.spring能够自动的在我们所需的时候,自动帮我们所创建,来达到IOC的效果,这就是DI.文章来源地址https://www.toymoban.com/news/detail-733265.html

到了这里,关于[JAVAee]Spring的基础介绍的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • (第六天)初识Spring框架-SSM框架的学习与应用(Spring + Spring MVC + MyBatis)-Java EE企业级应用开发学习记录

    ​ 昨天我们已经把Mybatis框架的基本知识全部学完,内容有Mybatis是一个半自动化的持久层ORM框架,深入学习编写动态SQL,Mybatis的关联映射,一对一、一对多、多对多、Mybatis的缓存机制,一二级缓存的开启和设置,缓存命中率、如何使用idea链接数据库自动生成pojo类等。我们学

    2024年02月10日
    浏览(63)
  • [JAVAee]Spring的基础介绍

    本文章介绍了Spring大致是什么,核心的功能. 目录 Spring是什么? 容器? IoC? Spring的核心功能 IoC与DI Spring指的是 Spring Framework(Spring框架). 支持广大的开发场景,能够使应用开发变得简单. 其集成了各种工具,还实现了底层的类的实例化和生命周期的管理. 简单来说, Spring就是拥有众多工

    2024年02月07日
    浏览(22)
  • SSM框架的学习与应用(Spring + Spring MVC + MyBatis)-Java EE企业级应用开发学习记录(第三天)动态SQL

    昨天我们深入学习了 Mybatis的核心对象SqlSessionFactoryBuilder , 掌握MyBatis核心配置文件以及元素的使用 ,也掌握MyBatis映射文件及其元素的使用。那么今天我们需要掌握的是更加复杂的查询操作。 学会编写MyBatis中动态SQL 学会MyBatis的条件查询操作 学会MyBatis的更新操作 学会MyBati

    2024年02月11日
    浏览(48)
  • (第十一天)初识SpringMVC SSM框架的学习与应用(Spring + Spring MVC + MyBatis)-Java EE企业级应用开发学习记录

    今天我们要来学习一下SSM框架的最后一个框架SpringMVC 一、初认SpringMVC 基本概念: ​ Spring MVC(Model-View-Controller)是一个用于构建Java Web应用程序的开源框架,它提供了一种基于MVC架构的方式来开发Web应用 。 ​ SpringMVC是Spring Framework的一部分,它是一种基于模型-视图-控制器(

    2024年02月07日
    浏览(67)
  • 【JavaEE基础学习打卡03】Java EE 平台有哪些内容?

    📜 本系列教程适用于Java Web初学者、爱好者,小白白。我们的天赋并不高,可贵在努力,坚持不放弃。坚信量最终引发质变,厚积薄发。 🚀 文中白话居多,尽量以小白视角呈现,帮助大家快速入门。 🎅 我是 蜗牛老师 ,之前网名是 Ongoing蜗牛 ,人如其名,干啥都慢,所以

    2024年02月12日
    浏览(45)
  • 【JavaEE基础学习打卡02】是时候了解Java EE了!

    📜 本系列教程适用于 Java Web 初学者、爱好者,小白白。我们的天赋并不高,可贵在努力,坚持不放弃。坚信量最终引发质变,厚积薄发。 🚀 文中白话居多,尽量以小白视角呈现,帮助大家快速入门。 🎅 我是 蜗牛老师 ,之前网名是 Ongoing蜗牛 ,人如其名,干啥都慢,所

    2024年02月12日
    浏览(46)
  • Java、Java EE、Spring和Spring Boot核心注解

    文章迁移至个人博客 此页面包含常用 Java 、 Java EE 、 Spring 、 Spring Boot 、 JPA 常用注解的一站式说明。 @Component注解 @Component 注解表明被注解的类是一个“spring bean/组件”。@Component注解告诉Spring容器自动创建Spring bean。 @Autowired注解 @Autowired 注解用于自动注入 bean。@Autowired 注

    2024年02月15日
    浏览(49)
  • 8.1Java EE——Spring AOP

            Spring的AOP模块是Spring框架体系中十分重要的内容,该模块一般适用于具有横切逻辑的场景,如访问控制、事务管理和性能监控等 一、AOP概述         AOP的全称是Aspect Oriented Programming,即面向切面编程。和OOP不同,AOP主张将程序中相同的业务逻辑进行横向隔离,

    2024年02月16日
    浏览(43)
  • 【Java EE】关于Spring MVC 响应

    在博主前面写的博客 【Java EE】Spring请求如何传递参数详解 中我们已经设置了响应数据,Http响应结果可以是数据,也可以是静态⻚⾯,也可以针对响应设置状态码, Header信息等 首先我们像创建一个静态界面,创建位置如下: 前端代码如下: 不过这里的后端的代码和以前的代码

    2024年04月14日
    浏览(46)
  • Java EE 突击 14 - Spring AOP

    这个专栏给大家介绍一下 Java 家族的核心产品 - SSM 框架 JavaEE 进阶专栏 Java 语言能走到现在 , 仍然屹立不衰的原因 , 有一部分就是因为 SSM 框架的存在 接下来 , 博主会带大家了解一下 Spring、Spring Boot、Spring MVC、MyBatis 相关知识点 并且带领大家进行环境的配置 , 让大家真正用好

    2024年02月11日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包