您的位置:首页 > 编程语言 > Java开发

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

2018-01-27 21:32 113 查看

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

(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.





内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: