Java开发框架:Spring介绍

这篇具有很好参考价值的文章主要介绍了Java开发框架:Spring介绍。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Java开发框架:Spring介绍

概述

Spring 是 Java EE 编程领域中的一个轻量级开源框架,由 Rod Johnson 在 2002 年最早提出并随后创建,目的是解决企业级编程开发中的复杂性,实现敏捷开发的应用型框架 。其中,轻量级表现在 Spring 是非侵入式的,即开发应用中的对象可以不依赖于 Spring 的 API 类。另外,Spring 针对 Java EE 的三层结构提供了不同的解决技术

  • 表现层(Web): 提供了对 Spring MVC、Struts2 等框架的整合
  • 业务层(Service): 提供了管理事务和记录日志的功能
  • 持久层(Dao): 提供了 MyBatis、Hibernate 和 JDBCTemplate 等技术的整合

Spring核心技术:IoCAOP

  • IoC(Inverse of Control,控制反转):一种设计思想,指导设计低耦合的程序。在 Spring 中提供了 IoC 容器,我们无需主动创建对象,而是由容器帮助我们创建管理对象以及处理对象之间的依赖关系。即将组件间的依赖关系从程序内部提取到外部进行管理

  • AOP(Aspect Oriented Programming,面向切面编程):通过预编译方式和运行期间动态代理实现程序功能的统一维护的一种技术。即将非业务逻辑代码(如日志、事务、权限认证等)封装到一个可重用模块,并且与业务逻辑代码分离,还能够 织入 到业务方法中,从而降低模块之间的耦合度,提高程序的可重用性,提高开发的效率

  • 注:织入指非业务逻辑代码插入到目标对象的过程

特点

Spring 具有以下特点:

  • 方便解耦,简化开发。
    通过 Spring 提供的 IoC 容器,创建对象的过程交给了 Spring 进行管理来避免硬编码所造成的过度程序耦合。同时,用户不必再为单实例模式类、属性文件解析等这些很底层的需求编写代码,可以更专注于上层的应用。
  • AOP 编程的支持。
    通过 Spring 提供的 AOP 功能,方便进行面向切面的编程,实现对程序进行权限拦截、运行监控等功能。
  • 声明式事务的支持。
    在 Spring 中,通过声明式的方式完成对事务的管理,而无须手动编程,提高开发效率和质量。
  • 方便程序的测试。
    在 Spring 中,可以用非容器依赖的编程方式进行几乎所有的测试工作。如:Spring 对 Junit4 支持,可以通过注解方便的测试 Spring 程序。
  • 方便集成各种优秀框架。
    在 Spring 中,不排斥各种优秀的开源框架和降低了各种框架的使用难度,还提供了对各种优秀框架(如Struts,Hibernate、Hessian、Quartz)等的直接支持。
  • 降低 Java EE API 的使用难度。
    在 Spring 中,对很多难用的 Java EE API(如JDBC,JavaMail,远程调用等)提供了封装,使这些 Java EE API 的使用难度大为降低。

Spring 程序

下面简单熟悉一下创建 Spring 程序的过程,相关知识后面再作讲解。( 以 JDK 16.0.2 为例 )

1.打开 IntelliJ IDEA ,依次点击 File 、New 和 Project…
Java开发框架:Spring介绍

2.点击 Maven ,直接点击 Next 。随后,根据自身习惯填写即可。
Java开发框架:Spring介绍

3.完成项目创建后,在 java 文件中创建一个 demo 包,然后分别创建 接口DemoDao 、实现接口的类DemoDaoImpl 和 测试类Demo 。

// DemoDao接口
package cn.edu.demo;

public interface DemoDao {
    public void test();
}
// DemoDaoImpl实现接口
package cn.edu.demo;

public class DemoDaoImpl implements DemoDao {
    @Override
    public void test() {
        System.out.println("Hello World");
    }
}
// Demo测试
package cn.edu.demo;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class Demo {
    public static void main(String[] args) {
        ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
        DemoDao demo = (DemoDao) applicationContext.getBean("demo");
        demo.test();
    }
}

5.在 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"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans.xsd" >

    <bean id="demo" class="cn.edu.demo.DemoDaoImpl" />

</beans>

6.项目创建完成后,在 pom.xml 文件中添加以下配置:

<dependencies>
    <!-- https://mvnrepository.com/artifact/org.springframework/spring-context -->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>5.3.25</version>
    </dependency>

    <!-- https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-core -->
    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-core</artifactId>
        <version>2.20.0</version>
    </dependency>

    <!-- https://mvnrepository.com/artifact/commons-logging/commons-logging -->
    <dependency>
        <groupId>commons-logging</groupId>
        <artifactId>commons-logging</artifactId>
        <version>1.2</version>
    </dependency>
</dependencies>

7.最后运行 Demo ,结果如图:

Java开发框架:Spring介绍

遇到的问题与解决

问题:
Exception in thread “main” java.lang.UnsupportedClassVersionError: org/springframework/context/ApplicationContext has been compiled by a more recent version of the Java Runtime (class file version 61.0), this version of the Java Runtime only recognizes class file versions up to 60.0,即 JDK 与 Spring 版本不兼容导致出现错误

注:Spring与JDK版本匹配
Spring Framework 6.0.x:JDK 17-21
Spring Framework 5.3.x:JDK 8-19
Spring Framework 4.3.x:JDK 6-8

解决:
本次使用 JDK 16.0.2 示例,所以在 pom.xml 文件中修改对应 Spring 版本即可。
Java开发框架:Spring介绍文章来源地址https://www.toymoban.com/news/detail-476740.html

到了这里,关于Java开发框架:Spring介绍的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Java Spring Boot 开发框架

    Spring Boot是一种基于Java编程语言的开发框架,它的目标是简化Java应用程序的开发过程。Spring Boot提供了一种快速、易于使用的方式来创建独立的、生产级别的Java应用程序。本文将介绍Spring Boot的特性、优势以及如何使用它来开发高效、可靠的应用程序。 Spring Boot是由Pivotal团队

    2024年02月08日
    浏览(40)
  • Java 中 Spring Boot 框架下的 Email 开发

    hutool工具包: 这个类更贴近我们的常见信息 ,用这个去构造邮箱框架的指定邮件类的构造。 邮箱格式检查: 以 yeah.net 邮箱为例(其他的邮箱也会有,举一反三) 根据指导即可,获得授权密码! 以smtp为例: 这个就是host,可以查一下,port是465(其他的服务器 port是啥,一查

    2024年04月08日
    浏览(37)
  • spring框架-概述(spring特性、生命周期)(一)

    Spring框架是一个开放源代码的J2EE应用程序框架,由Rod Johnson发起,是针对bean的生命周期进行管理的轻量级容器 ,是为了解决企业级编程开发中的复杂性,实现敏捷开发的应用型框架 IOC: (Inverse of Control ):一种思想 (容器帮我们创建对象并且管理和控制 ) 反转后不再由自己

    2024年02月10日
    浏览(26)
  • Spring AI 来了,打造Java生态大模型应用开发新框架!

    尽管 Python 长期主导 AI 大模型应用开发领域,但 Java 并未熄火!Spring AI 来了,正式告别实验期,迈向广泛应用新阶段!这意味着 Spring 生态体系的广大开发者,迎来 AI 大模型应用开发的新里程。 Spring AI 是一个 AI 工程师的应用框架,它提供了一个友好的 API 和开发 AI 应用的抽

    2024年04月12日
    浏览(39)
  • Spring框架概述及核心设计思想

    我们通常所说的 Spring 指的是 Spring Framework(Spring 框架),它是⼀个开源框架,有着活跃而庞大的社区,这就是它之所以能长久不衰的原因;Spring 支持广泛的应用场景,它可以让 Java 企业级的应用程序开发起来更简单。 用⼀句话概括 Spring: Spring 框架是包含了众多工具方法的

    2024年02月16日
    浏览(27)
  • (第六天)初识Spring框架-SSM框架的学习与应用(Spring + Spring MVC + MyBatis)-Java EE企业级应用开发学习记录

    ​ 昨天我们已经把Mybatis框架的基本知识全部学完,内容有Mybatis是一个半自动化的持久层ORM框架,深入学习编写动态SQL,Mybatis的关联映射,一对一、一对多、多对多、Mybatis的缓存机制,一二级缓存的开启和设置,缓存命中率、如何使用idea链接数据库自动生成pojo类等。我们学

    2024年02月10日
    浏览(52)
  • Java开发之框架(spring、springmvc、springboot、mybatis)【面试篇 完结版】

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 本文主要记录spring的单例bean、切面编程AOP、spring事务、循环依赖、常见注解等 提示:以下是本篇文章正文内容,下面案例可供参考 ① 问题引入 Spring框架中的bean是单例的 singleton :bean在每个Spring IOC容

    2024年02月07日
    浏览(38)
  • Java、Python、C++和C#的界面开发框架和工具的重新介绍

    好的,以下是Java、Python、C++和C#的界面开发框架和工具的重新介绍: Java界面开发: Swing: 是Java提供的一个基于组件的GUI工具包,可以创建跨平台的图形用户界面。它提供了丰富的组件和布局管理器,使得界面开发相对简单。Swing是Java AWT的继承者,支持更多的功能和外观。

    2024年02月02日
    浏览(31)
  • 【Cesium 编程第一篇】概述、环境搭建、界面介绍

    年前年后一直在面试,发现一个奇怪的现象:很多互联网公司经受住三年的疫情冲击,反而在疫情放开的那一刻撑不住了,很多大厂都在批量的裁员:美国硅谷、北京字节、迪士尼中国等等。在北京的朋友也是年后到现在一直没有找到合适的工作,当然不是他技术不行找不到

    2024年02月08日
    浏览(40)
  • SSM框架的学习与应用(Spring + Spring MVC + MyBatis)-Java EE企业级应用开发学习记录(第五天)MyBatis的注解开发

    ​ 昨天我们深入学习了 MyBatis多表之间的关联映射,了解掌握了一对一关联映射,一对多关联映射,嵌套查询方式以及嵌套结果方式,掌握了缓存机制的一级缓存,二级缓存等概念,也使用了代码进行复现理解 。但是都是基于XML配置文件的方式来实现的,现在我们要学习一下

    2024年02月11日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包