Spring5DEA版【通俗易懂】--个人笔记(一)

1、Spring

1.1 简介

  • Spring:春天---->给软件行业带来了春天!
  • 2002,首次推出了Spring框架的雏形:interface21框架!
  • Spring框架即以interface21框架为基础,经过重新设计,并不断丰富内涵,于2004年3月24日,发布了1.0正式版。
  • Rod Johnson,Spring Framework创始人,著名作者。很难想象其学历,真的让好多人大吃一惊,他是悉尼大学的博士,然而他的专业不是计算机,而是音乐学。
  • spring理念:使现有的技术更加容易使用,本身是一个大杂烩,整合了现有的技术框架。
  • SSH:Struct2+Spring+Hibernate!
  • SSM:SpringMVC+Spring+Mybatis!

官网:https://spring.io/projects/spring-framework#overview

官方下载地址:https://repo.spring.io/release/org/springframework/spring/

Github:https://github.com/spring-projects/spring-framework

Maven仓库:导入webmvc包会自动导入相关依赖;jdbc用于和Mybatis整合。

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

1.2 优点

  • Spring是一个开源的免费的框架(容器)!
  • Spring是一个轻量级的、非入侵式的框架!
  • 控制反转(IOC)、面向切面编程(AOP)!
  • 支持事务的处理,对框架整合的支持! ==总结一句话:Spring就是一个轻量级的控制反转(IOC)和面向切面编程的框架!==

1.3 组成

1.4 拓展

在Spring的官网有这个介绍:现代化的java开发!说白了就是基于Spring的开发!

Spring Boot

  • 一个快速开发的脚手架。
  • 基于Spring Boot可以快速的开发单个微服务。
  • 约定大于配置!
  • Spring Cloud
    • SpringCloud是基于SpringBoot实现的。

因为现在大多数公司都在使用SpringBoot进行快速开发,学习SpringBoot的前提,需要完全掌握Spring以及SpringMVC!承上启下的作用。

弊端:发展了太久之后,违背了原来的理念!配置十分繁琐,人称:“配置地狱”。

2、 Spring

User实体类:

image.png

applicationContest.xml文件:

存bean:

image.png

测试类:

image.png

3.Bean的自动装配:

  • 自动装配是Spring满足bean依赖的一种方式!
  • Spring会在上下文中自动寻找,并自动给bean装配属性!

在Spring中有三种装配的方式:

  1. 在xml中显式配置;
  2. 在java中显式配置;
  3. 隐式的自动装配bean

3.1 测试

三个实体类:

package cn.blackui.pojo;

public class Person {
    private  Cat cat;
    private  Dog dog;
    private  String name;

    public Cat getCat() {
        return cat;
    }

    public void setCat(Cat cat) {
        this.cat = cat;
    }

    public Dog getDog() {
        return dog;
    }

    public void setDog(Dog dog) {
        this.dog = dog;
    }

    public String getName() {
        return name;
    }

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

    @Override
    public String toString() {
        return "Person{" +
                "cat=" + cat +
                ", dog=" + dog +
                ", name='" + name + '\'' +
                '}';
    }
}



package cn.blackui.pojo;

public class Dog {
    public void sount(){
        System.out.println("wang~~~~");
    }

}



package cn.blackui.pojo;

public class Cat {
    public void sount(){
        System.out.println("miao~~~~");
    }
}

配置文件:

image.png

测试类:

image.png

更早的文章

为什么会出现Service层??

继续阅读