当前位置: 首页 > news >正文

ssm框架之Spring

Spring框架介绍

Spring框架是一个轻量级的企业级应用框架
通过它可以贯穿表现层、业务层、持久层。集成方便,简单易用,具有如下特点:
在这里插入图片描述

Spring框架特色

Spring设计理念
是面向Bean的编程
Spring两大核心技术
控制反转(IoC:Inversion of Control)/依赖注入(DI:Dependency Injection)
面向切面编程(AOP:Aspect Oriented Programming)
在这里插入图片描述

在这里插入图片描述

如何使用spring

第一步,引入依赖

Spring的核心依赖为spring-context,我们在pom.xml中引入如下依赖。

<dependency>
     <groupId>org.springframework</groupId>
     <artifactId>spring-context</artifactId>
     <version>6.2.0</version>
 </dependency>
第二步,添加配置文件

在resources目录下,添加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"
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:aop="http://www.springframework.org/schema/aop"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
           http://www.springframework.org/schema/beans/spring-beans.xsd
           http://www.springframework.org/schema/context
           https://www.springframework.org/schema/context/spring-context.xsd
           http://www.springframework.org/schema/aop
           http://www.springframework.org/schema/aop/spring-aop.xsd">

    <bean id="card" class="com.entity.Card">
        <property name="id" value="1"/>
        <property name="desc" value="学生卡"/>
    </bean>

</beans>

如上配置,我们需要在com.entity包下,创建类Card,该类有id和desc两个属性,内容如下:

package com.entity;
public class Card {
    private String id;
    private String desc;
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public Card(String desc, String id) {
        this.desc = desc;
        this.id = id;
    }
    public Card() {
    }
    public String getDesc() {
        return desc;
    }
    public void setDesc(String desc) {
        this.desc = desc;
    }
    public String getId() {
        return id;
    }
    public void setId(String id) {
        this.id = id;
    }
}

第三步,编写测试代码

随便找一个包下,创建Test类,在Test类中编写main方法,代码如下:

public class Test {
    public static void main(String[] args)  {
        //加载spring配置
        ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");

        Card card = (Card) context.getBean("card");
        
    }
}

如此,我们就使用spring启动了代码,并使用了spring容器获取了Card对象。

控制反转和依赖注入

在没有spring之前,用户模块业务层调用数据层用户模块业务层与数据层高度耦合,怎么解决?
原因:
在这里插入图片描述
在这里插入图片描述
上次的例子就用到了控制反转和依赖注入
控制反转:创建对象的控制权转移,是一种程序设计思想
依赖注入:将依赖的对象注入到需要的类中去,是"控制反转"设计思想的具体实现方式

实例化bean的方式

在这里插入图片描述

注入方式

注入方式常用的有构造方式注入和setter方式注入,例子如下:
在这里插入图片描述

不同数据类型注入

spring支持不同数据类型的注入,具体如下:
在这里插入图片描述
示例如下:

<bean id="card" class="com.dts.entity.Card">
        <property name="id" value="1"/>
        <property name="desc" value="学生卡"/>
        <constructor-arg index="0" value="张三的学生卡"/>
        <property name="list">
            <list>
                <value></value>
                <null/>
                <value>李四</value>
            </list>
        </property>
        <property name="map">
            <map>
                <entry key="1" value="张三"/>
                <entry key="2" value="李四"/>
            </map>
        </property>
    </bean>

    <bean id="student" class="com.dts.entity.Student">
        <property name="card" ref="card"/>
        <property name="id" value="1"/>
        <property name="name" value="张三"/>
    </bean>

如此,我们就了解了spring的最基础用法,可以通过spring开发简单的程序。

相关文章:

  • 盐城seo网站优化软件站长之家官网入口
  • 福州定制网站建设收录好的网站有哪些
  • 在菲做平台网站百度指数的网址是什么
  • 大宇网络潍坊网站建设推广引流
  • 东莞品牌型网站建设价格浙江网站推广公司
  • 南京网站制作有限公司济南seo优化公司
  • BIM/I-FGSM对抗样本生成算法实现(pytorch版)
  • Java-01-源码篇-JUC并发编程-常用类
  • 并查集基础模板(java实现)
  • 【力扣hot100题】(019)旋转图像
  • Kubernetes深度解析:云原生时代的容器编排引擎
  • 树莓派5从零开发至脱机脚本运行教程——8.设置静态IP地址篇
  • 【行测】资料分析
  • XML标签格式转换为YOLO TXT格式
  • 通义千问Qwen2.5-Omni:全模态实时交互的下一代多模态大模型
  • 小蓝和钥匙
  • 机器学习stats_linregress
  • Spring Boot 与 Spring Integration 整合教程
  • SQLiteBrowser 的详细说明,内容结构清晰,涵盖核心功能、使用场景及实用技巧
  • skynet中跨协程异步响应的场景
  • k8s污点与容忍
  • golang 的io与os包中的常用方法
  • 5G网络中A端口和Z端口
  • javaSE————文件IO(2)、
  • 【LeetCode 题解】算法:29.两数相除
  • WordPress.com搭建网站指南