码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Spring的创建与使用


    在这里插入图片描述

    请添加图片描述

    ⭐️前言⭐️

    在了解了Spring的核心与设计思想以后,下边就是Spring的具体使用,这篇文章主要介绍Spring项目的创建和Bean对象的存放与取出。

    🍉博客主页: 🍁【如风暖阳】🍁
    🍉精品Java专栏【JavaSE】、【备战蓝桥】、【JavaEE初阶】、【MySQL】、【数据结构】
    🍉欢迎点赞 👍 收藏 ⭐留言评论 📝私信必回哟😁

    🍉本文由 【如风暖阳】 原创,首发于 CSDN🙉

    🍉博主将持续更新学习记录收获,友友们有任何问题可以在评论区留言

    🍉博客中涉及源码及博主日常练习代码均已上传码云(gitee)、GitHub


    请添加图片描述

    📍内容导读📍

    • 🍅1.创建第一个Spring项目
      • 1.1 创建一个maven项目
      • 1.2 添加Spring框架支持
      • 1.3 创建启动类和main
    • 🍅2.Bean对象的存储与读取
      • 2.1 将Bean对象存储到容器(Spring)中
        • 2.1.1 添加Spring配置文件(第一次的时候添加)
        • 2.1.2 创建bean对象
        • 2.1.3 将bean通过配置文件注册到spring中
      • 2.2 从Spring中将bean对象读取出来
        • 2.2.1 得到Spring的上下文
        • 2.2.2 根据上下文对象的getBean方法获取bean
        • 2.2.3 使用bean对象
    • 🍅3.经典面试题:ApplicationContext和BeanFactory的区别
    • 🍅4.总结

    请添加图片描述

    🍅1.创建第一个Spring项目

    使用Maven的方式来创建一个Spring项目,创建Spring项目和Servlet类似,总共分为三步:

    a)先创建一个maven项目
    b)添加spring框架支持(spring-context、spring-beans)
    c)创建一个启动类并添加main

    1.1 创建一个maven项目

    在这里插入图片描述
    在这里插入图片描述

    1.2 添加Spring框架支持

    在项目的pom.xml中添加Spring的框架支持,xml配置如下:

    <dependencies>
       <dependency>
            <groupId>org.springframeworkgroupId>
            <artifactId>spring-contextartifactId>
            <version>5.2.3.RELEASEversion>
        dependency>
      
        <dependency>
            <groupId>org.springframeworkgroupId>
            <artifactId>spring-beansartifactId>
            <version>5.2.3.RELEASEversion>
        dependency>
    dependencies>
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    刷新等待加载完成:
    在这里插入图片描述

    1.3 创建启动类和main

    最后在创建好的项目的java文件夹下创建一个启动类,包含main方法即可:

    public class App {
        public static void main(String[] args) {
             System.out.println("hello,Spring!");
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5

    能够正常运行说明创建Spring项目流程完成。
    在这里插入图片描述

    🍅2.Bean对象的存储与读取

    2.1 将Bean对象存储到容器(Spring)中

    完成该流程需要三步(或两步,第一次添加bean对象需要三步)

    2.1.1 添加Spring配置文件(第一次的时候添加)

    将创建好的项目中添加Spring配置文件spring-config.xml,将此文件放到resources的根目录下,如下图所示:
    在这里插入图片描述
    配置文件的内容如下,无需记忆,再次使用时复制粘贴即可:

    
    <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">
    
    beans>
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    2.1.2 创建bean对象

    所谓的Bean就是Java中一个普通的对象,实现代码如下:

    package com.beans;
    
    /**
     * 普通的bean对象
     */
    public class User {
       public void sayHello(String name) {
           System.out.println("你好:"+name);
       } 
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    2.1.3 将bean通过配置文件注册到spring中

    在这里插入图片描述
    其中id与class的关系就相当于Map中的Key-Value键值对关系,bean id通常使用与类名对应的小驼峰命名。

    2.2 从Spring中将bean对象读取出来

    2.2.1 得到Spring的上下文

    import org.springframework.context.ApplicationContext;
    import org.springframework.context.support.ClassPathXmlApplicationContext;
    
    public class App {
        public static void main(String[] args) {
            ApplicationContext context=
                    new ClassPathXmlApplicationContext("spring-config.xml");
        }
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    注意配置文件的名字一定要对应。

    2.2.2 根据上下文对象的getBean方法获取bean

    在这里插入图片描述
    注意根据bean name获取对象时,一定要保持两者一致。

    getBean的其他用法:

    1.根据bean type获取bean

    User user=context.getBean(User.class);
    
    • 1

    这种写法是最简单的,但容易出问题。当用一个类型注入到spring中多次的时候就会报错,程序猿可根据实际情况决定是否要使用。

    2.根据bean name和类型获取bean

    User user=context.getBean("user",User.class);
    
    • 1

    2.2.3 使用bean对象

    就像使用普通的Java对象一样来使用:

    user.sayHello("张三");
    
    • 1

    总体代码概览:
    在这里插入图片描述

    🍅3.经典面试题:ApplicationContext和BeanFactory的区别

    从Spring中将bean对象读取出来不仅仅有以上一种,通过ApplicationContext上下文获取对象的方法,还可以通过BeanFactory的方法来获取:
    在这里插入图片描述
    那么上边这两种方法都可以从Spring容器中获取到bean对象,这两个方法有什么区别呢?

    相同点:
    都可以实现从容器中获取bean,都提供了getBean的方法。

    不同点:

    • ApplicationContext 属于BeanFactory的子类。BeanFactory只提供了基础访问Bean的方法,而ApplicationContext除了拥有BeanFactory的所有功能以外,还提供了更多的方法实现,比如对国际化的支持、资源访问的支持,已经事件和传播等方面的支持。
    • 从性能方面来说,两者是不同的,BeanFactory是按需加载Bean的(相当于懒加载),而ApplicationContext是以饿汉方式来加载Bean对象的,在类加载阶段会将所有的Bean都加载起来,以备后续使用。

    如果资源允许的条件下使用ApplicationContext,能够再后续使用Bean对象时更快。

    🍅4.总结

    在这里插入图片描述


    ⭐️最后的话⭐️
    总结不易,希望uu们不要吝啬你们的👍哟(^U^)ノ~YO!!如有问题,欢迎评论区批评指正😁

    请添加图片描述

  • 相关阅读:
    Libuv源码解析 - 主要数据结构
    基于SpringBoot的客户关系管理系统,毕设、课设资源包
    国产内存强势崛起,光威龙武挑战D5内存24×2新标杆
    JavaScript中的事件循环(event loop)机制
    如何轻松部署快解析 + WAMP
    uniapp瀑布流布局写法
    Redis原理 - 对象的数据结构(SDS、Inset、Dict、ZipList、QuickList、SkipList、RedisObject)
    STM32开发(二十九)STM32F103 数据手册 —— 高级定时器 TIM1 TIM8详解
    Java命令行形式将程序打包成jar包,防止报错:没有主清单属性
    蓝桥杯(七段码,C++)
  • 原文地址:https://blog.csdn.net/qq_60856948/article/details/128169350
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号