SSM 框架(Spring + SpringMVC + Maven + Springboot + MybatisPlus 从入门到精通 ):(第一篇)Spring

SSM 框架(Spring + SpringMVC + Maven + Springboot + MybatisPlus 从入门到精通 ):(第一篇)Spring

Spring 基本概述:

1.Spring 官方网站

www.spring.io

在这里插入图片描述

2.我们需要学习的框架技术:

在这里插入图片描述

1.首先是 spring framework,它是 spring 最初的版本
2.spring boot
3.spring cloud

3.Spring Framework 架构图

在这里插入图片描述

架构图分析:

Core Container:在这个架构图当中,最最重要的是 Core Container(核心容器),既然它是一个容器,那么它肯定是用来装东西的。(这里不卖关子了,通俗来说,它是用来装我们在java中的对象的)

AOP 、Aspects:面向切面编程(放在后面详细介绍)

Data Access /Integration :看到Data相信大家已经猜出来了,这是跟我们的数据相关

Web:Web开发

Test:单元测试或者集成测试

既然我们学习这个框架,就从这几个点入门学习

Spring 之 IOC (Core Container)

IOC:控制反转,这是一种设计思想,把创建对象的权力交给了Spring。

IOC 实例:

如下项目(这是一个没有spring环境的项目,当我们的service层需要使用到model层的数据保存服务,我们的代码):
在这里插入图片描述
这里我先把代码贴出来,你们可以创建一个 maven 的空 java 项目,根据我的以上图片建包,我把写的代码贴上来,你们照着粘贴即可。

BookDaoimpl

package org.example.model.impl;

import org.example.model.BookDao;

public class BookDaoimpl implements BookDao {

    @Override
    public void save() {
        System.out.println("bookdao save");
    }
}

BookDao

package org.example.model;

public interface BookDao {
    public void save();
}

BookServiceimpl

package org.example.service.impl;

import org.example.model.BookDao;
import org.example.model.impl.BookDaoimpl;
import org.example.service.BookService;

public class BookServiceimpl implements BookService {
    private BookDao bookDao = new BookDaoimpl();
    @Override
    public void save() {
        System.out.println("book service save...");
        bookDao.save();
    }
}

BookService

package org.example.service;

public interface BookService {
    public void save();
}

main

package org.example;

import org.example.service.BookService;
import org.example.service.impl.BookServiceimpl;

public class Main {
    public static void main(String[] args) {
        BookService bookService = new BookServiceimpl();
        bookService.save();
    }
}

然后这里我们找到 Main 运行:
在这里插入图片描述
这是我们的运行结果。
但是我们需要思考一个问题:这样的编码是否两个模块的耦合十分高,那么该如何降低这种耦合呢?
在这里插入图片描述

解决思路:我们直接不去 new 对象了,把对象控制权交给 spring ,让它来为我们 new对象。这就是ioc控制反转的实现。

需要注意以下是以配置文件的形式使用 Spring

1.引入 spring maven 坐标(记得要让 maven 刷新,点标红的位置)
<dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>5.2.10.RELEASE</version>
        </dependency>
    </dependencies>

在这里插入图片描述

2.新建 Spring xml 配置文件

在这里插入图片描述
新建文件名称为:

applicationContext.xml

在这里插入图片描述
写入bean(bean就是我们交给spring管理的类)

<?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">
<!--   1.引入spring坐标-->
<!--   2.新建spring配置文件-->
<!--   3.配置beaen -->

    <bean id="bookDao" class="org.example.model.impl.BookDaoimpl"></bean>
    <bean id="bookService" class="org.example.service.impl.BookServiceimpl"></bean>
</beans>

这里的bean里面
class:我们的类所在的位置
id:是我们以后需要使用交给spring管理的类的时候,获取的参数

新建 main2 使用spring 帮我们创建对象

package org.example;

import org.example.service.BookService;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class Main2 {
    public static void main(String[] args) {
        //获取ioc容器,后面参数是配置文件的名字
        ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
        //通过id获取bean
        BookService bookService = (BookService) ctx.getBean("bookService");
        bookService.save();
    }
}

最后编译结果:
在这里插入图片描述

总结:本期就到这,下节 Spring 之 DI

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

我不会画饼鸭

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

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

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

打赏作者

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

抵扣说明:

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

余额充值