Spring框架的介绍和创建

目录

一、Spring介绍

 1.1、Spring框架的优势

二、Spring 框架的核心

2.1 IOC(控制反转)

2.2 AOP(面向切面编程)

2.3 Spring 中 bean 的作用域

三、 使用IDEA创建Spring

3.1 首先创建一个maven模块

3.2 然后在pom.xml文件中添加依赖

 3.3 配置spring.xml

3.4 测试类

一、Spring介绍

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

 1.1、Spring框架的优势

  1. spring ioc降低了业务对象替换的复杂性,提高解耦。
  2. spring aop可以将一些通用的如安全、事务、日志等可以分离的东西做了一个切面切入,提供了更好的复用性。
  3. spring的orm和dao提供了第三方持久层框架的良好整合,并简化了数据库访问。
  4. spring的高度可开放性,可以只使用一部分,用到哪部分的框架就使用哪一部分。

二、Spring 框架的核心

Spring 框架中的核心主要有两个,一个是IOC(控制反转),一个是AOP(面向切面编程)。

2.1 IOC(控制反转)

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

2.2 AOP(面向切面编程)

 AOP也是一种编程思想,是面向对象编程(OOP)的一种补充。面向对象编程将程序抽象成各个层次的对象,而面向切面编程是将程序抽象成各个切面。

AOP所要实现的目的是将复杂的需求分解为不同的切面,将散布在系统中的公共功能集中解决。

它的实际含义是在运行时将代码切入到类的指定方法、指定位置上,将不同方法的同一个位置抽象为一个切面对象,并对该对象进行编程。

AOP中出现的一些概念

  • 通知(Advice): AOP 框架中的增强处理。通知描述了切面何时执行以及如何执行增强处理。
  • 连接点(join point): 连接点表示应用执行过程中能够插入切面的一个点,这个点可以是方法的调用、异常的抛出。在 Spring AOP 中,连接点总是方法的调用。
  • 切点(PointCut): 可以插入增强处理的连接点。
  • 切面(Aspect): 切面是通知和切点的结合。
  • 引入(Introduction):引入允许我们向现有的类添加新的方法或者属性。
  • 织入(Weaving): 将增强处理添加到目标对象中,并创建一个被增强的对象,这个过程就是织入。

2.3 Spring 中 bean 的作用域

  • singleton : 唯一 bean 实例,Spring 中的 bean 默认都是单例的。
  • prototype : 每次请求都会创建一个新的 bean 实例。
  • request : 每一次HTTP请求都会产生一个新的bean,该bean仅在当前HTTP request内有效。
  • session : 每一次HTTP请求都会产生一个新的 bean,该bean仅在当前 HTTP session 内有效。

三、 使用IDEA创建Spring

3.1 首先创建一个maven模块

3.2 然后在pom.xml文件中添加依赖

       <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>5.2.5.RELEASE</version>
       </dependency>
    <!-- junit -->
      <dependency>
          <groupId>org.junit.jupiter</groupId>
           <artifactId>junit-jupiter-engine</artifactId>
            <version>5.5.2</version>
            <scope>test</scope>
      </dependency>

 3.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="com.xinxi2.bean.TsySUser" id="tsySUser"></bean>
</beans>

3.4 测试类

package test;

import com.xinxi2.bean.TsySUser;
import com.xinxi2.service.TsySUserService;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import java.util.List;

public class Test {

    @org.junit.jupiter.api.Test
    public void test01(){
        ApplicationContext ac = new ClassPathXmlApplicationContext("ApplicationContext.xml","ApplicationContext-aop.xml");
        TsySUserService tsysUserService = (TsySUserService) ac.getBean("tsySUserServiceImpl");

        List<TsySUser> list = tsysUserService.getList();
        for (TsySUser tsySUser:list){
            System.out.println(tsySUser.getRealname());
        }

    }

}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值