Spring学习总结笔记三

Spring 是轻量级的开源框架。Spring 包含控制反转IoC(DI) 和 面向切面AOP的特性。
IoC 依赖注入或者控制反转,调用者不负责被调用者的实例创建工作,该创建工作由Spring框架中的容器来负责,创建后再注入调用者。由于Spring容器负责被调用者实例,实例创建后又负责将该实例注入调用者,因此称为依赖注入。被调用者的实例创建工作不再由调用者来创建而是由Spring容器来创建,控制权由应用代码转移到了外部容器,控制权发生了反转,因此称为控制反转。
AOP,含义为面向切面编程。AOP中的切面封装了增强(Advice)和切点(Pointcut)。AOP使用动态代理可以为一个或多个接口在运行期动态生成实现对象,其中通过动态代理生成的对象与切点处的对象是不同的,但是通过动态代理,可以修改切点对象的状态和配置。

Spring包含七个模块:Spring core,Spring Context,Spring AOP,Spring Web,Spring ORM,Spring MVC和Spring DAO这七个模块。
Spring core:核心容器,Spring框架最基础的部分,它提供了依赖注入(Dependency Injection)特征来实现容器对Bean的管理。其中BeanFactory使用IoC将应用配置和依赖从实际的应用代码中分离出来,BeanFactory使用工厂模式实现。
Spring Context:应用上下文模块
Spring AOP:面向切面编程,AOP使用动态代理可以为一个或多个接口在运行期动态生成实现对象,其中通过动态代理生成的对象与切点处的对象是不同的,但是通过动态代理,可以修改切点对象的状态和配置。
Spring Web
Spring ORM:对象/关系映射集成模块。Spring提供该模块是为了集成目前比较流行的ORM框架,比如hibernate 和 mybatis框架。
Spring MVC框架:Spring的MVC框架使用IoC对控制逻辑和业务对象提供完全的分离。V层为页面层,C层为控制层,M层为数据层,前后台传递的参数@RequestParam 和@RequestBody等等,DAO模块不属于M层。
Spring DAO模块: 该该模块抽取数据库取得连接,创建语句,处理结果集,然后关闭连接等重复的代码,保持模块使用Spring的AOP模块为Spring应用中的对象提供事务管理服务。

Spring中有两种方式管理:Spring的XML形式和Spring注解的方式。如果我们不用spring来管理对象,便要用关键字new来创建对象,new对象时归属我们管理,
Spring两种方式产生的对象归属Spring管理。Spring的两种方式中官方推荐使用Spring的XML形式配置对象和组件,但是软件公司为了开发效率都是使用Spring注解的方式。

springboot框架的优点
springboot框架使用java类来进行基本的配置,不用XML文件进行配置,提供POM简化maven配置
springboot和spring MVC的区别
spring利用IoC和AOP解耦应用组件。后续按照spring的这两种特性开发了Spring MVC框架。但是每次开发都要进行一些重复的配置,为了简化配置,于是推出了Spring Boot。

===================
常用的Spring标签

@Autowired
@Value
@Component
@annotation

AOP
@Aspect
@Pointcut
@Around
@Before
@After

http路径
@RequestMapping
常用的HTTP方法的映射
@GetMapping、@PostMapping、@PutMapping、@DeleteMapping、@PatchMapping}
MVC分层
@RestController
@Service
@Repository
参数绑定
@Param
@RequestParam
@RequestBody
元注解(meta-annotation)—–java.lang.annotation
1.@Target –Annotation所修饰的对象范围
2.@Retention— 定义了该Annotation被保留的时间长短
3.@Documented,
4.@Inherited
自定义注解
@interface

Springboot启动类
@MapperScan
统一异常处理
@ExceptionHandler

验证数据有效性
@Valid
@NotEmpty
@NotNull

原子性
@Transactional

===================================
Spring MVC如何处理http请求
1. 用户向服务器发送请求,请求被Spring 前端控制Servelt DispatcherServlet捕获;
2. DispatcherServlet对请求URL进行解析,得到请求资源标识符(URI)。然后根据该URI,调用HandlerMapping获得该Handler配置的所有相关的对象(包括Handler对象以及Handler对象对应的拦截器),最后以HandlerExecutionChain对象的形式返回;
3. DispatcherServlet 根据获得的Handler,选择一个合适的HandlerAdapter。(附注:如果成功获得HandlerAdapter后,此时将开始执行拦截器的preHandler(…)方法)
4. 提取Request中的模型数据,填充Handler入参,开始执行Handler(Controller)。 在填充Handler的入参过程中,根据你的配置,Spring将帮你做一些额外的工作:
HttpMessageConveter: 将请求消息(如Json、xml等数据)转换成一个对象,将对象转换为指定的响应信息
数据转换:对请求消息进行数据转换。如String转换成Integer、Double等
数据格式化:对请求消息进行数据格式化。 如将字符串转换成格式化数字或格式化日期等
数据验证: 验证数据的有效性(长度、格式等),验证结果存储到BindingResult或Error中
5. Handler执行完成后,向DispatcherServlet 返回一个ModelAndView对象;
6. 根据返回的ModelAndView,选择一个适合的ViewResolver(必须是已经注册到Spring容器中的ViewResolver)返回给DispatcherServlet ;
7. ViewResolver 结合Model和View,来渲染视图
8. 将渲染结果返回给客户端。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值