文章目录
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();
}
}
最后编译结果: