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

简介: 【Spring】(一)Spring入门&Hello Spring

文章目录


一、Spring 简介

1、Spring 概述

2、Spring Framework 下载

3、Spring 框架组成


二、Spring 优点

三、Spring 两大核心技术

四、Hello 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 框架的所有组成如图所示。


image.png


二、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是一种编程思想,由主动的编程转到被动的接收


目录
相关文章
|
4月前
|
XML Java 测试技术
Spring5入门到实战------17、Spring5新功能 --Nullable注解和函数式注册对象。整合JUnit5单元测试框架
这篇文章介绍了Spring5框架的三个新特性:支持@Nullable注解以明确方法返回、参数和属性值可以为空;引入函数式风格的GenericApplicationContext进行对象注册和管理;以及如何整合JUnit5进行单元测试,同时讨论了JUnit4与JUnit5的整合方法,并提出了关于配置文件加载的疑问。
Spring5入门到实战------17、Spring5新功能 --Nullable注解和函数式注册对象。整合JUnit5单元测试框架
|
4月前
|
Java
Spring5入门到实战------9、AOP基本概念、底层原理、JDK动态代理实现
这篇文章是Spring5框架的实战教程,深入讲解了AOP的基本概念、如何利用动态代理实现AOP,特别是通过JDK动态代理机制在不修改源代码的情况下为业务逻辑添加新功能,降低代码耦合度,并通过具体代码示例演示了JDK动态代理的实现过程。
Spring5入门到实战------9、AOP基本概念、底层原理、JDK动态代理实现
|
4月前
|
XML Java 数据格式
Spring5入门到实战------7、IOC容器-Bean管理XML方式(外部属性文件)
这篇文章是Spring5框架的实战教程,主要介绍了如何在Spring的IOC容器中通过XML配置方式使用外部属性文件来管理Bean,特别是数据库连接池的配置。文章详细讲解了创建属性文件、引入属性文件到Spring配置、以及如何使用属性占位符来引用属性文件中的值。
Spring5入门到实战------7、IOC容器-Bean管理XML方式(外部属性文件)
|
2月前
|
Java API Spring
springboot学习七:Spring Boot2.x 拦截器基础入门&实战项目场景实现
这篇文章是关于Spring Boot 2.x中拦截器的入门教程和实战项目场景实现的详细指南。
28 0
springboot学习七:Spring Boot2.x 拦截器基础入门&实战项目场景实现
|
2月前
|
Java API Spring
springboot学习六:Spring Boot2.x 过滤器基础入门&实战项目场景实现
这篇文章是关于Spring Boot 2.x中过滤器的基础知识和实战项目应用的教程。
28 0
springboot学习六:Spring Boot2.x 过滤器基础入门&实战项目场景实现
|
4月前
|
Java 数据库连接 Spring
后端框架入门超详细 三部曲 Spring 、SpringMVC、Mybatis、SSM框架整合案例 【爆肝整理五万字】
文章是关于Spring、SpringMVC、Mybatis三个后端框架的超详细入门教程,包括基础知识讲解、代码案例及SSM框架整合的实战应用,旨在帮助读者全面理解并掌握这些框架的使用。
后端框架入门超详细 三部曲 Spring 、SpringMVC、Mybatis、SSM框架整合案例 【爆肝整理五万字】
|
4月前
|
NoSQL Java Redis
Redis6入门到实战------ 八、Redis与Spring Boot整合
这篇文章详细介绍了如何在Spring Boot项目中整合Redis,包括在`pom.xml`中添加依赖、配置`application.properties`文件、创建配置类以及编写测试类来验证Redis的连接和基本操作。
Redis6入门到实战------ 八、Redis与Spring Boot整合
|
4月前
|
SQL 数据库
Spring5入门到实战------13、使用JdbcTemplate操作数据库(批量增删改)。具体代码+讲解 【下篇】
这篇文章是Spring5框架的实战教程,深入讲解了如何使用JdbcTemplate进行数据库的批量操作,包括批量添加、批量修改和批量删除的具体代码实现和测试过程,并通过完整的项目案例展示了如何在实际开发中应用这些技术。
Spring5入门到实战------13、使用JdbcTemplate操作数据库(批量增删改)。具体代码+讲解 【下篇】
|
4月前
|
XML Java 数据格式
Spring5入门到实战------11、使用XML方式实现AOP切面编程。具体代码+讲解
这篇文章是Spring5框架的AOP切面编程教程,通过XML配置方式,详细讲解了如何创建被增强类和增强类,如何在Spring配置文件中定义切入点和切面,以及如何将增强逻辑应用到具体方法上。文章通过具体的代码示例和测试结果,展示了使用XML配置实现AOP的过程,并强调了虽然注解开发更为便捷,但掌握XML配置也是非常重要的。
Spring5入门到实战------11、使用XML方式实现AOP切面编程。具体代码+讲解
|
4月前
|
XML Java 数据格式
Spring5入门到实战------6、IOC容器-Bean管理XML方式(自动装配)
这篇文章是Spring5框架的入门教程,详细讲解了IOC容器中Bean的自动装配机制,包括手动装配、`byName`和`byType`两种自动装配方式,并通过XML配置文件和Java代码示例展示了如何在Spring中实现自动装配。
Spring5入门到实战------6、IOC容器-Bean管理XML方式(自动装配)