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——线程是什么?
前言:虽然工作了三年,但是几乎没有使用到多线程之类的内容.这其实是工作与学习的矛盾.我们在公司上班,很多时候都只是在处理业务代码,很少接触底层技术. 可是你不可能一辈子都写业务代码,而且跳槽之后新单位 ...
随机推荐
- 8.9 day30 并发编程 进程理论 进程方法 守护进程 互斥锁
多道技术 1.空间上的复用 多个程序共用一套计算机硬件 多道技术原理 2.时间上的复用 切换+保存状态 1.当一个程序遇到IO操作 操作系统会剥夺该程序的CPU执行权限( 提高了CPU的利用率 ...
- 7.26 面向对象_封装_property_接口
封装 封装 就是隐藏内部实现细节, 将复杂的,丑陋的,隐私的细节隐藏到内部,对外提供简单的访问接口 为什么要封装 1.保证关键数据的安全性 2.对外部隐藏实现细节,隔离复杂度 什么时候应该封装 1.当 ...
- 浅谈python中文件和文件夹的相关操作
文件操作 文件的打开与关闭 打开文件 使用open(文件名,访问方式)函数,可以打开一个已存在的文件,或者创建一个新的文件. 示例如下: f = open('test.txt') # 访问方式可以省略 ...
- 常用linux的命令
常用但是容易忘记的命令 查看java项目的进程 ps -ef | grep java jps 根据进程查询端口 lsof -i | grep pid netstat -nap | grep pid p ...
- Docker入门-docker compose的使用
Compose简介 Compose项目是Docker官方的开源项目,负责实现对Docker容器集群的快速编排.其代码目前在https://github.com/docker/compose 上开源. ...
- 聊一聊Java字符串的不可变
前言 在 Java 开发中 String (字符串)对象是我们使用最频繁的对象,也是很重要的对象.正是使用得如此频繁,String 在实现层面上不断进行优化,从 Java6 到 Java7,再到 Ja ...
- SpringBoot优雅地配置日志
本文主要给大家介绍SpringBoot中如何通过sl4j日志组件优雅地记录日志.其实,我们入门 JAVA 的第一行代码就是一行日志,那你现在还在使用System.out.println("H ...
- Flink的JobManager启动(源码分析)
都知道Flink中的角色分为Jobmanager,TaskManger 在启动脚本里面已经找到了jobmanager的启动类org.apache.flink.runtime.entrypoint.St ...
- Python: 转换文本编码
最近在做周报的时候,需要把csv文本中的数据提取出来制作表格后生产图表. 在获取csv文本内容的时候,基本上都是用with open(filename, encoding ='UTF-8') as f ...
- AVL-平衡二叉树的原理和实现
一.简介 本文将通过图解和代码详细讲解AVL平衡二叉树的性质及失衡和再平衡的内容.在看本文之前希望大家具备二分搜索树的相关知识.或移步<二分搜索树>了解二分搜索树. 二.平衡二叉树 前面关 ...