Spring应用
一、 Spring基础
在本部分别,将介绍Spring框架的两个核心特性:反向控制(IOC)和面向切面编程(AOP)。
1、 首先,简单介绍Spring中的IOC和AOP;
2、 其次,装配Bean,介绍如何利用IOC实现系统对象间的松耦合关系,如何使用XML在Spring容器中定义系统对象,装配其依赖类。
3、 创建切面,介绍Spring的AOP把系统级服务(如安全和监控)从服务对象中解耦出来
1、 Spring简介
1)Spring特点
Spring是一个轻量级的loc和AOP容器框架。
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集成、远程调用及定时服务,并支持与模板框架(如Velocity和FreeMarker)的集成。
c) AOP模块:对面向切面提供了丰富的支持模式Spring应用系统开发切面的基础;并引入metadata编程
d) JDBC和DAO模块
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.jar和spring.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入门笔记
Spring笔记可能涵盖了以下内容: 1. **IoC(Inversion of Control)容器**:Spring的核心特性之一,通过反转控制权,让框架负责管理对象的生命周期和装配,开发者只需定义配置,无需手动创建对象。 2. **依赖注入...
Spring 是一个开源的 Java 应用框架,主要设计目标是简化企业级应用的开发。它的核心特性是依赖注入(Dependency Injection,简称 DI)和面向切面编程(Aspect-Oriented Programming,简称 AOP)。Spring 的轻量级...
### Spring学习笔记(精华全记录) #### Spring框架概述 Spring框架源自Rod Johnson的个人项目,最初于2002年末发布。Spring并非一开始就作为一个完整的框架出现,而是从一个项目逐步发展而来。随着项目的成熟,...
尚硅谷Spring笔记
Springcloud学习笔记.md,Springcloud学习笔记.md,Springcloud学习笔记.md,Springcloud学习笔记.md,Springcloud学习笔记.md,Springcloud学习笔记.md,Springcloud学习笔记.md,Springcloud学习笔记.md,Spring...
#### 一、Spring框架简介 Spring框架是一个开源的企业级Java应用框架,由Rod Johnson在2003年发起并创建。它为Java应用程序提供了全面的基础设施支持,使得开发者能够专注于业务逻辑而无需过多关注底层的技术细节。...
在描述中提到的"spring笔记一helloworld"工程文件中,关键的jar包包括: 1. **spring-core.jar**:这是Spring框架的基础,包含了Spring的核心类和工具类,如BeanFactory和ApplicationContext接口,以及用于反射和...
本笔记将详细解析Spring框架的基础知识,帮助你更好地理解并掌握Spring的核心概念。 首先,我们需要了解Spring框架的主要模块: 1. **核心容器**:这是Spring框架的基础,包括BeanFactory和ApplicationContext。...
spring笔记 狂神说
spring 初学 笔记 入门提示
尚硅谷Spring6的笔记
"Spring笔记示例源代码"这个资源很可能是为了帮助学习者深入理解Spring框架的各种功能和用法而提供的实际代码示例。 1. **Spring IoC**:IoC是Spring的核心特性,它将对象的创建和管理权交给Spring容器,使得开发者...
Spring学习笔记( spring视频笔记)
Spring框架是Java开发中的核心组件,它为应用程序提供...这些笔记将涵盖这些主题的基本概念、使用方法和示例,帮助初学者快速理解和掌握Spring生态系统。通过深入学习和实践,开发者能够构建出高效、可扩展的Java应用。
【尚硅谷周阳老师SpringCloud笔记】是一份深入学习SpringCloud技术体系的教程资源,由知名教育机构尚硅谷的周阳老师编撰。SpringCloud作为微服务架构的重要框架,广泛应用于现代企业的分布式系统开发中。这份笔记...
Spring笔记中提到的技术知识点主要围绕Hibernate框架展开,Hibernate是一个开放源代码的对象关系映射(Object/Relational Mapping,简称ORM)框架,用于Java环境。它对JDBC进行了非常轻量级的对象封装,使得开发者...