Spring + Spring MVC + MyBatis
:标准MVC模式
继 SSH (Struts+Spring+Hibernate)以后,主流的 Java EE企业级 Web应用程序开源框架html
学习:关于SSM框架的优点web
轻量级容器框架,业务对象管理spring
面向切面编程,预编译方式和运行时动态代理实如今不修改源码状况下给程序动态统一添加功能编程
代理模式
,创建在spring抽象事务管理之上的声明性事务管理核心:横切关注点的分离和织入
场景:日志记录,性能统计,安全控制,事务处理
其余几个重要概念安全
切入点springboot
切面mybatis
拦截器(Advisor)mvc
AOP拦截方法级别,OOP拦截对象级别。app
织入(Weaveing)
1.静态织入方式框架
2.动态代理技术
Spring AOP,核心是反射,ProxyFactory或ProxyFactoryBean-->BeanPostProcessor(自动代理)
其中,自动代理有2种
AOP代理(AOP Proxy)
学习:对AOP代理的理解示例
控制反转(Inversion of control),由容器建立和注入依赖对象,管理对象依赖关系
学习:通俗易懂Ioc讲解
依赖注入(Dependenc Injection),实现 Ioc思想的核心,对象之间依赖关系由容器在运行时决定
实现 DI的核心是反射:实例化类时,经过反射调用类中set方法将事先保存在HashMap中的类属性注入到类中
项目的运行和周期由 Ioc控制,事件的请求和反应由 DI控制
相对 Ioc而言,DI明确描述了“被注入对象依赖 IoC容器配置依赖对象”
学习:Ioc实例讲解
spring IoC容器实例化Bean(工厂模式):BeanFactory,BeanDefinition,ApplicationContext
具体参见:https://www.jianshu.com/p/646c1f657144
spring DI实现依赖注入:
请求转发和视图管理
1.客户端发送请求到DispacherServlet(分发器)
2.由DispacherServlet控制器查询HanderMapping,找处处理请求的Controller
3.Controller调用业务逻辑处理后,返回ModelAndView
4.DispacherSerclet查询视图解析器,找到ModelAndView指定的视图
5.视图负责将结果显示到客户端
springboot配置
<!-- SpingBoot相关jar包版本 --> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.5.RELEASE</version> </parent> <!-- SpringBoot核心jar包 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> <!-- web开发包:包含Tomcat和springmvc --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- SpringBoot热部署 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> </dependency>