- Spring 的概述:
Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson在其著作 Expert One-On-One J2EE Development and Design 中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为 J2EE 应用程序开发提供集成的框架。Spring 使用基本的 JavaBean来完成以前只可能由 EJB 完成的事情。然而,Spring 的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何 Java 应用都可以从 Spring 中受益。Spring 的核心是控制反转(IoC)和面向切面(AOP)。简单来说,Spring 是一个分层的 JavaSE/EEfull-stack(一站式) 轻量级开源框架。
EE 开发分成三层结构:
- WEB 层:Spring MVC.
- 业务层:Bean 管理:(IOC)
- 持久层:Spring 的 JDBC 模板.ORM 模板用于整合其他的持久层框架.
2.控制反转 :
IOC 的底层实现原理:IOC:Inversion of Control 控制反转. 指的是 对象的创建权反转(交给)给 Spring. 作用是实现了程序的解耦合. IOC被认为是任何容器都需要提供的基本功能之一,他有两种形式:依赖查找和依赖注入。
依赖注入 :依赖注入的基本原则是:应用程序对象不应该负责查找他们所依赖的资源或协作者,而是应该有IOC容器处理创建和依赖注入,从而导致资源查找的外部化,从应用程序代码转移到容器。
- Spring 的开发包:
下 载 地 址 :http://repo.springsource.org/libs-release-local/org/springframework/spring
解压:(Spring 目录结构:)
- docs :API 和开发规范.
- libs :jar 包和源码.
- schema :约束.
- Spring 的相关配置:
①—— id 属性和 name 属性标签的配置
id:Bean起个名字.在约束中采用ID的约束:唯一.必须以字母开始,可以使用字母、数字、连字符、
下划线、句话、冒号id:不能出现特殊字符.
<beanid=”bookAction”>
name:Bean 起个名字.没有采用ID的约束.name:出现特殊字符.如果没有 id 的话,name可
以当做 id使用.
*整合 struts1的时候:
<beanname=”/loginAction”>
②—— scope 属性:Bean 的作用范围.
*singleton:默认值,单例的.
*prototype:多例的.
*request:WEB项目中,Spring创建一个 Bean的对象,将对象存入到 request域中.
*session:WEB项目中,Spring创建一个 Bean的对象,将对象存入到 session域中.
*globalSession:WEB项目中,应用在Porlet环境.如果没有Porlet环境那么 globalSession相当
于 session.
5.**一个简单的示例
**
①.导包
②.实体类
public class test {
private String id;
private String name;
public test(String id, String name) {
this.id = id;
this.name = name;
}
public test(){}
@Override
public String toString() {
return "zzz{" +
"id='" + id + '\'' +
", name='" + name + '\'' +
'}';
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
③.编写spring_confin.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">
<beans>
<bean id="zz" class="chang.test">
<property name="id" value="1"></property>
<property name="name" value="钟鹏"></property>
</bean>
</beans>
</beans>
④.测试类
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class Junit {
@Test
public void test(){
ApplicationContext context =new ClassPathXmlApplicationContext("spring_confin.xml");
test obj=(test)context.getBean("zz");
System.out.println(obj.getId());
System.out.println(obj.getName());
}
}
⑤.运行结果