SSM框架学习笔记(一)
Spring框架
Spring :是一个开源框架,起初是为解决企业应用开发的复杂性而创建的,但是现在已经不止
企业级应用开发,Spring的核心就是提供了一个轻量级的控制反转和面向切面编程。
SPring MVC:可以理解为Spring和MVC结合的一种开发结构,MVC是一种将数据业务,显示逻辑,
和控制逻辑进行分层的设计模式,业内常见的MVC开发框架有Struts1和Struts2等、、
Spring MVC是用于web开发的通用框架
Spring Boot:是用来简化Spring框架应用初始化搭建以及开发的全新框架,比如自动化配置省去
了大量的繁琐配置文件,因此SpringBoot可以理解为,一个通过简化配置文件来服务于
框架的框架。
- 创建独立的Spring程序,简化maven配置,快速构建Spring项目。
- 一个简单的SpringBoot工程是不需要在pom里面手动添加配。
- 在SpringBoot创建时,会自动创建BootdemoApplication启动类。代表着本工程项目和
服务的启动加载,在SpringBoot中嵌入有tomcat服务器,无需手动部署war文件
Mybatis:基于java的持久层框架
Spring Cloud:是分布式微服务架构下的一站式解决方案,是各个微服务架构落地技术的集合体,
俗称微服务栈解决方案。
SpringBoot与SpringCloud之间的关系:
SpringCloud偏向宏观,SpringBoot偏向微观,如果将SpringBoot比作医院里的一个个科室
那么SpringCloud则是将SpringBoot组合起来的综合医院。
SpringBoot可以单独使用,不依赖与SpringCloud,而SpringCloud必然依赖与SpringBoot。
SpringBoot专注于快速开发单个个体的微服务,而SpringCloud是关注全局的微服务协调整
理治理框架,他将SpringBoot开发的单个个体集合管理,为各个微服务之间提供配置管理,服务
发现,断路器,路由,微代理,事件总线,全局锁,决策竞选,分布式会话等等集成服务
spring容器与springmvc容器
为什么要在web.xml里面建立监听器?
-- listener告诉容器,启动的时候建立spring容器,并加载我们在context—param
中配置的contextConfigLocaltion中对应的配置文件的bean。
一定要配置么?如果不配置,springMVC容器中的bean使用spring容器中的bean
,两个容器之间的bean没有关联,就不会报错。可以在springmvc.xml中import
spring.xml,启动不会报错 <import resource="spring.xml"/>
- 使用spring容器的目的,就是为了区分哪些bean是可以脱离web环境使用的。
springmvc容器是在DispatcherServlet初始化的时候创建的。
spring和springmvc的容器关系
spring容器的启动时先于springmvc的,所以,spring容器不知道springmvc容
器的存在的,也就是父容器无法使用子容器的bean。
父容器初始化之后,会将自己放到servletcontext的属性中。
servletContext.setAttribute(WebApplicationContext.ROOT_WEB_APPLICATION_CO
NTEXT_ATTRIBUTE, this.context);
那么,子容器在初始化之后就能得到父容器的存在,子容器就可以使用父容器
的bean。
web.xml
servlet:代表的容器是springmvc的子容器,DispatcherServlet是前端控制
器,该容器专门为前端监听请求的时候使用,就是说当接收URL请求的时候会引用
springmvc容器内的对象处理。
context-param:代表spring本身的容器,springmvc可以理解为继承该容器的
子容器,spring是父类容器,跟继承一样,子容器可以使用父容器的对象,但是父
容器不能使用子类的对象。所以出现两个上下文并不冲突,但是注意,不要重复注
入。
由于监听器的原因,服务器会先初始化spring容器 之后再初始化springmvc。
springmvc是管理controller对象的容器,spring就是管理servlet和dao的容器
,所以在springmvc里面扫描的是controller,在spring里面扫描的是service和dao
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
<filtering>true</filtering>
</resource>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
SSM框架学习笔记(一)的更多相关文章
- Java基础及JavaWEB以及SSM框架学习笔记Xmind版
Java基础及JavaWEB以及SSM框架学习笔记Xmind版 转行做程序员也1年多了,最近开始整理以前学习过程中记录的笔记,以及一些容易犯错的内容.现在分享给网友们.笔记共三部分. JavaSE 目 ...
- SSM框架学习笔记_第1章_SpringIOC概述
第1章 SpringIOC概述 Spring是一个轻量级的控制反转(IOC)和面向切面(AOP)的容器框架. 1.1 控制反转IOC IOC(inversion of controller)是一种概念 ...
- SSM框架学习笔记
管理部门: --Spring + SpringMVC+MyBatis 1.index.jsp--->SpringMVC(Servlet) 接受客户端的请求,读取页面的值,回传到页面 2.Myba ...
- phalcon(费尔康)框架学习笔记
phalcon(费尔康)框架学习笔记 http://www.qixing318.com/article/phalcon-framework-to-study-notes.html 目录结构 pha ...
- Yii框架学习笔记(二)将html前端模板整合到框架中
选择Yii 2.0版本框架的7个理由 http://blog.chedushi.com/archives/8988 刚接触Yii谈一下对Yii框架的看法和感受 http://bbs.csdn.net/ ...
- JavaSE中Collection集合框架学习笔记(2)——拒绝重复内容的Set和支持队列操作的Queue
前言:俗话说“金三银四铜五”,不知道我要在这段时间找工作会不会很艰难.不管了,工作三年之后就当给自己放个暑假. 面试当中Collection(集合)是基础重点.我在网上看了几篇讲Collection的 ...
- JavaSE中Collection集合框架学习笔记(3)——遍历对象的Iterator和收集对象后的排序
前言:暑期应该开始了,因为小区对面的小学这两天早上都没有像以往那样一到七八点钟就人声喧闹.车水马龙. 前两篇文章介绍了Collection框架的主要接口和常用类,例如List.Set.Queue,和A ...
- JavaSE中Map框架学习笔记
前言:最近几天都在生病,退烧之后身体虚弱.头疼.在床上躺了几天,什么事情都干不了.接下来这段时间,要好好加快进度才好. 前面用了三篇文章的篇幅学习了Collection框架的相关内容,而Map框架相对 ...
- JavaSE中线程与并行API框架学习笔记1——线程是什么?
前言:虽然工作了三年,但是几乎没有使用到多线程之类的内容.这其实是工作与学习的矛盾.我们在公司上班,很多时候都只是在处理业务代码,很少接触底层技术. 可是你不可能一辈子都写业务代码,而且跳槽之后新单位 ...
随机推荐
- Java虚拟机(二)-对象创建
这一篇大致说明一下,对象在Java堆中对象分配.内存布局以及访问定位 1.对象的创建 虚拟机在遇到一条new指令时,首先将去检查这个指令的参数是否能在常量池中定位到一个类的符号引用,并且检查这个符号引 ...
- LK的NOIP膜拟赛
T1 Learn to 签到 [题目描述] 希希最喜欢二进制了.希希最喜欢的运算是\(\wedge\). 希希还喜欢很多\(01\)序列.这些序列一共有\(n\)个,每个的长度为\(m\). 希希有一 ...
- css3实现loading效果--当页面加载过程中显示Loading的进度条,全部加载完成之后进度条消失
一个页面等图片资源全部加载完成,会需要很长时间,用户体验会很差,所以我们需要loading来掩盖这个漫长的过程! emmm,定时器?写个定时器还要清除,万一造成内存泄露?定时器之间还会互相影响,呼呼呼 ...
- 暂停研发surging,是否继续维护!
前言 surging从2017 年开始,2 年来利用业余时间为 surging语言添砖加瓦. 这种活雷锋行为并没有得到开发者们的理解,很多人甚至用命令的口吻,灵魂拷问方式要求活雷锋们再苦再累也得免费为 ...
- ReactJS:最大更新深度超出错误
Maximum update depth exceeded. This can happen when a component repeatedly calls setState inside com ...
- Zabbix-设置自动发现规则实例
一.前文 此篇文章,主要针对自动发现规则中使用snmpv2类型发现 zabbix官方解读,可当参考: https://www.zabbix.com/documentation/4.0/zh/man ...
- c排序
#pragma once//如果写头文件 放置头文件重复包含 #include<stdio.h> //定义类型 结构体类型定义 //宏定义 #define //函数申明 void prin ...
- 详解python函数的参数
详解python函数的参数 一.参数的定义 1.函数的参数在哪里定义 在python中定义函数的时候,函数名后面的括号里就是用来定义参数的,如果有多个参数的话,那么参数之间直接用逗号, 隔开 案列: ...
- Codeforces 976C
题意略. 思路:由于题中只要让我们找出嵌套的段就行了,那么我们只需要排序一下就好了. 排序方式:按左端由小到大排,左端一样的时候,右端小的排在前. 如果你担心1会因为2的阻隔而不能嵌套3的话,那么2可 ...
- Servlet 常用API学习(二)
Servlet常用API学习 一.HTTP简介 WEB浏览器与WEB服务器之间的一问一答的交互过程必须遵循一定的规则,这个规则就是HTTP协议. HTTP是 hypertext transfer pr ...