Spring框架------概述:

spring是j2ee应用程序框架,是轻量级的IOC和AOP的容器框架,主要是针对JAVABean的生命周期进行管理的轻量级容器,可以单独使用,也可以和Struts框架,ibatis框架等组合使用。

IOC(Inversion of Control)控制反转,对象创建责任的反转,在Spring中BeanFacotory是IOC容器的核心接口,负责实例化,定位,配置应用程序中的对象及建立这些对象间的依赖。XmlBeanFacotory实现BeanFactory接口,通过获取xml配置文件数据,组成应用对象及对象间的依赖关系。spring中三种注入方式,一种是set注入,一种是接口注入,另一种是构造 方法注入。

AOP面向切面编程。

aop就是纵向的编程,如果业务1和业务2都需要一个共同的操作,与其王每个业务中都添加同样的代码,不如写一遍代码,让两个业务共同使用这段代码。spring中的面向切面编程的实现有两种方式,一种是动态代理,一种是CGLIB,动态代理必须要提供接口,而CGLIB实现是有继承。

为什么使用Spring框架?

在不使用spring框架之前,我们的service层中要使用dao的对象,不得不在sevice层中new一个对象。

  1. [java] view plain copy
  2.  
  3. print?01.//dao层对象
  4. 02.public class UserDao{
  5. 03. publicvoid insert(User user){}
  6. 04.}
  7. 05.
  8. 06.//service层对象
  9. 07.public classUserService{
  10. 08. publicvoid insert(User user){
  11. 09. UserDaouserdao = new UserDao();
  12. 10. userdao.insert(user);
  13. 11. }
  14. 12.}

存在的问题:层与层之间的依赖。

使用框架后:

  1. //dao层对象
  2. 02.public class UserDao{
  3. 03. publicvoid insert(User user){}
  4. 04.}
  5. 05.
  6. 06.//service层对象
  7. 07.public classUserService{
  8. 08. privateUserDao userdao;
  9. 09.
  10. 10. publicUserDao getUserdao() {
  11. 11. returnuserdao;
  12. 12. }
  13. 13. publicvoid setUserdao(UserDao userdao) {
  14. 14. this.userdao= userdao;
  15. 15. }
  16. 16.
  17. 17. publicvoid insert(User user){
  18. 18. userdao.insert(user);
  19. 19. }
  20. 20.
  21. 21.}

service层要用dao层对象需要配置到xml配置文件中去,至于对象是怎么创建的,关系是怎么组合的都交给了spring框架去实现。

框架的优点:

轻量级的容器框架没有侵入性

使用IOC容器更加容易组合对象直接间关系,面向接口编程,降低耦合

AOP可以更加容易的进行功能扩展,遵循OCP的开发原则

创建对象默认是单例的,不需要再使用单例模式进行处理

框架的缺点:

业务功能依赖spring的特有功能,依赖spring环境。

Spring------概述的更多相关文章

  1. Spring概述

    layout: post title: Spring概述 tags: [Java,Spring,IOC,AOP] --- Spring是一个开源的轻量级Java SE(Java 标准版本)/Java ...

  2. 基础知识(09) -- Spring 概述

    Spring概述-------------------------------------------------------------------------主要内容: 1.Spring是什么 2 ...

  3. Java开发工程师(Web方向) - 04.Spring框架 - 第1章.Spring概述

    第1章.Spring概述 Spring概述 The Spring Framework is a lightweight solution and a potential one-stop-shop f ...

  4. 1.1 Spring 概述

    1.1 Spring 概述 1.1.1 Spring 的简史 第一阶段:xml配置 Spring 1.x时代使用xml配置Bean 第二阶段:注解配置 Spring2.x  Spring 提供了声明B ...

  5. Spring概述学习笔记

    1.Spring概述 Spring致力于J2EE应用的各种解决方案,而不仅仅专注于某一层的方案. 可以说,Spring是企业应用开发的一站式选择,他贯穿于表现层.业务层.持久层. Spring并不想取 ...

  6. 第01章 Spring概述

    第01章 Spring概述 1.Spring概述 ①Spring是一个开源框架 ②Spring为简化企业级开发而生,使用Spring,JavaBean就可以实现很多以前要靠EJB才能实现的功能.同样的 ...

  7. Spring MVC系列-(1) Spring概述

    1. Spring概述 本章主要介绍Spring中的体系结构和常见概念,比如bean.控制反转(Inverse of Control,IoC)等. 1.1 体系结构 Spring 框架提供约 20 个 ...

  8. Spring系列之初识Spring Spring概述

    初始Spring 啥是Spring? 下面这个就是Spring Spring当然不是上面那个Spring,Spring之所以命名为Spring是因为这个开源的轻量级的开源框架的出现给软件行业带来了春天 ...

  9. 1、Spring教程之Spring概述

    1.Spring概述 简介 Spring : 春天 --->给软件行业带来了春天 2002年,Rod Jahnson首次推出了Spring框架雏形interface21框架. 2004年3月24 ...

  10. Spring学习笔记之Spring概述

    概述   Spring是一个java应用最广的开源框架,它是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-On-One J2EE Deve ...

随机推荐

  1. 实例演示Android异步加载图片(转)

    本文给大家演示异步加载图片的分析过程.让大家了解异步加载图片的好处,以及如何更新UI.首先给出main.xml布局文件:简单来说就是 LinearLayout 布局,其下放了2个TextView和5个 ...

  2. GDB 和 windbg 命令对照(转载)

    From:http://blog.csdn.net/joeleechj/article/details/10020501 命令                                      ...

  3. Azure ARM (8) ARM Template - VS Code

    <Windows Azure Platform 系列文章目录> 在上一节内容中,笔者介绍了如何使用Visual Studio来编辑ARM Template. 但是在某些时候,Visual ...

  4. JAVA 设计模式 观察者模式

    用途 观察者模式 (Observer) 观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象. 这个主题对象在状态发生变化时,会通知所有观察者对象,使它们能够自动更新自己. 观 ...

  5. Java魔法堂:四种引用类型、ReferenceQueue和WeakHashMap

    一.前言 JDK1.2以前只提供一种引用类型——强引用 Object obj = new Object(); .而JDK1.2后我们多另外的三个选择分别是软引用 java.lang.ref.SoftR ...

  6. 搭建 Hexo Blog

    一.教程参考:https://xuanwo.org/2015/03/26/hexo-intor/ 二.命令总结 1.node -v.npm -v:查看 node.js 是否安装成功 2.npm ins ...

  7. ORLEANS REMOTE DEPLOYMENT

    Orleans Remote Deployment Table of Contents Overview: 1 Prerequisites. 2 Deployment Steps. 2 Orleans ...

  8. 从C#到Objective-C,循序渐进学习苹果开发(4)--代码块(block)和错误异常处理的理解

    本随笔系列主要介绍从一个Windows平台从事C#开发到Mac平台苹果开发的一系列感想和体验历程,本系列文章是在起步阶段逐步积累的,希望带给大家更好,更真实的转换历程体验.本文继续上一篇随笔<从 ...

  9. 为什么要用 Bootstrap

    [Bootstrap](http://hovertree.com/menu/bootstrap/) 是由两个 twitter 员工开发并开源的前端框架,非常火爆,而如此火爆自然有它的道理,在我们团队的 ...

  10. C# redis使用之ServiceStack

    需要注意的是:ServiceStack.Redis 中GetClient()方法,只能拿到Master redis中获取连接,而拿不到slave 的readonly连接.这样 slave起到了冗余备份 ...