【Spring框架全系列】第一个Spring程序

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

🏙哈喽,大家好,我是小浪。那么从今天开始,我就要开始更新spring框架全系列的博客了;本专栏免费阅读,最好能够点个订阅,以便于后续及时收到更新信息哈!🏟

📲目录

一、为什么要学习框架?

二、什么是Spring?

三、Spring的创建和使用

一、新建一个maven项目

二、添加Spring框架支持

三、存储Bean对象

四、将对象从spring中读取出来


一、为什么要学习框架?

🏕1、学习框架相当于从小作坊到工厂的升级,小作坊什么都要自己做,工厂是组件式装配,特点就是简单高效。

🗻2、框架的优势很明显,特点就是简单,易用,高效,这也是很多公司目前都使用框架的原因。

二、什么是Spring?

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

三、Spring的创建和使用

🌠那么接下来,博主我通过创建maven项目的方式创建一个spring项目。

一、新建一个maven项目

1、首先打开idea,新建一个maven项目;

【Spring框架全系列】第一个Spring程序

2、点击next,选择项目的名称和存储路径;

【Spring框架全系列】第一个Spring程序

3、点击Finish,创建完成后目录结构应该是下面这个样子;

【Spring框架全系列】第一个Spring程序

二、添加Spring框架支持

1、双击打开pom.xml文件;

【Spring框架全系列】第一个Spring程序

2、添加的框架有 spring-context:spring 上下⽂,还有 spring-beans:管理对象的模块。

    <dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>5.2.3.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-beans</artifactId>
            <version>5.2.3.RELEASE</version>
        </dependency>
    </dependencies>

3、第一次添加的时候代码是红色的,还没有下载下来,我们可以找到右上角的maven,点击打开,然后点下面红色箭头指向的地方,下载框架支持。

【Spring框架全系列】第一个Spring程序

4、下载完成后代码显示正常;

【Spring框架全系列】第一个Spring程序

5、检查是否下载成功,找到Libraries这个目录,打开看是否有这两个对应的jar包;

【Spring框架全系列】第一个Spring程序

上述步骤完成后,就可以开始下一步了;

三、存储Bean对象

1、在我们的java文件下新建一个普通的包com,在包com下面新建一个类"User",类名根据自己的喜好新建即可;

【Spring框架全系列】第一个Spring程序

2、在类App中写上以下代码;

package com;

/**
 * 启动类
 */
public class User {
    public void sayHi(String name){
        System.out.println("hello- "+name);
    }
}

3、将Bean注册到容器

在创建好的项⽬中添加 Spring 配置⽂件 spring-config.xml,将此⽂件放到 resources 的根⽬录下,如下图所示:
【Spring框架全系列】第一个Spring程序

配置文件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/beans
       http://www.springframework.org/schema/beans/spring-beans.xsd">
</beans>

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

在上述"spring-config.xml"文件中添加一下代码即可;

<bean id="user" class="com.User"></bean>

注意这里的id是自己类名首字母小写之后的名字,class是类名所在的路径,刚才我们把Uesr类新建在com包下,所以这里给的是  class="com.User" ;即类名使用大驼峰,那么id就是类名的小驼峰,即类名为"User",那么id就是"user"。

四、将对象从spring中读取出来

1、首先我们需要得到spring上下文对象,在java文件下新建一个类“App”,这个类用来写读取对象的代码;

【Spring框架全系列】第一个Spring程序

2、得到spring上下文对象;

方法1:使用ApplicationContext;

ApplicationContext context= new ClassPathXmlApplicationContext("spring-config.xml");

方法二、使用BeanFactory;

BeanFactory beanFactory = new XmlBeanFactory(new ClassPathResource("spring-config.xml"));

注意后面括号里面的名字一定要和我们配置的spring文件一致;

经典面试题:ApplicationContext和BeanFactory的区别是什么?

相同点:都可以从IoC容器当中获取bean。

不同点 :从继承关系和功能方面:ApplicationContext继承于BeanFactory。BeanFactory只提供了最基础的访问bean的方法,而ApplicationContext除了拥有BeanFactory以外,还拥有一些其他的机制,例如:支持国际化,资源访问,事件传播等;

从性能方面: ApplicationContext 是⼀次性加载并初始化所有的 Bean 对象,⽽BeanFactory 是需要那个才去加载那个,因此更加轻量(ApplicationContext采用的是"饿加载"的方式来进行加载的。而BeanFactory采用的是"懒加载"的方式来进行加载的。)

3、获取指定的Bean对象,根据上下文提供的getBean方法

方法一:

User user = (User)context.getBean("user");

4、使用Bean对象

user.sayHi("ApplicationContext");

5、运行结果

【Spring框架全系列】第一个Spring程序

那么获取指定的Bean对象有很多种方法,刚才写的这一种我们发现需要强制类型转换,那么如何传递一个null值的话就会出现问题,idea就会报错,如何解决呢?

这里我们可以使用第二种方法来获取Bean对象;

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

我们可以直接传递User.class;

但是这种方法的话,当同一个类型被注入到spring当中多次的时候,就会出现问题;

【Spring框架全系列】第一个Spring程序

报错信息提示,匹配到了两个user;

【Spring框架全系列】第一个Spring程序

那有没有其他的解决方案呢?

我们根据bean name 和类型来获取bean;

User user2 = context.getBean("user",User.class);
user3.sayHi("根据bean的id和bean的类型获取bean");

运行结果:

【Spring框架全系列】第一个Spring程序

🌄OK,今天的内容就到这里啦,我们刚开始先对spring有个初步的认识,后续持续渐进的进行学习,欢迎阅读,感谢订阅!📬📬文章来源地址https://www.toymoban.com/news/detail-432219.html

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

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

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

相关文章

  • 【Spring框架全系列】方法注解@Bean的使用

    📬📬哈喽,大家好,我是小浪。上篇博客我们介绍了五大类注解的使用方法,以及如何解决Spring使用五大类注解生成bean-Name的问题;那么,谈到如何更简单的读取和存储对象,这里我们还需要介绍另外一个\\\"方法注解@Bean\\\"的使用,快来一起学习叭!🛳🛳 📲目录 一、如何使

    2024年02月04日
    浏览(46)
  • 【Spring框架全系列】Spring更简单的读取和存储对象

    📬📬哈喽,大家好,我是小浪。上篇博客我们介绍了如何创建一个spring项目,并且如何的存、取对象,介绍了相关方法,那么本篇博客将接着上篇博客的内容介绍如何更加简单的读取和存储对象。 🌃在 Spring 中想要更简单的存储和读取对象的核⼼是使⽤注解,也就是我们接

    2024年02月05日
    浏览(41)
  • 关于KEIL5编译出现“Target not createt”全系列解决办法——情况2:程序溢出错误 ERROR: PUBLIC REFERS TO IGNORED SEGMEN

    在KEIL5编程,往往遇到许多“Target not createt”,即目标不能实现这类情况。由此为帮助大家解决这些问题特开此贴。 目录如下: 1、2K字节限制错误 ERROR:RESTRICTED VERSION WITH 0800H BYTE CODE SIZE LIMIT 或者 ADDRESS SPACE OVERFLOW      直达链接:https://blog.csdn.net/SumubeiFZ/article/details/125344

    2023年04月20日
    浏览(70)
  • FreeRTOS 全系列笔记——基于V10.4

    基于crotex-m处理器新建FreeRTOS工程 为什么使用嵌入式实时操作系统(RTOS) FreeRTOS——创建任务 FreeRTOS的任务调度和管理 FreeRTOS-内核链表数据结构 FreeRTOS-内核对时间的测量 FreeRTOS-内核中的钩子(Hook)函数 FreeRTOS-软件定时器的使用 FreeRTOS-软件定时器的实现原理 FreeRTOS-延后执行机制

    2024年02月04日
    浏览(39)
  • 小米红米全系列官方原厂预装系统

    小米红米全系列官方原厂预装系统恢复镜像 1.全系列为原厂预装恢复镜像系统,专机专用 2.自带原机所有驱动,主题,Logo,Office等,再次恢复原厂 链接: https://pan.baidu.com/s/1snKOsH3OMl3GZLqeAf-GLA?pwd=8888 3.支持型号如下: Xiaomi Book 12.4 二合一 Xiaomi Book Air 13 Redmi G (Pro) 游戏本 2022 锐

    2024年02月11日
    浏览(49)
  • Radware负载均衡-全系列产品证书更新(二)

    简单介绍一下关于Radware APSolute Vision平台的证书更新。 更新证书有两种方式,一种为自签发,另外一种为导入第三方证书,且更新证书仅能通过命令行的形式更新证书。两种方式都会导致APSolute Vision平台设备的重启(老版本,最新版本只会导致当前访问vision会话中断),请注

    2024年01月16日
    浏览(53)
  • 云安全系列4:解析云安全工具集

    随着组织越来越多地将数据和应用转移到云端,云安全在确保工作负载安全方面变得至关重要。Gartener 就表示:“云优先战略现在已十分普遍,甚至在不愿承担风险的企业机构中也是如此。但由于缺乏确保安全云计算部署所必需的技能和工具,因此执行仍然受到阻碍。” 在了

    2024年02月02日
    浏览(44)
  • 【云安全系列】Seccomp—云安全syscall防护利器

    Seccomp(全称 “Secure computing”),早在 2.6.12 版本(2005年3月8日)就引入到内核中,是通过只允许内核支持部分 syscall(系统调用),或者拒绝内核认为可能有危险的 syscall 集合的方式,来限制一个进程所支持的 syscall调用。最初,Seccomp 只允许使用read、 write、 _exit、sigreturn

    2024年02月08日
    浏览(42)
  • Oracle全系列版本官网下载保姆及教程

    下面以下载Oracle12cR2为例说明下载的整个过程。 基本步骤如下: 先注册一个Oracle账号并登录; 进入到客户下载页面搜索要下载的数据库版本; 得到Oracle下载器(Oracle_SSN_DML_xxxxx.exe),注意:每下载一次都会得到一个Oracle的下载器; 运行下载器进行下载 官网地址:https://www.or

    2024年01月17日
    浏览(53)
  • 苹果发布会:iPhone 15全系列手机正式发布

    在人们的高度关注和热切期待中,苹果公司在北京时间9月13日凌晨1点,准时举办了秋季新品发布会,并如期发布了iPhone 15系列。此次发布会以“好奇心上头”为主题,吸引了全球消费者和科技爱好者的目光。 在发布会上,苹果公司向全球观众展示了iPhone 15系列的手机,iPho

    2024年02月09日
    浏览(65)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包