Spring的控制反转和依赖注入

Spring的官网:https://spring.io/

Struts与Hibernate可以做什么事?   Struts,     Mvc中控制层解决方案     可以进行请求数据自动封装、类型转换、文件上传、效验… Hibernate,   持久层的解决方案;   可以做到,   把对象保存到数据库,   从数据库中取出的是对象。 传统的开发模式   基于mvc模式进行项目开发;   基于mvc的项目框架结构:   Entity / dao / service / action

为什么引入Spring:

思考:     1. 对象创建创建能否写死?     2. 对象创建细节 对象数量             action  多个   【维护成员变量】             service 一个   【不需要维护公共变量】             dao     一个   【不需要维护公共变量】 创建时间             action    访问时候创建             service   启动时候创建             dao       启动时候创建     3. 对象的依赖关系         action 依赖 service         service依赖 dao ======================================================= 总结: spring就是解决上面的问题的! 简单来说,就是处理对象的创建的、以及对象的依赖关系!

1:框架设计:

  1.1:侵入式设计:引入了框架,对现有的类的结构有影响,即需要实现或者继承某些特定类

      例如:Struts2框架

  1.2:非侵入式设计:引入了框架,对现有的类结构没有影响

      例如:Hibernate框架,Spring框架

2:Spring框架

  Spring概述:可以解决对象创建以及对象之间依赖关系的一种框架。且可以很好的和其他框架一起使用,

     如Spring和Hibernate,Spring和Struts2,其实通俗点讲Spring就是起到一种整合的作用,

     如是一座桥梁,连接了Hibernate和Struts2;

  2.1:控制反转(Inversion of Confrol):

对象的创建交给外部容器完成,这个就叫做控制反转

  2.2:依赖注入(dependency injection):

     处理对象的依赖关系

  2.3:控制反转和依赖注入的区别:

     控制反转:解决对象创建的问题[对象创建交给别人即ioc容器]; 

     依赖注入:在创建完对象后,对象的关系的处理就是依赖注入[通过set方法依赖注入];

  2.4:AOP面向切面编程     面向切面编程:切面,简单的说来可以理解为一个类,由很多重复代码形成的类。     例如:事务,日志,权限。

3:Spring提供了一站式解决方案:

  3.1:SpringCore:

      Spring的核心功能,IoC容器,解决对象创建以及依赖关系

  3.2:SpringWeb:

     Spring对web模块的支持:

        (1)可以与struts2整合,让struts2的action的创建交给Spring

(2)Spring mvc模式 

  3.3:SpringDao:

      Spring对jdbc操作的支持[JdbcTemplate模板工具类]

    3.4:SpringORM:

     Spring对orm的支持:

      (1):既可以与Hibernate整合

      (2):也可以使用Spring对Hibernate操作的封装

  3.5:SpringAOP:

      面向切面编程

  3.6:SpringEE:

    Spring对JavaEE其他模块的支持  

框架啊,东西多而杂,耐着性子慢慢消化~~~

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏java一日一条

Java锁优化

JVM规范规定JVM基于进入和退出Monitor对象来实现方法同步和代码块同步,但两者的实现细节不一样。代码块同步是使用monitorenter和monitor...

741
来自专栏Java架构

Java程序员必知的并发编程艺术——并发机制的底层原理实现

Java编程语言允许线程访问共享变量,为了确保共享变量能被准确和一致的更新,线程应该确保通过排他锁单独获得这个变量。

601
来自专栏乐百川的学习频道

Spring学习笔记 Spring Roo 简介

一直以来,Java/Spring开发被认为是笨重的代表,无法快速生成项目原型和骨架。所以,Spring推出了Spring Roo这个项目,帮助我们快速生成项目原...

2417
来自专栏程序员宝库

Spring MVC工作原理

Dispatcher Servlet分发器 Handler Mapping 处理器映射 Controller 控制器 ModelAndView 模型和视图对象 ...

3518
来自专栏java思维导图

一文理解Netty模型架构

本文基于Netty4.1展开介绍相关理论模型,使用场景,基本组件、整体架构,知其然且知其所以然,希望给读者提供学习实践参考。

1014
来自专栏NetCore

AppFuse项目笔记(1)

AppFuse项目笔记(1) 一、Appfuse简介 Appfuse是Matt Raible 开发的一个指导性的入门级J2EE框架,它对如何集成流行的Sprin...

2685
来自专栏猿天地

Spring Boot 使用WebAsyncTask异步返回结果

在Spring Boot中(Spring MVC)下请求默认都是同步的,一个请求过去到结束都是由一个线程负责的,很多时候为了能够提高吞吐量,需要将一些操作异步化...

2422
来自专栏后端之路

两级缓存框架J2Cache的使用

说起cache总是想要唠两句buffer,至于cache和buffer的区别在此Cache 和 Buffer 都是缓存,主要区别是什么? 缓存在整个计算机生活中...

31910
来自专栏Linyb极客之路

使用Spring Boot实现模块化

2562
来自专栏浪淘沙

使用Jsp编写网页并实现数据库的增删改查

首先jsp 和Servlet语句基本一样,这里的实现需要用到上篇http://blog.csdn.net/qq_32539825/article/details...

4564

扫码关注云+社区