为了账号安全,请及时绑定邮箱和手机立即绑定

【Spring】(一)Spring入门&Hello Spring

标签:
Spring

一、Spring 简介

1、Spring 概述

(1)Spring 是一款开源的免费框架,是一个轻量级控制反转(IOC)和面向切面(AOP)的 JAVA EE 框架,轻量级是指不依赖于容器就能运行的。Spring 框架最初的作者是Rod Jahnson,现在已经被Pivotal Software公司收购,而Pivotal Software公司的东家正是大名鼎鼎的虚拟化提供商VMWare。

(2)一般所谓的 Sping 指的仅仅是Spring旗下的spring framework这一款产品,在 Spring 被 Pivotal
Software 公司接手之后,相继研发出了多款产品,其中的Spring Boot、Spring Could已经成为了当前互联网环境下的佼佼者。

  • Spring Boot是一个整合Spring各项功能的中间件,用于快速的开发Spring应用。
  • Spring Cloud是为了应对日益增长的业务需求,而开发出的一套完整的基于微服务的分布式解决方案。
  • Spring Framework、Spring Boot、Spring Cloud这三款框架的依赖是递增的,也就是说Spring - Could的基础是Spring Boot。
  • Spring Boot的基础是Spring Framework,学习顺序应该是Spring Framework>Spring Boot>Spring Cloud。

(3)Spring 框架是使用最广泛的轻量级 JAVA EE 框架之一,它以 IOC、AOP 为主要思想,能够协同 Struts2、Hibernate、WebWork、JSF、iBatis 等众多的框架。

2、Spring Framework 下载

(1)Spring的官网是
https://spring.io, 通过 http://repo.spring.io/release/org/springframework/spring
可以下载Spring Framework(以后简称Spring)的开发包,如版本Spring 5.1.6,下载好jar包之后解压出的目录结构如下:

  • docs:开发文档
  • schema:spring框架对于xml文件的校验采用了schema的方式,该文件夹中是schema文件。
  • libs:jar包,保存了spring框架的所有jar包。
  • 注意:libs中保存的jar包分为3类,分别是文档jar包,源代码jar包,和编译之后的class文件jar包,我们以前导入的其他框架jar包都是最后一种class文件jar包。

(2)spring中常用jar包:

  • Spring AOP:Spring的面向切面编程,提供AOP(面向切面编程)的实现
  • Spring Aspects:Spring提供的对AspectJ框架的整合
  • Spring Beans:Spring IOC的基础实现,包含访问配置文件、创建和管理bean等。
  • Spring Context:在基础IOC功能上提供扩展服务。
  • Spring Context Support:Spring context的扩展支持,用于MVC方面。
  • Spring Core:Spring的核心工具包
  • Spring expression:Spring表达式语言
  • Spring Instrument:Spring对服务器的代理接口
  • Spring Instrument Tomcat:Spring对tomcat连接池的集成
  • Spring JDBC:对JDBC 的简单封装
  • Spring JMS:为简化jms api的使用而做的简单封装
  • Spring orm:整合第三方的orm实现,如hibernate,ibatis,jdo以及spring 的jpa实现
  • Spring oxm:Spring对于object/xml映射的支持,可以让JAVA与XML之间来回切换
  • Spring test:对JUNIT等测试框架的简单封装
  • Spring tx:为JDBC、Hibernate、JDO、JPA等提供的一致的声明式和编程式事务管理。
  • Spring web:包含Web应用开发时,用到Spring框架时所需的核心类,包括自动载入WebApplicationContext特性的类、Struts与JSF集成类、文件上传的支持类、Filter类和大量工具辅助类。
  • Spring webmvc:包含SpringMVC框架相关的所有类

3、Spring 框架组成

Spring 是个轻量级的框架,但是它的功能却很庞大,String 框架的所有组成如图所示。

二、Spring 优点

  • 低侵入式设计
  • 独立于各种应用服务器
  • 依赖注入特性将组件关系透明化,降低了耦合度
  • 面向切面编程特性允许将通用任务进行集中式处理
  • 与第三方框架的良好整合

三、Spring 两大核心技术

  • 控制反转(IoC:Inversion of Control ) /依赖
    注入(DI:Dependency Injection )
  • 面向切面编程(AOP:Aspect Oriented Programming)

四、Hello Spring

1、导入jar包,代码如下:

<!-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc -->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-webmvc</artifactId>
    <version>4.3.9.RELEASE</version>
</dependency>

2、在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、在resources包下编写Spring的配置文件,代码如下:

<?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="pojo.Hello">
        <property name="name" value="Spring"/>
    </bean>

    <!--bean就是一个java对象,由Spring管理和创建-->
    <bean id="hello2" class="pojo.Hello">
        <property name="name" value="WestOS"/>
    </bean>

    <!--// Hello hello2 = new Hello();-->
    <!--// hello2.setName (WestOS)-->

</beans>

4、在test包下编写测试类,代码如下:

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("hello2");

        hello.show();

    }
}

五、思考

Hello对象是如何创建的?

  • Hello对象是由Spring创建的

  • beans.xml ——> 管理bean,Java对象,Spring就像一个容器,存放了许多的对象

    • 解析配置文件
    • 通过反射创建对象并设置值

Hello对象的属性是如何设置的?

  • Hello对象的属性是由Spring容器设置的

这个过程就叫控制反转:IOC

  • 控制:谁来控制对象的创建?

    原来:程序猿来控制
    使用Spring后:Spring来控制

  • 反转:程序本身不创建对象了,编程被动接收对象
    依赖注入,DI:本质就是利用set方式来注入的
    IOC是一种编程思想,由主动的编程转到被动的接收

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
全栈工程师
手记
粉丝
0
获赞与收藏
5

关注作者,订阅最新文章

阅读免费教程

  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消