SSM框架系列——Spring概述,快速开始

 2023-02-03
原文作者:白嫖圣手fly 原文地址:https://juejin.cn/post/7088524069749915678

本文已参与「新人创作礼」活动,一起开启掘金创作之路

SSM框架系列——Spring概述,快速开始

Spring概述

Spring是分层的Java SE/EE应用full-stack轻量级开源框架,以loC( Inverse Of Control :反转控制)和AOP ( Aspect Oriented Programming :面向切面编程)为内核。 提供了展现层SpringMVC和持久层Spring JDBCTemplate 以及业务层事务管理等众多的企业级应用技术,还能整合开源世界众多著名的第三方框架和类库,逐渐成为使用最多的JavaEE企业应用开源框架。

优点

  1. 方便解耦,简化开发 通过Spring提供的loC容器,可以将对象间的依赖关系交由Spring进行控制,避免硬编码所造成的过度耦合。用户也不必再为单例模式类、属性文件解析等这些很底层的需求编写代码,可以更专注于上层的应用。
  2. AOP编程的支持 通过Spring的AOP功能,方便进行面向切面编程,许多不容易用传统OOP实现的功能可以通过AOP轻松实现。
  3. 声明式事务的支持 可以将我们从单调烦闷的事务管理代码中解脱出来,通过声明式方式灵活的进行事务管理,提高发效率和质星。
  4. 方便程序的测试 可以用非容器依赖的编程方式进行几乎所有的测试工作,测试不再是昂贵的操作,而是随手可做的事情。
  5. 方便集成各种优秀框架 Spring对各种优秀框架(Struts、Hibernate、Hessian、Quartz等)的支持。
  6. 降低JavaEE API的使用难度 Spring对JavaEE API (如JDBC、JavaMail、远程调用等)进行了薄薄的封装层,使这些API的使用难度大为降低
  7. Java源码是经典学习范例 Spring的源代码设计精妙、结构清晰、匠心独用,处处体现着大师对Java设计模式灵活运用以及对Java技术的高深造诣。它的源代码无意是Java技术的最佳实践的范例。

看老图了

202301012026011421.png

quickStart

步骤

  1. 导入Spring开发的基本包坐标
  2. 编写Dao接口和实现类
  3. 创建Spring核心配置文件
  4. 在Spring配置文件中配置
  5. UserDaolmpl使用Spring的API获得 Bean 实例

构建一个Java项目

202301012026016822.png

202301012026021113.png

修改pom.xml添加jar依赖

添加以下依赖,并刷新maven

     <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-context</artifactId>
                <version>5.2.9.RELEASE</version>
            </dependency>

202301012026025684.png

构建项目目录

202301012026032425.png

编写测试类和接口

UserDao

    package com.example.dao;
    
    public interface UserDao {
        
        void show();
    }

UserDaoImpl

    package com.example.dao.impl;
    
    import com.example.dao.UserDao;
    
    public class UserDaoImpl implements UserDao {
        @Override
        public void show() {
            System.out.println("UserDaoImpl!");
        }
    }

创建applicationContext.xml及配置bean

202301012026041996.png

    <?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 id="userDao" class="com.example.dao.impl.UserDaoImpl"></bean>
    </beans>

编写系统启动类Application

    package com.example;
    
    import com.example.dao.UserDao;
    import org.springframework.context.ApplicationContext;
    import org.springframework.context.support.ClassPathXmlApplicationContext;
    
    public class Applictaion {
        public static void main(String[] args) {
        //获取配置文件信息
            ApplicationContext app = new ClassPathXmlApplicationContext("applicationContext.xml");
            UserDao userDao = (UserDao) app.getBean("userDao");
            userDao.show();
        }
    }

对于bean的理解

我们可以把Bean看作为一个容器 简而言之是一个大盒子(大盒子就是这个项目),这个盒子里有很多的小盒子,这些小盒子就是我们编写的类,我们用一张藏宝图来记录小盒子的名字,位置等信息这就是applicationContext.xml要干的事情,而我们只需要拿到藏宝图(ApplicationContext app = new ClassPathXmlApplicationContext("applicationContext.xml");) 就能得到小盒子(app.getBean("userDao");)使用小盒子里的宝藏(调用方法等)