Spring框架的介绍以及搭建

1、框架和架构

1.1、什么是框架

框架就是一些类和集合的接口,通过这些类和接口完成一系列的程序实现。框架也称为开发中的半成品,可以快速的使我们完成基础业务的开发。
就好比建造一个房子,先搭建地基,再在上面搞一些个性化的设计。

1.2 架构的发展历程

在这里插入图片描述

1、单一应用框架:当网站流量很小时,只需要一个应用,将所有的功能部署在一起,以减少部署成本和节点。此时,我们只需要关注如何简化增删改查工作量的数据访问框架(ORM)是关键。
2、垂直应用框架:当访问量逐渐增大,单一应用增加机器带来的加速效果越来越小时,提高效率的方法之一是将整个应用拆成互不相干的几个应用,以提高效率,此时,用于加速前端页面开发的Web框架(MVC)是关键。
3、分布式服务架构:当垂直应用越来越多,应用之间交互不可避免,将核心业务抽取出来,作为独立的服务,逐渐形成稳定的服务中心,使前端应用能够快速响应多变的市场需求。此时,用于提高业务复用及整合的分布式服务框架(RPC)是关键。
4、流动计算框架:当服务越来越多,小服务资源的浪费问题逐渐显现,此时需要增加一个调度中心基于访问压力实时管理集群容量,提高集群利用率。此时,用于提高机器利用率的资源调度和治理中心(SOA)是关键。

2、Spring

简介:Spring是一个轻量级的开发框架,目的是为了解决企业级应用开发的业务逻辑层和其他层之间的耦合问题。为开发Java程序提供了全面的基础框架支持,Spring负责基础架构,程序员负责专门的应用开发,不需要关注框架的底层具体实现。
注:Spring最重要的两个核心特性,一个是依赖注入(DI,也叫IOC(控制反转)),一个是面向切面编程(AOP)。

2.1、Spring框架的优势

1、Spring通过提供DI,AOP模板式的样式简化了我们的应用级开发。
2、Spring有一个庞大的生态圈,Spring在web、移动开发、云服务器等都有很好的表现。
3、开发spring时,不需要去强行的实现某个接口,或者继承某个类,是一种低侵入式涉及,代码污染极低(代码和框架没有强耦合的关系)。
4、独立于各种应用服务器,可以实现Write One,Run AnyWhere。
5、spring ioc降低了业务对象替换的复杂性,提高解耦。
6、spring aop可以将一些通用的如安全、事务、日志等可以分离的东西做了一个切面切入,提供了更好的复用性。
7、spring的orm和dao提供了第三方持久层框架的良好整合,并简化了数据库访问。
8、spring的高度可开放性,可以只使用一部分,用到哪部分的框架就使用哪一部分。

3、IOC

3.1、什么是IOC

IOC是一种设计思想,在Java开发中,将你设计好的对象交给容器控制,而不是显示的用代码进行容器的创建。
把创建和查找对象的控制权交给IOC,由IOC容器进行注入、对象组合之间的关系。这样对象与对象之间是松耦合,对象可复用(减少对象的创建和内存消耗),使得程序的整个体系结构可维护性、灵活性、扩展性高。
所谓IOC,就是由Spring来进行对象的创建、管理和装配。

4、Maven

maven简介在这里

4、搭建Spring

4.1、基于导入jar包和xml配置

1、导入响应的jar包

在这里插入图片描述
2、配置xml

<!-- spring.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">
    <bean class="dao.impl.UserDaoImpl" id="userDao"/>
    <bean class="service.impl.UserServiceImpl" id="userService">
        <property name="dao" ref="userDao"></property>
    </bean>
</beans>

知识点:

// UserServiceImpl
package service.impl;

import dao.IUserDao;
import service.IUserService;

public class UserServiceImpl implements IUserService {

    // 调用数据访问层去查询数据库的数据
    IUserDao dao;

    @Override
    public void getUser() {
        dao.getUser();
    }

    public IUserDao getDao() {
        return dao;
    }

    public void setDao(IUserDao dao) {
        this.dao = dao;
    }
}

UserServiceImpl类里面写了dao的get和set方法,相当于是需要在spring中去注入响应的dao实现类。

4.2、基于maven和xml配置

4.2.1、本地搭建一个maven

4.2.2、创建一个基于Maven的项目

1、Idea新建一个基于Maven的Java项目
2、给pom文件引入依赖

<dependencies>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>5.2.6.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>RELEASE</version>
        <scope>test</scope>
    </dependency>
</dependencies>

4.2.3、配置spring.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">

    <bean class="cn.ale.beans.User" id="user"></bean>
</beans>

4.2.4、测试类

package test;

import cn.ale.beans.User;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class IocTest {
    @Test
    public void Test01(){
        ApplicationContext ioc = new ClassPathXmlApplicationContext("springIoc.xml");

        User user = ioc.getBean(User.class);

        System.out.println(user.toString());

    }
}
  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值