学习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();
}
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值