SpringIOC学习后的简单总结

提示:文章写完后,目录可以自动生成,如何生成可参考右边

目录

文章目录

前言

一、什么是Spring

二、Spring框架的优势

三、SpringIOC机制的详解

IOC作用总结

SpringIOC机制的详解

一、先构建maven工程,添加依赖

二、创建持久层和实现类

三、创建业务层和实现类

四、在resources文件夹中创建一个任意名称的xml文件的

五、测试类

总结


前言

通过这几天的学习与了解,对spring框架有了一些基本的认识,写这篇博客的目的是为了对学习内容的一个总结


提示:以下是本篇文章正文内容,下面案例可供参考

一、什么是Spring

Spring是一个分层的Java SE/EE(web) full-stack(一站式)轻量级开源框架,以 IOC(Inverse Of Control:反转控制)和 AOP(Aspect Oriented Programming:面向切面编程)为内核。

一站式: Spring可以提供任何javaEE方向的开发支持。

轻量级: 当前的框架对硬件的要求不高,容易上手,容易使用

开源: 免费 开放源代码

无缝链接: 整合我们目前市面上使用javaEE开发技术(熔炉,融化各种形状和材质的铁块)

在java三层架构当中分别提供了相应技术:

表现层(web层) :SpringMVC (框架)

业务层(service层) :Bean管理(IOC容器)

持久层(dao层) :JdbcTemplate模板对象以及提供了ORM模块整合其他优秀的持久层技术

二、Spring框架的优势


方便解耦,简化开发 : Spring 就是一个大工厂,可以管理所有对象的创建和依赖关系维护,交给Spring管理

AOP 编程的支持 :可以方便的实现对程序进行权限拦截,日志记录,运行的监控

声明式事务的支持 :通过配置方式完成对事务的管理,无需手动编程

方便程序的测试 :对Junit支持,可以通过注解方便的对Spring程序进行测试

整合外部优秀技术 : Spring内部提供了对各种优秀框架(Hibernate,Mybatis,Quartz等)的直接支持

javaEE技术的封装 :Spring对javaEE开发当中复杂难用的API(JavaEmail, RMI等)进行封装,降低了这些API的使用难度

三、SpringIOC机制的详解


SpringIOC:书籍一般翻译为控制反转、控制倒置等

控制:Spring提供了一个容器用于控制java开发中的对象

反转的含义:程序本身不创建对象,而变成被动的接收对象

1996 年,Michael Mattson 在一篇有关探讨面向对象框架的文章中,首先提出了 IOC 这个概念。简单来说就是把复杂系统分解成相互合作的对象,这些对象类通过封装以后,内部实现对外部是透明的,从而降低了解决问题的复杂度,而且可以灵活地被重用和扩展。

 

由于引入了中间的IOC容器,所以使得A、B、C、D四个对象没有直接耦合关系,四个齿轮的转动全部依靠中间的IOC容器来进行,所以很多人把IOC容器看作粘合剂。

IOC作用总结

IOC本质上就是一个大工程,大容器。主要作用就是创建和管理对象的依赖关系,削减计算机程序的耦合(解除我们代码中的依赖关系),提高程序的可扩展性和可维护性。

SpringIOC机制的详解


一、先构建maven工程,添加依赖

     <properties>
        <spring.version>5.2.5.RELEASE</spring.version>
    </properties>
    <!--导入spring的context坐标,context依赖core、beans、expression aop-->
    <dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>${spring.version}</version>
        </dependency>
    </dependencies>

二、创建持久层和实现类

//UserMapper接口
package com.ujiuye.mapper;

public interface UserMapper {
    void getUser();
}

//UserMapperImpl实现类

public class UserMapperImpl implements UserMapper{
    public void getUser(){
        System.out.println("默认获取用户的数据");
    }
}

三、创建业务层和实现类

 

//UserService接口
import com.ujiuye.mapper.UserMapper;

public interface UserService {
    void getUser();
    void setUserMapper(UserMapper userMapper);
}

//UserServiceImpl实现类

public class UserServiceImpl implements UserService{
    private UserMapper userMapper;
    //利用set进行动态实现值的注入
    @Override
    public void getUser() {
        userMapper.getUser();
    }
    @Override
    public void setUserMapper(UserMapper userMapper) {
        this.userMapper=userMapper;
    }
}

四、在resources文件夹中创建一个任意名称的xml文件的

 

//规范命名为applicationContext.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
        https://www.springframework.org/schema/beans/spring-beans.xsd">
<!--    使用Spring来创建对象,在Spring这些都成为Bean
        id等价于变量名
        class相对与new的对象
        property相当于给对象中的属性设置一个值
-->
    <bean name="userMapperImpl" class="com.ujiuye.mapper.UserMysqlMapperImpl"/>
    <bean name="userServiceImpl" class="com.ujiuye.service.UserServiceImpl"/>
     
</beans>

五、测试类

public class TestSpring {
    @Test
    public void test1(){
        //获取Spring的上下文对象:拿到Spring的容器
         ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
        //我们的对象现在都在Spring中管理了,我们要使用现在直接去里面取出来就可以了
        Hello hello =(Hello) context.getBean("hello");
        UserServiceImpl userService =(UserServiceImpl) context.getBean("ServiceImpl");
        userService.getUser();

    }

 

总结

萌新一枚,记录学习共同进步,写得不好勿喷heiheihei

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值