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>

你可能感兴趣的:(DAO,spring,AOP,bean,配置管理)