Spring(1):Spring介绍

2020-12-19 23:40

阅读:338

一,Spring简介:

Spring是一个开源框架,它由Rod Johnson创建;它是为了解决企业应用开发的复杂性而创建的
Spring是一个轻量级的控制反转(IOC)和面向切面(AOP)的容器框架

  • 轻量
    从大小与开销两方面而言Spring都是轻量的。完整的Spring框架可以在一个大小只有1MB多的JAR文件里发布。此外,Spring是非侵入式的:典型地,Spring应用中的对象不依赖于Spring的特定类。

  • 控制反转
    Spring通过一种称作控制反转(IOC)的技术促进了松耦合。当应用了IOC,一个对象依赖的其它对象会通过被动的方式传递进来,而不是这个对象自己创建或者查找依赖对象。

  • 面向切面
    Spring提供了面向切面编程的丰富支持,允许通过分离应用的业务逻辑与系统级服务进行内聚性的开发。

  • 容器
    Spring包含并管理应用对象的配置和生命周期,在这个意义上它是一种容器,你可以配置你的每个bean如何被创建——基于一个可配置原型(prototype),你的bean可以创建一个单独的实例或者每次需要时都生成一个新的实例——以及它们是如何相互关联的。

  • 框架
    Spring可以将简单的组件配置、组合成为复杂的应用。在Spring中,应用对象被声明式地组合,典型地是在一个XML文件里。

二, Spring模块:

Spring框架由七个定义明确的模块组成
如果作为一个整体,这些模块为你提供了开发企业应用所需的一切。但你不必将应用完全基于Spring框架。你可以自由地挑选适合你的应用的模块而忽略其余的模块。所有的Spring模块都是在核心容器之上构建的。容器定义了Bean是如何创建、配置和管理的。
技术图片

  • 核心容器
    这是Spring框架最基础的部分,它提供了依赖注入(DependencyInjection)特征来实现容器对Bean的管理。这里最基本的概念是BeanFactory,它是任何Spring应用的核心。BeanFactory是工厂模式的一个实现,它使用IOC将应用配置和依赖说明从实际的应用代码中分离出来。

  • 应用上下文(Context)模块
    核心模块的BeanFactory使Spring成为一个容器,而上下文模块使它成为一个框架。这个模块扩展了BeanFactory的概念,增加了对国际化(I18N)消息、事件传播以及验证的支持。

  • Spring的AOP模块
    Spring在它的AOP模块中提供了对面向切面编程的丰富支持。这个模块是在Spring应用中实现切面编程的基础。为了确保Spring与其它AOP框架的互用性,Spring的AOP支持基于AOP联盟定义的API。

  • JDBC抽象和DAO模块
    使用JDBC经常导致大量的重复代码,取得连接、创建语句、处理结果集,然后关闭连接。Spring的JDBC和DAO模块抽取了这些重复代码,因此你可以保持你的数据库访问代码干净简洁,并且可以防止因关闭数据库资源失败而引起的问题。

  • 对象/关系映射集成模块
    对那些更喜欢使用对象/关系映射工具而不是直接使用JDBC的人,Spring提供了ORM模块。Spring并不试图实现它自己的ORM解决方案,而是为几种流行的ORM框架提供了集成方案,包括Hibernate、JDO和iBATIS SQL映射。Spring的事务管理支持这些ORM框架中的每一个也包括JDBC。

  • Spring的Web模块
    Web上下文模块建立于应用上下文模块之上,提供了一个适合于Web应用的上下文。另外,这个模块还提供了一些面向服务支持。

  • Spring的MVC框架
    Spring为构建Web应用提供了一个功能全面的MVC框架。虽然Spring可以很容易地与其它MVC框架集成。

三, HelloSpring

技术图片

1,导入jar包

dependency>
    groupId>org.springframeworkgroupId>
    artifactId>spring-webmvcartifactId>
    version>4.3.9.RELEASEversion>
dependency>

2,创建实体类

package com.Shandx.pojo;

public class Hello {

private String name;

public Hello() {
}

public Hello(String name) {
    this.name = name;
}

public String getName() {
    return name;
}

public void setName(String name) {
    this.name = name;
}

public void show(){
    System.out.println("Hello,"+name);
}

@Override
public String toString() {
    return "Hello{" +
            "name=‘" + name + ‘\‘‘ +
            ‘}‘;
}

}

3,编写Spring的配置文件【beans.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就是一个java对象,由Spring管理和创建-->
<bean id="hello" class="com.kuang.pojo.Hello">
    <property name="name" value="Spring"/>
</bean>

beans>

4,测试类

package com.Shandx.pojo;

import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class HelloTest {
@Test
public void test(){

    //解析beans.xml配置文件,生产管理相应的Bean对象;
    ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");

    //通过Bean得到这个对象的实体
    Hello hello = (Hello)context.getBean("hello");
    hello.show();

}

}

5,运行结果

技术图片

【 hello对象是由Spring创建的
beans.xml 用于管理bean,Java对象 , Spring就像一个容器,存放了许多的对象;】

上一篇:Python常用操作

下一篇:java基础复习


评论


亲,登录后才可以留言!