目录
JavaEE进阶框架:SSM(Spring + SpringMVC + MyBatis)Framework;
Spring:一个开源框架,支持广泛的应用场景,核心功能:提供IoC功能(Spring是包含了众多工具方法的IoC容器);
容器:List/Map:数据存储容器;Tomcat:Web容器;
IoC(Inversion of Control):“控制反转”;
传统开发:先创建一个类,然在根据需要创建下级类,逐个嵌套调用,那么当底层代码改动之后,整个调用链上所有代码都要修改。
public class demo { public static void main(String[] args) { A a=new A(); a.init(); } static class A{ public void init(){ B b=new B(); b.init(); } } static class B{ public void init(){ System.out.println(); } } }控制反转式:把创建子类的方式,改为注入传递的方式。 不需要在当前类中创建下级类,改成传递。即使下级类发生变化(创建或者改变参数),当前类也无需修改。只要等所改变的下级类给自己结果就行了。
public class demo { public static void main(String[] args) { B b=new B(10); A a=new A(b); } static class A{ private B b; public A(B b){ this.b=b; } public void init(){ b.init(); } } static class B{ private int a; public B(int a){ this.a=a; } public void init(){ System.out.println(); } } }这样底层类无论怎么改变,整个调用链都不用在改了,整个代码之间的程序相关性(耦合性)就很低了。使得程序设计更加灵活通用。
Spring 是包含了多个工具方法的 IoC 容器,说的是对象的创建和销毁的权利都交给 Spring 来管理了,它本身又具备了存储对象和获取对象的能力。
学习Spring核心功能:就是学如何将对象放进Spring中,再从Spring中获取对象的过程。
将对象放在IoC容器相当于将以后可能用到的所有工具都做好放进仓库,随用随取,用完在放回去。但new 对象相当于要用工具的时候再去做,用完了就销毁不保存,下次用重新做。
DI(Dependency Injection):“依赖注入”;
和IoC是从不同角度描述同一件事,通过引入IoC容器,利用依赖关系注入的方式,实现对象之间的解耦(解决代码的耦合性(耦合性:代码之间的相关性));
SpringMVC(Servlet+Spring+自己的代码):在Spring基础上,提供Web开发的能力,这里的内部也是Servlet;
spring启动后的调用栈:(这三行是运行servlet标准)
运行属于 Tomcat的代码:
MyBatis:替代JDBC的(内部也是JDBC);MyBatis 快速操作数据库。
Spring虽然使用起来方便,但是如果出问题查找起来很麻烦,需要一定的基础。
Spring框架相对于Servlet+JDBC来说,就是对于开发者更友好的一种开发框架。
使用Spring Boot项目演示框架:
- 无需配置Tomcat,Spring Boot内置了Web容器(可以直接运行);(Servlet需要配置Tomcat运行)
- 快速添加jar包;(Servlet添加jar不方便,容易出错)
- 快速发布项目(java -jar方式就可以发布);(Servlet项目必须依赖外置Tomcat运行)
- 对象自动装配等;
本质上也是一个maven管理的项目,只是pom.xml很多,无法记忆,Spring提供了一个项目初始化的工具(软件),生成工程初始代码(包含结构 、pom.xml、类)。
IDEA社区版默认没有Spring Initializer这个功能的,因此需要:
- 手动去https://start.spring.io/创建好工程在下载下来打开
- 社区版也可以直接装个插件:Spring Assistant
https://start.spring.io/ 创建项目,后下载解压:
作为项目打开后,有一个默认的类文件点击启动之间运行:
社区版插件:Spring Assistant:(连网)
网不好可以下载安装包在这配上:
完成后在IDEA可以直接创建项目。
破解版创建项目(社区版基本都一样):
根据需要选依赖:
改好路径finish即可。
启动测试类:
两个方法均可,项目都一样。