Spring的介绍、优势、搭建与思想

1、Spring介绍


  Spring 是一个兴起于2003的轻量级java开源框架,由Rod Johnson创建,其目的是为了解决企业应用开发的复杂性而创建的。框架的主要优势是分层架构,分层架构允许使用者选择使用哪一组件,同时为 J2EE 应用程序开发提供集成的框架。Spring使用基本的JavaBean来完成以前只能由EJB完成的事。Spring的用途不仅局限于服务器端的开发,从简单性、可测试性和松耦合的角度而言,任何Java 应用都可以从中受益。Spring的核心是控制反转(Ioc)和面向切片(AOP)。简单来说,Spring是一个分层的JavaSE/EE一站式的轻量级开源框架。


2、Spring的优势


(1)方便解耦,简化开发

 Spring就是一个大工厂,可以将所有对象的创建和依赖关系维护,交给Spring管理

(2)AOP编程的支持

 Spring提供面向切面编程,可以方便的实现对程序进行权限拦截,运营监控等功能

(3)声明式事务的支持

 只需要通过配置就可以完成对事务的管理,而无需手动编程

(4)方便程序的测试

 Spring对Junit4 支持,可以注解方便的测试Spring程序

(5)方便集成各种优秀框架

 Spring不排斥各种优秀的开源框架,其内部提供了对各种优秀框架(Struts、Hibernata、Mybatis等)的直接支持。


3、Spring搭建(第一个程序)


 创建WEB工程-导包-创建对象-书写配置文件-代码测试

(1)导包

spring-beans-4.2.4.RELEASE.jar

spring-context-4.2.4.RELEASE.jar

spring-core-4.2.4.RELEASE.jar

spring-expression-4.2.4.RELEASE.jar

springsource.org.apache.commons.logging-1.1.1.jar
springsource.org.apache.log4j-1.2.15.jar

扫描二维码关注公众号,回复: 163976 查看本文章


(2)创建对象

package com.hciot.bean;

public class User {

	private String name;
	private Integer age;
		
	public User() {
		System.out.println("user对象空参构造方法");
	}
		
	public User(String name, Car car) {
		System.out.println("User(String name, Car car)");
		this.name = name;
		this.car = car;
	}
		
	public String getName() {
			return name;
		}
	public void setName(String name) {
		this.name = name;
	}
		
	public Integer getAge() {
		return age;
	}
	public void setAge(Integer age) {
		this.age = age;
	}
			
	@Override
	public String toString() {
		return "User [name=" + name + ", age=" + age ]";
	}
}

(3)书写配置文件

 a、配置文件位置任意(建议放置到src下),配置文件名任意(一般为applicationContext.xml);
 b、导入bean约束
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns="http://www.springframework.org/schema/beans" 
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.2.xsd ">


	<!-- 将User对象交给spring容器管理 -->
	<bean name="user" class="com.hciot.bean.User" init-method="init" destroy-method="destroy"></bean>
</beans>

(4)代码测试

package com.hciot.a_hello;

import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.hciot.bean.User;
public class Demo {
	@Test
	public void fun1(){
		//1.创建容器对象
		ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
		//2.向容器要user对象
		User u = (User) ac.getBean("user");
		//3.打印user对象
		System.out.println(u);
	}
}

4、Spring思想

IOC:Inverse of Control反转控制

 将我们创建对象的方式反转了,以前对象的创建是由我们自己维护的,包括依赖关系的注入。使用Spring之后,对象的创建以及依赖关系可以由Spring完成,反转控制就是反转了对象的创建方式,从我们自己创建反转给了Spring.

DI:Dependency Injection 依赖注入
 实现IOC需要DI支持

BeanFactory接口
 spring原始接口.针对原始接口的实现类功能较为单一。BeanFactory接口实现类的容器.特点是每次在获得对象时才会创建对象

ApplicationContext

 每次容器启动时就会创建容器中配置的所有对象.并提供更多功能。
 丛类路径下加载配置文件:ClassPathXmlApplicationContext。

 从硬盘绝对路径下加载配置文件:FileSystemXmlApplicationContext("d:/xxx/yyy/xxx")

结论:web开发中,使用applicationContext. 在资源匮乏的环境可以使用BeanFactory.

























猜你喜欢

转载自blog.csdn.net/linshaoduoge/article/details/79181872