`
yinghuayu1324117
  • 浏览: 69540 次
  • 性别: Icon_minigender_2
  • 来自: 保定
文章分类
社区版块
存档分类

Spring笔记(一)

阅读更多

Spring应用

一、        Spring基础

  在本部分别,将介绍Spring框架的两个核心特性:反向控制(IOC)和面向切面编程(AOP)。

1、  首先,简单介绍Spring中的IOCAOP

2、  其次,装配Bean,介绍如何利用IOC实现系统对象间的松耦合关系,如何使用XML在Spring容器中定义系统对象,装配其依赖类。

3、  创建切面,介绍Spring的AOP把系统级服务(如安全和监控)从服务对象中解耦出来

1、    Spring简介

1)Spring特点

   Spring是一个轻量级的locAOP容器框架。

a)         轻量级:从大小及系统开支上说。且Spring是非侵入式的(基于Spring开发的系统中对象一般不依赖于Spring的类)

b)        反向控制:使用loc对象是被动接收依赖而不是主动去找(容器在实例化对象是主动将其依赖类注入给它)

c)         面向切面:将业务逻辑从系统服务中分离,实现内聚开发。系统对象只做其该做的业务业务逻辑不负责其他系统问题(如日志和事务支持)

d)        容器:包括且管理系统对象的生命周期和配置,通过配置设定Bean是单一实例还是每次请求产生一个,并设定Bean之间的关联关系

e)         框架:使用简单组件配置组合成一个复杂的系统,系统中的对象是通过XML文件配置组合起来的,且Spring提供了很多基础功能(事务管理,持久层集成等)

2)Spring模块

  

 

AOP

Module

O/R

Mapping

Module

Web Context

and utility

Module

 

 

MVC

framework

JDBC and

DAO

Module

Application

Context

Module

 

Core container and Supporting Utilities

Spring框架由7个模块组成:

a)         核心容器:提供了基础功能。包括BeanFactory类(Spring框架的核心,采用工厂模式实现Loc

b)        应用上下文模块:扩展了Beanfactory,添加了对I18N(国际化)、系统生命周期事件及验证的支持,并提供许多企业级服务,如电子邮件、JNDI访问、EJB集成、远程调用及定时服务,并支持与模板框架(如VelocityFreeMarker)的集成。

c)         AOP模块:对面向切面提供了丰富的支持模式Spring应用系统开发切面的基础;并引入metadata编程

d)        JDBCDAO模块

e)         O/R映射模块:

f)         Web模块:建立在应用上下文模块的基础上,提供了合适web系统的上下文,另外,该模块支持多项面web任务,如透明处理多文件上传请求,自动将请求参数绑定到业务对象中等。

g)        MVC框架:所有模块都是建立在核心容器上的,容器规定如何创建、配置和管理Bean,以及其细节。

3)搭建Spring应用开发环境

a)      Spring的下载和安装

               Spring当前GA版本是3.0.5,登录到http://www.springsource.org/ 点,单击Powloads链接进入download页面。然后单击Download链接,逐步进入真正的下载页面。

                       建议下载spring-framework-3.0.5-with-dependencies.zip包,这个压缩中不仅含Spring自身的所有应用包,还含有Spring编译和运行所依赖的第三方类库以及第三方开源框架的应用包。

               在应用程序中使用Spring时,需要将spring.jar添加到项目的类路径中,另外还需要添加日志处理包commons-logging.jar以及它的实现包log4j-1.2.15jar(还需要添加他的配置文件log4j.properties)。至于其他的第三方类库,可以在具体需要使用时再加入。

b)     添加Spring配置文件

一般来说,使用Spring时会在项目的类路径(CLASSPATH)中添加Spring配置文件来声明Spring要管理的内容。通常把这个文件取名为applicationContext.xml,它的内容大致为如下所示的代码片段。

     <?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"

                  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">

                        <!--配置由Spring来管理的Bean-->

                 <bean id="gdi" class="cn.csdn.dao.GenericDaoImpl">

                  <property name="say" value="O(_)O哈哈~"></property>

                 </bean>

</beans>

4)简单示例

首先导入必须的包commons-logging.jarspring.jar

GreetDao.java

package cn.csdn.dao;

 

public interface GreetDao {

         void sayGreet();

}

GreetDaoImpl.java

package cn.csdn.dao;

 

public class GreetDaoImpl implements GreetDao{

    private String say;

    @Override

    public void sayGreet() {

       System.out.println("Spring say:"+say);

    }

    public void setSay(String say) {

       this.say = say;

    }

}

GreetService.java

package cn.csdn.service;

 

public interface GreetService {

   void sayGreet();

}

 

GreetServiceImpl.java

package cn.csdn.service;

 

import cn.csdn.dao.GreetDaoImpl;

 

public class GreetServiceImpl implements GreetService{

    private GreetDaoImpl greetDaoImpl;

    @Override

    public void sayGreet() {

       greetDaoImpl.sayGreet();

    }

    public void setGreetDaoImpl(GreetDaoImpl greetDaoImpl) {

       this.greetDaoImpl = greetDaoImpl;

    }

}

GreetTest.java

package cn.csdn.junit;

 

import org.junit.Test;

import org.springframework.context.ApplicationContext;

import org.springframework.context.support.ClassPathXmlApplicationContext;

import cn.csdn.service.GreetServiceImpl;

 

public class GreetTest {

 @Test

 public void test1(){

     ApplicationContext  ac = new ClassPathXmlApplicationContext("applicationContext.xml");

     GreetServiceImpl gsi=(GreetServiceImpl) ac.getBean("greetServiceImpl");

     gsi.sayGreet();

 }

}

applicationContext.xml

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"

       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

       xmlns:context="http://www.springframework.org/schema/context"

       xsi:schemaLocation="http://www.springframework.org/schema/beans

                          http://www.springframework.org/schema/beans/spring-beans-2.5.xsd

                        ">

<bean id="greetDaoImpl" class="cn.csdn.dao.GreetDaoImpl">

    <property name="say">

        <value>hello</value>

      </property>

</bean>   

<bean id="greetServiceImpl" class="cn.csdn.service.GreetServiceImpl">

    <property name="greetDaoImpl" ref="greetDaoImpl"></property>

</bean>                       

</beans>

分享到:
评论

相关推荐

    SPRING 笔记SPRING 笔记

    SPRING 笔记SPRING 笔记SPRING 笔记

    spring笔记.pdf

    spring笔记spring基础笔记

    spring笔记.md

    spring入门笔记

    达内,tarena,spring笔记,springPPT课件,达内spring笔记

    Spring笔记可能涵盖了以下内容: 1. **IoC(Inversion of Control)容器**:Spring的核心特性之一,通过反转控制权,让框架负责管理对象的生命周期和装配,开发者只需定义配置,无需手动创建对象。 2. **依赖注入...

    Spring笔记.doc

    Spring 是一个开源的 Java 应用框架,主要设计目标是简化企业级应用的开发。它的核心特性是依赖注入(Dependency Injection,简称 DI)和面向切面编程(Aspect-Oriented Programming,简称 AOP)。Spring 的轻量级...

    Spring学习笔记(精华全记录)

    ### Spring学习笔记(精华全记录) #### Spring框架概述 Spring框架源自Rod Johnson的个人项目,最初于2002年末发布。Spring并非一开始就作为一个完整的框架出现,而是从一个项目逐步发展而来。随着项目的成熟,...

    尚硅谷Spring笔记

    尚硅谷Spring笔记

    Springcloud学习笔记.md

    Springcloud学习笔记.md,Springcloud学习笔记.md,Springcloud学习笔记.md,Springcloud学习笔记.md,Springcloud学习笔记.md,Springcloud学习笔记.md,Springcloud学习笔记.md,Springcloud学习笔记.md,Spring...

    Spring笔记.docx

    #### 一、Spring框架简介 Spring框架是一个开源的企业级Java应用框架,由Rod Johnson在2003年发起并创建。它为Java应用程序提供了全面的基础设施支持,使得开发者能够专注于业务逻辑而无需过多关注底层的技术细节。...

    spring笔记之helloworld所需要的jar包

    在描述中提到的"spring笔记一helloworld"工程文件中,关键的jar包包括: 1. **spring-core.jar**:这是Spring框架的基础,包含了Spring的核心类和工具类,如BeanFactory和ApplicationContext接口,以及用于反射和...

    spring第一次课笔记

    本笔记将详细解析Spring框架的基础知识,帮助你更好地理解并掌握Spring的核心概念。 首先,我们需要了解Spring框架的主要模块: 1. **核心容器**:这是Spring框架的基础,包括BeanFactory和ApplicationContext。...

    Spring笔记 狂神说

    spring笔记 狂神说

    spring 笔记

    spring 初学 笔记 入门提示

    尚硅谷Spring6的笔记

    尚硅谷Spring6的笔记

    Spring笔记示例源代码

    "Spring笔记示例源代码"这个资源很可能是为了帮助学习者深入理解Spring框架的各种功能和用法而提供的实际代码示例。 1. **Spring IoC**:IoC是Spring的核心特性,它将对象的创建和管理权交给Spring容器,使得开发者...

    Spring学习笔记( spring视频笔记)

    Spring学习笔记( spring视频笔记)

    spring笔记.zip

    Spring框架是Java开发中的核心组件,它为应用程序提供...这些笔记将涵盖这些主题的基本概念、使用方法和示例,帮助初学者快速理解和掌握Spring生态系统。通过深入学习和实践,开发者能够构建出高效、可扩展的Java应用。

    尚硅谷周阳老师SpringCloud笔记

    【尚硅谷周阳老师SpringCloud笔记】是一份深入学习SpringCloud技术体系的教程资源,由知名教育机构尚硅谷的周阳老师编撰。SpringCloud作为微服务架构的重要框架,广泛应用于现代企业的分布式系统开发中。这份笔记...

    spring笔记

    Spring笔记中提到的技术知识点主要围绕Hibernate框架展开,Hibernate是一个开放源代码的对象关系映射(Object/Relational Mapping,简称ORM)框架,用于Java环境。它对JDBC进行了非常轻量级的对象封装,使得开发者...

Global site tag (gtag.js) - Google Analytics