SSH学习——Spring基础

1.理解什么是Spring框架?

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

2.Spring框架的优缺点:

  优点:

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

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

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

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

  缺陷:业务功能依赖spring特有的功能,依赖与spring环境

3.Spring六大模块:

关键术语:  

  IOC (Inversion Of Control) 控制反转    IOC容器 = BeanFactory + bean.xml

  负责对象创建反转,在spring中BeanFacotory是IOC容器的核心接口,负责实例化,定位,配置应用程序中的对象及建立这些对象间的依赖。XmlBeanFacotory实现BeanFactory接口,通过获取xml配置文件数据,组成应用对象及对象间的依赖关系。

  DI   dependency  injection  依赖注入(处理对象的依赖关系!如:创建Action后需要处理Action依赖Service)

     spring中有三种注入方式,一种是set注入,一种是接口注入,另一种是构造方法注入。  

  Aop  aspect object program  面向切面编程!

      AOP就是纵向的编程,如业务1和业务2都需要一个共同的操作,与其往每个业务中都添加同样的代码,不如写一遍代码,让两个业务共同使用这段代码。

    spring中面向切面变成的实现有两种方式,一种是动态代理,一种是CGLIB,动态代理必须要提供接口,而CGLIB实现是有继承。

4.Spring开发步骤:

  1.下载Spring源码并引入Jar文件:(3.0之后,spring源码中只有spring的功能,如果spring有依赖其他包,需要单独下载)    

    commons-logging-1.1.3.jar 【需要单独下载, spring 依赖的日志包】
    spring-beans-3.2.5.RELEASE.jar 【3.2 源码:Spring bean节点支持】
    spring-context-3.2.5.RELEASE.jar 【3.2 源码:上下文支持】
    spring-core-3.2.5.RELEASE.jar 【3.2 源码:核心功能】
    spring-expression-3.2.5.RELEASE.jar 【3.2 源码:Spring 表达式】

  2.配置Application.xml/bean.xml (名字可以取其中一个)

    将需要创建的对象都在Spring容器中进行配置,对应的名称空间和约束可以去源码中拷贝!

1 <?xml version="1.0" encoding="UTF-8"?>
2 <beans xmlns="http://www.springframework.org/schema/beans"
3      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4      xmlns:p="http://www.springframework.org/schema/p"      xsi:schemaLocation="http://www.springframework.org/schema/beans
5      http://www.springframework.org/schema/beans/spring-beans.xsd">
6
7      <!-- 创建一个User对象 -->
8      <bean id="user" class="cn.itcast.b_ioc.User"></bean>
9 </beans>    

  3.创建IOC容器并通过IOC容器创建对象!

    1.通过无参或者有参构造函数创建对象;

    2.使用工厂类创建对象;

5.详解Spring创建Bean:

1  <bean id="user"  class="cn.itcast.b_ioc_bean.User" scope="singleton" lazy-init="true" init-method="init" destroy-method="destroy"></bean>

5.1.通过scope指定bean是单例还是多例:

  scope="singleton"  单例, 启动时候创建所有单例的bean

  scope="prototype" 多例, 启动时候不会创建,【每次从容器获取实例时候,都会创建一个新的bean】

  当创建Dao/Service时候,可以指定singleton, 也可以不指定,默认就是单例!创建Action时候必须指定!

5.2. 延迟初始化
  lazy-init="false" 不延迟初始化
  lazy-init="true" 表示:在初始化容器时候,没有创建单例的bean;
  在第一次从容器中获取时候创建实例;如果再次获取,获取是上次创建的单例的对象
5.3. 初始化与销毁方法
  init-method=" "
  初始化方法, 创建完对象之后执行初始化方法; 如果是单例,执行一次; 多例就执行多次
  destroy-method=" "
  当调用ClassPathXmlApplicationContext对象的destroy方法的时候执行!

6.Bean的生命周期:

  6.1.先创建IOC容器对象
  6.2.每次从容器获取bean,才创建对象
  6.3.创建完对象后,执行初始化方法 (每次创建对象后执行)
  6.4.对象创建完毕
  6.5.容器销毁,执行destroy方法

时间: 2024-08-06 20:00:51

SSH学习——Spring基础的相关文章

学习Spring必学的Java基础知识(2)----动态代理

学习Spring必学的Java基础知识(2)----动态代理 引述要学习Spring框架的技术内幕,必须事先掌握一些基本的Java知识,正所谓“登高必自卑,涉远必自迩”.以下几项Java知识和Spring框架息息相关,不可不学(我将通过一个系列分别介绍这些Java基础知识,希望对大家有所帮助.): [1] Java反射知识-->Spring IoC :http://www.iteye.com/topic/1123081 [2] Java动态代理-->Spring AOP :http://www

第65节:Java后端的学习之Spring基础

Java后端的学习之Spring基础 如果要学习spring,那么什么是框架,spring又是什么呢?学习spring中的ioc和bean,以及aop,IOC,Bean,AOP,(配置,注解,api)-springFramework. 各种学习的知识点: spring expression language spring integration spring web flow spring security spring data spring batch spring网站: http://sp

hadoop学习笔记——基础知识及安装

1.核心 HDFS  分布式文件系统    主从结构,一个namenoe和多个datanode, 分别对应独立的物理机器 1) NameNode是主服务器,管理文件系统的命名空间和客户端对文件的访问操作.NameNode执行文件系统的命名空间操作,比如打开关闭重命名文件或者目录等,它也负责数据块到具体DataNode的映射 2)集群中的DataNode管理存储的数据.负责处理文件系统客户端的文件读写请求,并在NameNode的统一调度下进行数据块的创建删除和复制工作. 3)NameNode是所有

跟着刚哥学习Spring框架--创建HelloWorld项目(一)

1.Spring框架简介 Spring是一个开源框架,Spring是在2003年兴起的一个轻量级的开源框架,由Rod johnson创建.主要对JavaBean的生命周期进行管理的轻量级框架,Spring给JavaEE带来了春天. 2.Spring框架特点 √ 轻量级:不是说他的文件大小很小,指的Spring是非侵入性. 知识点:轻量级框架和重量级框架的区别 轻量级和重量级的框架是以启动程序所需要的资源所决定,比如EJB在启动程序的时候需要消耗大量的资源,内存和CPU,所以是重量级.√ 依赖注入

Java SSH (strusts2+spring+hibernate )完结项目源码 mysql

Java SSH (strusts2+spring+hibernate ) 完结项目源码 mysql 用来学习 毕业设计都可 继续二次开发也行 提供文档 数据结构 下载地址: 联系QQ 313596790

Spring基础知识及入门

---恢复内容开始--- 1 spring框架概述 1.1 什么是spring Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-On-One J2EE Development and Design中阐述的部分理念和原型衍生而来.它是为了解决企业应用开发的复杂性而创建的.框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为 J2EE 应用程序开发提供集成的框架.Sprin

Spring基础介绍

Spring属于轻量级还是重量级框架? 这需针对使用Spring的功能而言,比如我们常使用其核心服务整合SSH,这样则为轻量级. 如果使用其大部分服务则可以理解为重量级. 普通JAVA项目环境下预加载Spring  — applicationContext.xml AbstractApplicationContext cxt = new ClassPathXmlApplicationContext("*.xml"); ApplicationContext cxt=new ClassPa

我们一起学习Spring之Spring简介(一)

首先声明,我是一个spring初学者,写这篇blog的目的是为了能和大家交流.文中不当之处还望大佬指出,不胜感激! 好了,现在我们开始进入正题. 很多小伙伴在学习Java的时候都会有人建议你去学习Spring,那么什么是Spring呢?SPring是由Rod Johnson创建的一款开源的轻量级Java框架.Spring的诞生之初是为了解决企业级Java开发的复杂性,使得我们通过简单的javaBean能够实现以前只有使用EJB(Enterprise JavaBean)才能完成的一些事情.但是Sp

SSH学习

SSH 学习笔记 SSH:struts + hibernate + spring 第一部分:struts2 (没有数据库) struts2 简介 servlet解耦,实现了MVC的思想: struts2 配置文件的标签 package name:唯一标识一个包,不能重名: extends:继承其他包,可以直接使用该包中的资源: abstract:true 包为抽象包,不能写action标签.默认为false: namespace:命名空间,注意搜索机制,默认namespace="/":