01.Spring5.x入门

第一章:Spring基础

Spring概述

Spring 是一个开源的Java企业级应用开发框架。是一个分层的轻量级一站式(full-stack)框架,可以叫做家族型的框架,也可以叫做Spring全家桶。

核心

IOC 控制反转(Inversion of Control ):Spring通过控制反转实现了松散耦合,对象们给出它们的依赖,而不是创建或查找依赖的对象,后续创作者将描述改为DI(Dependency Injection,依赖注入)。

AOP 面向切面(AOP):面向切面的编程,把应用业务逻辑和系统服务分开。

优点

  • 作为容器,Spring 包含并管理应用中对象的生命周期和配置。
  • 面向切面编程能帮助我们无耦合的实现日志记录,性能统计,安全控制
  • 提供了一套MVC框架,叫SpringMVC,互联网企业主流开发框架。
  • Spring 提供一个持续的事务管理接口,能非常简单的帮我们管理数据库事务。
  • 支持各种开源框架,可以与第三方框架(如Hibernate、Struts、MyBatis)无缝集成,而且自己也提供了一套JDBC访问模板来方便数据库访问。
  • 能方便的与Java EE(如Java Mail、任务调度)整合,与更多技术整合(比如缓存框架)
  • 异常处理:Spring 提供方便的API把具体技术相关的异常(比如由JDBC,Hibernate or JDO抛出的)转化为一致的unchecked 异常。
  • Junit支持,可以使用Junit进行测试

Spring 的框架结构

 

 

 Data Access/Integration层:包含有JDBC、ORM、OXM、JMS和Transactions模块。

Web:包含了WebSocket、Web、WebMVC、WebFlux模块。

AOP:模块提供了一个符合AOP联盟标准的面向切面编程的实现。

Aspects:集成自Aspects框架,主要为AOP提供多种实现

Instrument:基于JavaSE中的java.lang.instrument进行设计,也是为AOP的实现提供支持

Messaging:提供消息协议支持

Core Container(核心容器):包含有Beans、Core、Context和Expression(SpEL)模块。

Test:支持使用JUnit和TestNG对Spring组件进行测试。

Spring官网介绍

 

第一个Spring程序

  1. 新建一个空的 Java maven项目,命名为【spring01】

  2. 修改pom.xml文件,增加如下依赖

 

  <properties>
      <spring.version>5.1.5.RELEASE</spring.version>
  </properties>

  <dependencies>
      <!-- bean context core expression -->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-core</artifactId>
        <version>${spring.version}</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-beans</artifactId>
        <version>${spring.version}</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>${spring.version}</version>
    </dependency>
  </dependencies>

3.在【src/main/java】下新建一个【com.hliedu.pojo.Drinks】类:

package com.hliedu.pojo;
/**
 * - 饮品POJO
 * 
 * - 带你轻松学Java:恒骊学堂
 * www.hliedu.com
 * QQ群:107184365
 *
 */
public class Drinks {  
    private String fruit;   // 类型
    private String sugar;   // 糖分描述
    private String size;    // 大小杯    
    private int money;        //金额
    /* setter and getter */
}

4.在 【src/main/resources】 目录下新建一个 【applicationContext.xml】 文件,通过 xml 文件配置的方式装配我们的 bean:

<?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 name="drinks" class="com.hliedu.pojo.Drinks">
        <property name="fruit" value="橙子"/>
        <property name="sugar" value="多糖"/>
        <property name="size" value="超大杯"/>
    </bean>
</beans>

 

在 【src/test/java】下新建一个【com.hliedu.test.DrinksTest】类:

package com.hliedu.test;

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

import com.hliedu.pojo.Drinks;

public class DrinksTest {

    public static void main(String[] args) {
        ApplicationContext  context = new 
                ClassPathXmlApplicationContext("applicationContext.xml");
        Drinks drinks = (Drinks)context.getBean("drinks");
        
        String fruit = drinks.getFruit();
        String size = drinks.getSize();
        String sugar = drinks.getSugar();
        System.out.println(drinks);
        System.out.println("果汁口味:" + fruit +",大小:" 
                            + size + ",是否加糖:" + sugar);
    }
}

 

 

  • 总结:

  • 传统的方式:
    通过new 关键字主动创建一个对象

  • IOC方式:
    对象的生命周期由Spring来管理,直接从Spring那里去获取一个对象。 IOC是反转控制 (Inversion Of Control)的缩写,就像控制权从本来在自己手里,交给了Spring。

 

 

 

 

 

 

 

 

 

posted @ 2020-08-12 21:03  郭宗鑫  阅读(134)  评论(0编辑  收藏  举报