什么是spring
- spring是一个java企业级应用的开源框架。
- spring主要用来开发java应用
- spring框架目标是为了简化java企业级应用开发
对于spring的一些理解
-
spring是一个开源框架,主要是为简化企业级应用开发而生
-
spring是一个IOC和AOP容器框架。
-
控制反转(IOC):把程序中所有的javabean对象的创建、初始化、管理、分配、维护、销毁等相关的所有工作都交给spring容器
简单的说就是 javabean的控制权交给spring容器来管理
-
依赖注入(DI):程序运行中所依赖的javabean对象由spring容器动态的注入
-
面向切面编程(AOP):将一个个对象某些类似的方面横向抽象成一个切面,对这个切面进行一些如权限验证,事物管理,记录日志等公用操作处理的过程就是面向切面编程的思想。
-
spring中,所有管理的都是java Bean对象,而BeanFactory和ApplicationContext就是Spring框架的IOC容器,现在一般使用ApplicationContext,它包括了BeanFactory的作用,还进行了更多的扩展
使用Spring框架的好处有哪些?
- 1、spring是轻量级的框架,占用内存少
- 2、spring通过控制反转降低耦合度
- 3、spring支持面向切面编程,主流业务和辅助功能进行分离开发 在运行时通过动态代理的方式显示主流业务和辅助功能的整合
- 4、spring包含并管理应用中对象的生命周期和配置
- 5、spring提供一个持续的事务管理接口,可扩展到本地事务和全局事务
spring组成模块(核心模块)
- SpringCore :核心容器
- SpringContext:应用上下文
- SpringAOP:面向切面编程
- SpringDao:JDBC和Dao模块
- SpringORM:对象关系映射
- SpringWeb:web模块
- SpringMVC: mvc模块
Spring框架使用的设计模式有哪些
- 单例模式
- 原型模式
- 工厂模式
- 适配器模式
- 包装模式
- 代理模式
- 观察者模式
- 策略模式
- 模板模式
什么是Spring的MVC框架?
-
是Spring框架的一个模块(属于控制层 代替Servlet)
-
使用mvc的设计模式对web资源进行分层
-
mvc: 实现model和view的解耦:数据显示和数据处理分层
-
Spring的MVC框架用控制反转把业务对象和控制逻辑清晰地隔离
-
允许以声明的方式把请求参数和业务对象绑定
SpringMVC常用到的注解,作用,原理
- @Controller注解
- 用于指定Spring类的实例,是一个控制器
- 使用@Controller注解的类不需要继承特定的父类或者实现特定的接口
- @Controller注解注解的控制器可以同时支持处理多个请求动作,使程序开发变的更加灵活
- @RequestParam注解
- 用于将指定的请求参数赋值给方法中的形参
- name属性该属性的类型是String类型,它可以指定请求头绑定的名称
- value属性该属性的类型是String类型,它可以设置是name属性的别名;
- required属性该属性的类型是boolean类型,它可以设置指定参数是否必须绑定;
- defalutValue属性该属性的类型是String类型,它可以设置如果没有传递参数可以使用默认值。
- @PathVaribale注解
- 可以非常方便的获得请求url中的动态参数
- 只支持一个属性value,类型String,表示绑定的名称,如果省略则默认绑定同名参数。
在Spring中,有几种配置Bean的方式
- 基于XML的配置
- 基于注解的配置
- 基于java的配置
SpringBean的生命周期
-
1、实例化Bean
- 对于BeanFactory容器,当客户向容器请求一个尚未初始化的bean时,或初始化bean的时候需要注入另一个尚未初始化的依赖时,容器就会调createBean进行实例化
- 对于ApplicationContext容器,当容器启动结束后,通过获取BeanDefinition对象中的信息,实例化所有的bean。
-
2、设置对象属性(依赖注入)
- Spring根据BeanDefinition中的信息 以及 通过BeanWrapper提供的设置属性的接口完成依赖注入。
-
3、处理Aware接口
-
Spring会检测该对象是否实现了xxxAware接口,并将相关的xxxAware实例注入给Bean
-
Spring会检测该对象是否实现了xxxAware接口,并将相关的xxxAware实例注入给Bean
-
-
4、初始化
- 如果Bean在Spring配置文件中配置了 init-method 属性,则会自动调用其配置的初始化方法。
-
5 、创建
- 如果这个Bean实现了BeanPostProcessor接口,将会调用postProcessAfterInitialization(Object obj,String s)方法;
-
6、服务
- 当Bean不再需要时,会经过清理阶段,如果Bean实现了DisposableBean这个接口,会调用其实现的destroy()方法;
-
7、销毁
- 如果这个Bean的Spring配置中配置了destroy-method属性,会自动调用其配置的销毁方法
什么是SpringMVC框架的控制器
- 控制器提供一个访问应用程序的行为
- 控制器解析用户输入并将其转换为一个由视图呈现给用户的模型
SpringDao的作用
- SpringDao使得JDBC这样的数据访问技术更容易以一种统一的方式工作
- 方便用户在持久性技术之间切换
- 允许程序员在编码时,无需考虑捕获每种技术不同的异常