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

四【Spring框架】

目录

    • 一 Spring概述
    • 二 .Spring 的体系结构
    • 三 Spring的开发环境
      • 3.1 配置pom.xml文件
    • 四 项目案例:
      • 4.1 创建实体类
      • 4.2 在pom.xml中引入依赖
      • 4.3 配置Spring-config.xml文件
      • 4.4 Test

✅作者简介:Java-小白后端开发者 🥭公认外号:球场上的黑曼巴

🍎个人主页:不会飞的小飞侠24

🍊个人信条:谨 · 信

💞当前专栏:高级内容

🥭本文内容:JAVA -----mybatis框架【mybatis的批量删除 】

更多内容点击👇
小飞侠的博客>>>>欢迎大家!!!

在这里插入图片描述

一 Spring概述

1.1 Spring是为了解决企业应用开发的复杂性而创建的一个轻量级的Java开发框架。Spring的核心是控制反转(IoC)和面向切面编程(AOP)。传统的Java程序,类与类之间存在较强的依赖关系,增加了程序开发的难度,开发某一个类的时候还要考虑对另一个类的影响,一个类的修改往往导致另一个类不得不跟着要修改,程序可维护性和可拓展性变差。使用Spring可以降低代码间的依赖程度(耦合度),为代码“解耦”,提高程序的可拓展性、可复用性和可维护性,使主业务专注于自身的开发。

1.2 Spring降低耦合度的方式有两种:IoC 与 AOP。IoC 是控制反转的意思,它的作用是使得主业务在相互调用过程中,不用再自己维护关系,即无须自己创建要使用的对象了,而是由Spring容器统一管理,自动“注入”。AOP是面向切面编程的意思, AOP技术不用再由程序员用硬编码的方式将系统级服务“混杂”到主业务逻辑中了,而是由Spring 容器统一完成“织入”。

1.3 Spring还提供对其他框架的支持,可以支持MyBatis,Hibernate,struts等框架,简化这些框架使用,通过整合使它们高效地协同工作。

二 .Spring 的体系结构

Spring 有七大功能模块,分别是Spring Core、AOP、ORM、DAO、MVC、WEB和Context。 Spring体系架构如图4.1所示。
在这里插入图片描述

1.core模块:Spring的核心库 提供Ioc 功能。

2.Aop模块:Spring的AOP库.提供AOP的拦截器机制。

3.ORm模块:提供对ORM框架的支持和管理。

4.DAO模块:提供对JDBC的支持,并进行封装,并支持和管理事务。

5.MVC模块:提供MVC的支持 更加简单和方便。

6.Web模块:提供对常见的框架支持。

7.Context :提供Bean的访问方式,其他程序可通过Context访问Spring的Bean资源。

三 Spring的开发环境

3.1 配置pom.xml文件

之所以引入Spring-context.jar 只因为在依赖此jar包时,会依赖其他三个,即 自动下载相关依赖–可查看受否成功

 <!--引入spring的依赖--><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>5.3.9</version></dependency>

11

四 项目案例:

之前大家在一个类中调用另一个类都是在本类中先new一个要调用的另一个类对象,再调用其方法,这次用spring实现一个类中不new 另一个类的对象也能调用到另一个类。

4.1 创建实体类

package cn.kgc.spring01.entity;import lombok.Data;@Data
public class User {private String username;private Integer id;public User(){System.out.println("user()");}public User(Integer id) {System.out.println("User(String username, Integer id)");this.username = username;this.id = id;}public User(String username, Integer id) {System.out.println("User(String username, Integer id)");this.username = username;this.id = id;}
}

4.2 在pom.xml中引入依赖

<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>cn.kgc.spring01</groupId><artifactId>spring01</artifactId><version>1.0-SNAPSHOT</version><name>spring01</name><!-- FIXME change it to the project's website --><url>http://www.example.com</url><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><maven.compiler.source>1.8</maven.compiler.source><maven.compiler.target>1.8</maven.compiler.target></properties><dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.11</version><scope>test</scope></dependency><!--引入spring的依赖--><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>5.3.9</version></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.24</version></dependency></dependencies>
</project>

4.3 配置Spring-config.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/beanshttp://www.springframework.org/schema/beans/spring-beans.xsd">
<!--声明需要托管的对象--><!--通过构造方法完成对象初始化 需要提供对应的构造方法--><bean id="user"  class="cn.kgc.spring01.entity.User"><constructor-arg name="id" value="1"></constructor-arg><constructor-arg name="username" value="jack"></constructor-arg></bean>
</beans>

4.4 Test

public void test03() {ApplicationContext ac = new ClassPathXmlApplicationContext("spring-config.xml");User user = ac.getBean("user", User.class);System.out.println("user = " + user);}

在这里插入图片描述

http://www.lryc.cn/news/8921.html

相关文章:

  • 树与二叉树 总复习
  • window10安装MySQL数据库
  • 羊了个羊游戏开发教程3:卡牌拾取和消除
  • SHA1详解
  • Go并发介绍及其使用
  • 小米手机屏幕解锁技巧精选
  • 「SDOI2009」HH去散步
  • 用上Visual Studio后,我的世界游戏的构建时间减少了一半
  • 34、基于51单片机锂电池电压电流容量检测仪表LCD液晶显示 原理图PCB程序设计
  • 【Java基础】泛型(一)-基础使用
  • 学Python不会不知道NumPy计算包吧,带你五分钟看懂NumPy计算包
  • 积水内涝监测——埋入式积水终端设备介绍
  • Kafka的日志同步
  • 【Mybatis源码解析】mapper实例化及执行流程源码分析
  • 分布式文件管理系统(MinIO)
  • Springcloud-配置中心config
  • [项目篇] 音乐播放器开发报告
  • Spring Cloud Alibaba--gateway微服务详解之网关(二)
  • Zynq非VDMA方案实现视频3帧缓存输出,无需SDK配置,提供工程源码和技术支持
  • 血液透析过滤芯气密性检测装置中的高精度多段压力控制解决方案
  • PDF加密如何批量解除?快来了解下这个方法
  • C++——哈希4|布隆过滤器
  • python冒号的用法总结
  • 面试题整理
  • C语言深度解剖-关键字(7)
  • 利用JavaScript编写Python内置函数查询工具
  • 【MySQL进阶】SQL优化
  • 最新版海豚调度dolphinscheduler-3.1.3配置windows本地开发环境
  • csv文件完整操作总结
  • 时间序列预测--基于CNN的股价预测(Matlab代码实现)