学习Spring之前必读的文章,Spring框架第0章(Spring核心+优点+体系结构+简单搭建)

Posted Lotus_dong

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了学习Spring之前必读的文章,Spring框架第0章(Spring核心+优点+体系结构+简单搭建)相关的知识,希望对你有一定的参考价值。

Spring框架

Spring是于2003年兴起的一款轻量级的Java开发框架,它是为了解决企业应用开发的复杂性而创建的。Spring使用的是基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅仅限于服务器端的开发。从简单性、可测试性和松耦合性角度而言,绝大部分Java应用都可以从Spring中受益。

Spring的核心

Spring的核心是控制反转(IOC)和面向切面编程(AOP)。Spring根据代码的功能特点,使用IOC降低业务之间的耦合度。IOC使得主业务在相互调用的过程中,不用自己创建要使用的对象,而是由Spring容器统一管理,自动“注入”(赋值)。而AOP使系统服务得到最大复用,不用我们手工将系统级服务“混杂”到主业务逻辑中了,而是由Spring容器完成“织入”。

Spring的优点

1.轻量级

Spring框架运行占用的资源校,运行效率高。Spring框架使用的jar都比较小,一般都在1M以下或几百kb,核心功能的所需jar总共再3M左右,但这种说法其实是仁者见仁智者见智,虽然核心功能的jar包小,但当我们在完整的使用Spring框架做项目时,我们所要集成的各种jar包也是相当庞大的。

2.非侵入式

编写一些业务类时不需要继承Spring特定的类,通过配置完成依赖注入后就可以使用,此时,Spring就没有侵入到我们的业务类代码中。

3.针对接口编程——解耦合

这里的耦合是指两个或两个以上的对象通过相互引用而彼此影响甚至结合的现象。Spring提供了IOC控制反转,由容器管理对象,对象的依赖关系。原来在程序代码中的对象创建方式,现在由容器完成,促进了低耦合,即对象之间解耦合。

4.AOP编程的支持

AOP(面向切面编程),许多不容易用传统OOP(面向对象编程)实现的功能都可以通过AOP轻松应付在Spring中开发人员可以从繁杂的事务管理代码中解脱出来,通过声明的方式灵活进行事务的管理,提高开发效率和质量。

5.一站式框架

Spring本身也提供了数据访问功能和web功能,以及可以很好的管理其它框架。

Spring体系结构

一幅图看懂Spring体系结构

在这里插入图片描述

Spring Hello World搭建

0.建立一个maven工程,详情见maven介绍+maven开发环境的搭建+常用maven命令

1.Pom.xml导入spring核心基础jar

<!--导入spring的相关jar包-->
<!-- spring-context -->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-context</artifactId>
    <version>5.2.2.RELEASE</version>
</dependency>

2.创建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">


</beans>

3.测试

(1)编写一个实体类User

public class User {
    private String name;
    private Integer age;

    public User() {

    }

    public User(String name, Integer age) {
        this.name = name;
        this.age = age;
    }

    public void work() {
        System.out.println(this.name+"今年"+this.age+"岁");
    }

    public String getName() {
        return name;
    }

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

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }
}

(2)在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">

    <!--关联User-->
    <bean id="user" class="com.cwd.spring1pro.bean.User"></bean>

</beans>

(3)测试test

@Test
public void test1() {
    /*读取spring的相关xml文件*/
    ApplicationContext applicationContext = new ClassPathXmlApplicationContext("spring.xml");

    /*接管User类*/
    User user = (User) applicationContext.getBean("user");

    user.setName("JIM");
    user.setAge(18);
    user.work();
}

以上是关于学习Spring之前必读的文章,Spring框架第0章(Spring核心+优点+体系结构+简单搭建)的主要内容,如果未能解决你的问题,请参考以下文章

Spring Boot学习Day01

工程师值得一看,Java Web必读

Spring MVC 框架学习---- 我的第一个 Spring MVC 程序

干货 | 3月跳槽季,Java面试必读之Spring十三问

Spring框架学习-搭建第一个Spring项目

Spring框架学习笔记 --- [在spring中初步上手实现AOP,以及对事务的初步配置使用]