学习大纲:
- 什么是框架
- Spring简介
- IOC(配置,注解)
- Bean(配置,注解)
- AOP(配置,注解,AspectJ,API)
如何学习Spring
- 掌握用法
- 深入理解
- 不断实践
- 反复总结
- 再次深入理解与实践
Spring简介
Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架,他的主要目的是为了解决企业应用开发的复杂性而诞生的:
– 目的:解救企业应用开发的复杂性
– 功能:使用基本的JavaBean代替EJB
– 范围:任何Java应用Spring的存在是因为它自身有着得天独厚的优势:
– 它定位的领域是许多其他流行的framework没有的
– Spring是全面的和模块化的
– 它的设计从底部帮助你编写易于测试的代码
– Spring是潜在的一站式解决方案优点:
– 低侵入式设计,代码污染极低
– Write Once,Run Anywhere
– DI有效的降低了耦合度
– AOP提供了通用任务的集中管理
– ORM和DAO简化了数据库访问
– 高度开放性,并不强制Spring的优点给开发带来的好处:
– 可以有效组织中间层对象
– 使用统一的配置文件
– 促进良好编程习惯,减少编程代价
– 易于简单单元测试
– 使EJB成为一种备选
– 为数据存取提供了一致的框架Spring特点:
– 方便解耦,简化开发
– AOP编程的支持
– 声明式事务的支持
– 方便程序的测试
– 方便集成各种优秀框架
– 降低JavaEE API的使用难度
– Spring的源码是经典学习范例
Spring的核心模块
- 核心容器(Core Container)
- AOP,Aspects,Instrumentation,Messaging
- Data Access/Integration
- Web
Spring作用
- 容器
- 提供了对多种技术的支持
–JMS
–MQ支持
–UntiTest
– 。。。 - AOP
- 提供了众多方便快捷的辅助类(JDBC Template等)
- 对主流应用框架(hibernate等)提供了良好的支持
使用范围
- 构建企业应用(SpringMVC+Spring+hibernate/ibatis)
- 单独使用Bean容器(Bean管理)
- 单独使用AOP进行切面处理
- 其他的Spring功能,如:对消息的支持等
- 在互联网中的应用。。。
什么是框架
- 维基百科:软件框架,通常指的是为了实现某个业界标准或完成特定基本任务的软件组件规范;也指为了实现某个软件组件规范时,提供规范所要求之基础功能的软件产品。
- 框架就是指定一套规范或者规则(思想),大家(程序猿)在该规范或者规则下工作。或者就是别人搭建好的舞台,你来做表演。
- 框架的特点
– 半成品
– 封装了特定的处理流程和控制逻辑
– 成熟的,不断升级改进的软件 - 框架与类库的区别
– 框架一般是封装了逻辑,高内聚的,类库则是松散的工具组合
– 框架专注于某一领域,类库则是更通用的
为什么使用(软件)框架
- 软件系统日趋复杂
- 重用度高,开发效率和质量提高
- 软件设计人员要专注于对领域的了解,使需求分析更充分
- 易于上手,快速解决问题
初学者开始创建一个Spring程序:
– Spring开发环境搭建
– Spring开发包介绍
– 创建示例工程
Spring是运行在java环境下的开发环境,因此在开发前需要准备:
– JDK 7或者以上
– Eclipse 4 或者以上
– Spring Framework 相关软件包3或者3以上版本
Spring开发包的介绍(核心开发包)
- Spring Core
- Spring Beans
- Spring AOP
- Spring Context
提供各种企业级服务的包
- Spring Aspects
- Spring Context Support
- Spring Expression
- Spring Framework Bom(使用maven需要的包)
- Spring Instrument TOmcat
- Spring JDBC
- Spring Instrument
- Spring JMS
- Spring orm
- Spring oxm
- Spring Struts
- Spring test
- Spring tx
- Spring web
- Spring webmvc
- Spring webmvc portlet
引用地址:—————————————————————————-
实体类:
package entity;
public class Person {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
spring.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.xsd">
<bean id="person" class="entity.Person"></bean>
</beans>
测试:
package JUnitTest;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import entity.Person;
public class test01 {
public static void main(String[] args) {
BeanFactory beanFactory = new ClassPathXmlApplicationContext(
"spring.xml");
Person person=(Person) beanFactory.getBean("person");
person.setName("Hello Spring!");
System.out.println(person.getName());
}
}
结果:Hello Spring!
需要导入的jar包: