初识Spring:如何在Maven工程上搭建Spring框架?

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

编译软件:IntelliJ IDEA 2019.2.4 x64
操作系统:win10 x64 位 家庭版
Maven版本:apache-maven-3.6.3
Mybatis版本:3.5.6
spring版本:5.3.1



Spring系列专栏文章目录

  • 第一章:初识Spring:如何在Maven工程上搭建Spring框架?

一. 什么是Spring?

Spring 是一个开源的 Java 应用程序框架,由 Rod Johnson 在 2003 年创建。它为企业级应用程序的开发提供了全面的基础设施支持和丰富的功能特性,包括依赖注入、面向切面编程、事务管理、数据访问、Web 应用、消息传递等。

初识Spring:如何在Maven工程上搭建Spring框架?

Spring 框架具有轻量级、可扩展性强、容易使用和优秀文档等诸多优点,广泛应用于各种类型的 Java 项目中。它是目前最流行的 Java 开发框架之一,已经成为 Java 社区的标准技术之一。

简而言之,Spring是一个IOC(DI)和AOP容器框架,为简化企业级开发而生的开源框架。

什么是IOC?

IOC,英文全称为Inversion of Control【控制反转】,即将对象【万物皆对象】控制权交整个Spring

什么是DI?

DI,英文全称为Dependency Injection,即依赖注入

什么是AOP?

AOP,英文全称为Aspect Oriented Programming ,即面向切面编程

spring官网地址:https://spring.io/

使用spring获取对象前后对比:

初识Spring:如何在Maven工程上搭建Spring框架?


二. 如何搭建Spring框架?(入门案例)

步骤:

  1. 导入spring的相关jar包
  2. 编写配置文件(将对象装配到IOC中)
  3. 使用核心类库

入门案例:创建Student类,在配置文件中将该类对象stuTest装配到IOC中,设置相应属性,最后使用Spring框架其核心类库获取并打印对象stuTest的信息。

准备:建立Student类

初识Spring:如何在Maven工程上搭建Spring框架?

①导入spring的相关jar包

代码示例如下:

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

②编写配置文件(将对象装配到IOC容器中)

配置文件命名一般命名为applicationContext.xml【beans.xml或spring.xml】

位置src/main/resources目录下

代码示例如下:

<?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">

    <!-- 将对象装配到IOC容器中-->
     <bean id="stuTest" class="spring.pojo.Student">
         <!--  给对象stuTest添加属性          -->
         <property name="id" value="101"></property>
         <property name="name" value="jack"></property>
     </bean>
</beans>

③使用核心类库

import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import spring.pojo.Student;

public class TestSpring {

    @Test
    public void test01(){
         //创建容器对象(spring是一个容器)
        ApplicationContext iocObj=new 					    		                             ClassPathXmlApplicationContext("applicationContext.xml");
        //通过容器对象获取需要的对象
        Student stuTest = (Student) iocObj.getBean("stuTest");
        System.out.println(stuTest);

    }

}

初识Spring:如何在Maven工程上搭建Spring框架?


三 Spring有哪些特性?

  • 非侵入式基于Spring开发的应用中的对象可以不依赖于Spring的API

    如何理解?

    对比Servlet,Servlet是侵入式的,当我们想要使用Servlet时以创建一个Servlet类,它继承HttpServlet,看似没有实现Servlet接口,但它所继承的父类HttpServle自己实现了Servlet接口。故此像这种实现功能必须继承或实现某个接口,被称为侵入式;使用Spring开发就不一样,它是直接将对象装配到IOC中,测试运行时只需要创建容器对象,再从中获取需要的对象。

  • 容器Spring是一个容器,因为它包含并且管理应用对象的生命周期。

    如何理解?

    在应用开发时,我们只需要将对象装入spring这个容器中,并且需要时直接从里拿

  • 组件化Spring实现了使用简单的组件配置组合成一个复杂的应用。在Spring中可以使用XML和java注解组合使用这些对象

  • 一站式在IOC和AOP的基础上可以整合各种企业应用的开源框架和优秀的第三方类库

    ps:实际上Spring自身也提供了表述层的SpringMVC和持久层的DBCTemplate


四. Spring中如何获取容器中的对象?(getBean()方法)

getBean()方法有以下五种重载形式,如下图所示。

初识Spring:如何在Maven工程上搭建Spring框架?

ps:这里暂时只讨论前三种

方式:

  • getBean(String beanId)通过beanld获取对象

    不足:需要强制类型转换,不灵活

    示例代码如下:

    public void test01(){
        //创建容器对象(spring是一个容器)
        ApplicationContext iocObj=new ClassPathXmlApplicationContext("applicationContext.xml");
        //通过容器对象获取需要的对象
        Student stuTest = (Student) iocObj.getBean("stuTest");
        System.out.println(stuTest);
    
    }
    
  • getBean(Class aClass)通过Class方式获取对象

    不足:容器中有多个相同类型bean的时候,会报如下错误:

    expected single matching bean but found 2:stuZhenzhong,stuZhouxu
    

    案例演示:在配置文件中装配两个相同类型的对象进spring容器中,然后测试效果

    示例代码如下:

    <?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">
    
        <!-- 将对象装配到IOC容器中-->
         <bean id="stuTest" class="spring.pojo.Student">
             <!--  给对象stuTest添加属性          -->
             <property name="id" value="101"></property>
             <property name="name" value="jack"></property>
         </bean>
    
        <bean id="stulisi" class="spring.pojo.Student">
            <!--  给对象stuTest添加属性          -->
            <property name="id" value="102"></property>
            <property name="name" value="李四"></property>
        </bean>
    
    
    </beans>
    

    ②测试运行

    @Test
    public void test01(){
        //创建容器对象(spring是一个容器)
        ApplicationContext iocObj=new ClassPathXmlApplicationContext("applicationContext.xml");
        //通过容器对象获取需要的对象
    
       /*
       //方式1
        Student stuTest = (Student) iocObj.getBean("stuTest");
        System.out.println(stuTest);
        */
    
       //方式2
        Student bean = iocObj.getBean(Student.class);
        System.out.println(bean);
    }
    

    初识Spring:如何在Maven工程上搭建Spring框架?
    初识Spring:如何在Maven工程上搭建Spring框架?

  • getBean(String beanld,Class aClass)通过beanld和Class获取对象

    优势:使用此方式可避免需要强制类型转和规避因为容器内存在多个相同类型的对象而产生的报错问题

    非常推荐使用!!!

    示例代码如下:

    @Test
    public void test01(){
        //创建容器对象(spring是一个容器)
        ApplicationContext iocObj=new ClassPathXmlApplicationContext("applicationContext.xml");
        //通过容器对象获取需要的对象
    
       /*
       //方式1
        Student stuTest = (Student) iocObj.getBean("stuTest");
        System.out.println(stuTest);
        */
    
       //方式2
    /*    Student bean = iocObj.getBean(Student.class);
        System.out.println(bean);*/
    
        //方式3
        Student stuTest = iocObj.getBean("stuTest", Student.class);
        System.out.println(stuTest);
    
    }
    

    初识Spring:如何在Maven工程上搭建Spring框架?

注意:

框架默认都是通过无参构造器帮助我们创建对象。所以如提供对象的构造器时,一定要添加无参构造器


五. 详解配置文件中的bean标签

属性:

  • idbean的唯一标识
  • class定义bean的类型【class全类名】

子标签:

  • property属性为对象中属性赋值【set注入】
  • name属性设置属性名称
  • value属性设置属性数值

示例代码如下:

  <!-- 将对象装配到IOC容器中-->
     <bean id="stuTest" class="spring.pojo.Student">
         <!--  给对象stuTest添加属性          -->
         <property name="id" value="101"></property>
         <property name="name" value="jack"></property>
    </bean>

详解如下:

该 XML 配置定义了一个名为 “stuTest” 的 Spring Bean,并将其实现类设置为 “spring.pojo.Student”。Bean 具有两个属性:“id” 和 “name”,分别被设置为整数值 101 和字符串值 “jack”。

这里使用的是 set 方法注入属性值,即通过调用 setter 方法将某些值传递给对象。具体来说,这里使用了 property 元素来配置属性注入,其中 name 属性指定 Bean 类中相应属性的名称,value 属性则指定要注入的属性值。文章来源地址https://www.toymoban.com/news/detail-435054.html

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

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

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

相关文章

  • IDEA版SSM入门到实战(Maven+MyBatis+Spring+SpringMVC) -Spring搭建框架步骤

    第一章 初识Spring 1.1 Spring简介 Spring是一个为简化企业级开发而生的 开源框架 。 Spring是一个 IOC(DI) 和 AOP 容器框架。 IOC全称:Inversion of Control【控制反转】 将对象【万物皆对象】控制权交个Spring DI全称:(Dependency Injection):依赖注入 AOP全称:Aspect-Oriented Programming,面向切面编

    2024年02月04日
    浏览(49)
  • 手把手搭建 java spring boot 框架 maven 项目 web 网址访问

    第一步我们去  spring boot 官网创建项目并下载压缩包  创建项目网址: Spring Initializr https://start.spring.io/ 我们添加一个 srping web 的拓展包 接下来我们点击 generate 创建 并下载压缩包即可 接下来我们将压缩文件包解压到项目根目录使用编辑器打开即可,如果编辑器提示 点击构

    2024年04月23日
    浏览(46)
  • 如何在本地搭建Maven环境并整合进IDEA中以及创建web工程?【2023最新版】

    编译软件:IntelliJ IDEA 2019.2.4 x64 操作系统:win10 x64 位 家庭版 Maven版本:apache-maven-3.6.3 使用Maven之前 : 自行在网络中下载iar包,效率较低 。如在谷歌、百度中搜素相关 jar包资源 使用Maven之后 : 统一在一个地址下载jar包等资源 。如使用阿里云镜像服务器下载等.… 使用Mave

    2024年02月02日
    浏览(69)
  • IntelliJ IDEA编译Maven工程:一步步详解

    Apache Maven是一个流行的自动化构建工具,被广泛应用于Java项目的构建管理中。IntelliJ IDEA作为一个功能强大的集成开发环境(IDE),它提供了对Maven工程的天然支持,并能简化构建过程。本文将详细介绍如何在IntelliJ IDEA中编译Maven工程。 首先确保你有一个已安装的IntelliJ IDEA环

    2024年01月17日
    浏览(54)
  • 【初识Spring框架】

    🎉🎉🎉 点进来你就是我的人了 博主主页: 🙈🙈🙈 戳一戳,欢迎大佬指点! 欢迎志同道合的朋友一起加油喔 🤺🤺🤺 目录 1. Spring框架是什么? 2. IOC 容器是什么? 2.1 计算机中的容器 2.2 IOC 容器 2.3 到底什么是控制反转呢? 3. 总结 什么是IOC?  什么是DI? 4. IOC和DI有什么区别

    2024年02月08日
    浏览(36)
  • 【Maven】009-Maven 简单父子工程搭建

    父工程为学校,子工程(模块)有两个:通用模块、教师模块。 lombok:每个子工程都需要,直接在父工程引入依赖; hutool:在父工程管理依赖版本。 第一步:创建父工程 第二步:引入公共依赖 lombok 和管理 hutool 依赖版本 第一步:创建子模块 IDEA 中选择将 school 作为父工程

    2024年01月19日
    浏览(45)
  • 【Spring框架全系列】初识Spring MVC(上)

    🌃哈喽,大家好,我是小浪。接着上篇博客,我们学习了springboot配置日志文件,到此,那么springboot的内容也更新的差不多了,由于是初学阶段,所以不学习那么深入,那么我们学习框架都知道SSM,当前我们已经学习完毕springboot了,那么今天就来学习第二个S,Spring MVC;📬📬

    2024年02月07日
    浏览(124)
  • 使用Maven父工程构建spring boot子工程

    注意:子工程引入springboot相关依赖之后子工程才能被解析为springboot模块

    2024年02月11日
    浏览(45)
  • Idea2020.1编译maven工程显示jar包不存在的解决方法

    主要是给自己看的,以免以后遇到这个问题找不到方法。 问题描述:idea编译maven工程会显示jar包不存在,用maven编译可以通过,仔细检查jar包是都在的,新创建也编译不通过 找了好多方法都不能解决,最终发现以下两种可以解决 解决方案:第一种:(不推荐) 打开idea的Se

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

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

    2024年02月10日
    浏览(67)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包