zoukankan      html  css  js  c++  java
  • Spring介绍

    Spring简介

    说明

    一个Java应用层程序,是由许多个类组成的,这些类之间必然存在依赖关系,当项目越来越大,依赖关系越来越复杂,需要一个专业的框架来处理类之间的依赖关系,为了解决这个问题,SUN公司推出了EJB(重量级)专门用来解决类的依赖问题。

    Spring(Spring Framework) 是一个开源框架,最早由Rod Johnson创建,并在《Expert One-on-One:J2EE Design and Development》这本著作中进行了介绍。Spring是为了解决企业级应用开发的复杂性而创建的,使用Spring可以让简单的JavaBean实现之前只有EJB才能完成的事情。但Spring不仅仅局限于服务器端开发,任何Java应用都能在简单性、可测试性和松耦合等方面从Spring中获益。

    bean的各种名称……虽然Spring用bean或者JavaBean来表示应用组件,但并不意味着Spring组
    件必须要遵循JavaBean规范。一个Spring组件可以是任何形式的POJO(POJO(Plain Ordinary Java Object)简单的Java对象,实际就是普通JavaBeans,是为了避免和EJB混淆所创造的简称)。

    Spring 可以做非常多的事情。但归根结底,支撑Spring的仅仅是少许的基本理念,所有的理念都可以追溯到Spring最根本的使命上:简化Java开发。这是一个郑重的承诺。许多框架都声称在某些方面做了简化,但Spring的目标是致力于全方位的简化Java开发。这势必引出更多的解释,Spring是如何简化Java开发的?

    为了降低Java开发的复杂性,Spring采取了以下4种关键策略:

    • 基于POJO的轻量级和最小侵入式编程;
    • 通过控制反转和依赖注入以及面向接口实现松耦合;
    • 基于切面和惯例进行声明式编程;
    • 通过切面和模板减少样板式代码。
      几乎Spring所做的任何事情都可以追溯到上述的一条或多条策略。
    1. Spring的各种注入方式
    2. IOC/DI
    3. AOP(事务)
    4. JdbcTemplate
    5. 事务

    Spring4和5的区别说明

    spring4新特性 spring5新特性
    删除了废弃的包和方法 JDK基线更新至JDK8
    支持部分JDK8 新特性 修订核心框架部分功能
    支持JDK7 支持Kotlin语言
    响应式编程模型
    支持Junit5

    环境准备

    jar包

    官网jar下载地址
    说明

    版本说明

    常见版本号说明

    软件版本号:2.0.2.RELEASE

    	2:主版本号。当功能模块有较大更新或者整体架构发生变化时,主版本号会更新
    	0:次版本号。次版本表示只是局部的一些变动。
    	2:修改版本号。一般是 bug 的修复或者是小的变动
    	**RELEASE**:希腊字母版本号。次版本号用户标注当前版本的软件处于哪个开发阶段
    
    版本号 说明
    Base 设计阶段。只有相应的设计没有具体的功能实现。
    Alpha 软件的初级版本。存在较多的 bug
    Bate 表示相对 alpha 有了很大的进步,消除了严重的 bug,还存在一些潜在的 bug。
    Release 该版本表示最终版。

    在这里插入图片描述

    jar包说明

    在这里插入图片描述
    jar包类型说明

    常用jar包说明在这里插入图片描述在这里插入图片描述

    Bean的配置 IOC

    1. IoC控制反转(IoC,Inversion of Control)
      是一个概念,是一种思想。控制反转就是一个概念,是一种思想。控制反转就
      是对对象控制权的转移,从程序代码本身反转到了外部容器。把对象的创建、初始化、
      销毁等工作交给spring容器来做。由spring容器控制对象的生命周期。
    2. DI依赖注入:Dependency Injection
      依赖注入DI是指程序运行过程中,若需要调用另
      一个对象协助时,无须在代码中创建被调用者,而是依赖于外部容器,由外部容器创
      建后传递给程序。
      依赖注入是目前最优秀的解耦方式。依赖注入让Spring的Bean之间以配置文件的方式
      组织在一起,而不是以硬编码的方式耦合在一起的。
    3. IoC与DI的关系
      IoC是一个概念,是一种思想,其实现方式多种多样。当前比较流行的实现方式之一
      是DI。

    XML配置

    创建一个Spring工程:

    • 添加Spring相关依赖:
      在这里插入图片描述
    • 添加日志依赖:
      Spring中默认采用了Apache Commons Logging作为日志框架,因此需要加入这个jar
      下载链接
      在这里插入图片描述 在这里插入图片描述
    • 选中所有的jar,右键单击,选择add as Library
      在这里插入图片描述

    普通构造注入

    1. 创建Spring工程
    2. 创建Spring的XML配置文件applicationContext.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">
       </beans>
      
    3. 在Spring的配置文件中声明User 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">
       	<!-- 在容器中注册UserBean -->
       	<bean class="com.dpb.javabean.UserBean" id="userBean"></bean>
       </beans>
      

    所谓的声明,就是将自己的信息告诉Spring容器,例如id和class,Spring容器根据class,通过反射(默认使用的是无参构造方法)就可以创建一个名为user1的User对象。

    1. 初始化容器
    public static void main(String[] args) {
       	//初始化Spring容器,当Spring容器初始化时,会自动加载配置文件,然后根据配置文件中的内容初始化Bean
       	ApplicationContext ac = 
       			new ClassPathXmlApplicationContext("application.xml");
       }
    

    在这里插入图片描述
    5. 初识化Spring容器之后,可以看到User已经被创建出来了。
    注意:上面这种初始化方式,要求User必须有一个无参构造方法,如果没有无参构造方法,会抛出如下异常:
    在这里插入图片描述
    6.通过调用容器中的getBean方法可以获取Spring容器中的对象

    public static void main(String[] args) {
    		//初始化Spring容器,当Spring容器初始化时,会自动加载配置文件,然后根据配置文件中的内容初始化Bean
    		ApplicationContext ac = 
    				new ClassPathXmlApplicationContext("application.xml");
    		// 去Spring容器中获取一个UserBean对象
    		UserBean user = ac.getBean("userBean", UserBean.class);
    		System.out.println(user);
    	}
    

    在这里插入图片描述
    下一篇:Spring-IOC实现【01-XML配置方式】

  • 相关阅读:
    PHP中的NULL类型
    js中自定义事件,使用了jQuery
    chrome调试文章
    codeforces 633D
    hdu 1496 Equations
    poj 1286 Necklace of Beads
    poj 2154 Color
    poj 3270 Cow Sorting
    poj 1026 Cipher
    poj 2369 Permutations
  • 原文地址:https://www.cnblogs.com/dengpengbo/p/10308040.html
Copyright © 2011-2022 走看看