一文掌握Spring的创建与使用

 更新时间:2023年04月19日 10:48:10   作者:渴望力量的土狗  
这篇文章详细介绍了spring的创建与使用,文章中有详细的代码示例和图片介绍,对学习有一定的而参考价值,需要的同学可以参考一下

Spring的创建

Spring的创建分为3个步骤:

1、创建一个Maven项目

2、添加Spring框架支持(spring-context,spring-beans)

3、添加启动类

1、创建Maven项目 

 创建完成后进行spring框架的添加

2、添加Spring框架支持(spring-context,spring-beans) 

在pom.xml中添加Spring的框架支持:

打开Maven中央仓库:搜索Spring:

点开Spring Context选择一个5.x版本

 复制依赖到pom.xml中

 下载完就不再爆红

然后我们引入spring-beans依赖:(同样的步骤)

这是引入的依赖:

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

其中spring-context是spring上下文,spring-beans是管理对象的模块。

 这一块出现这样就说明都引入成功了。 

3、添加启动类 

启动类就和平时创建一个普通类一样:

public class App {
    public static void main(String[] args) {
        System.out.println("Hello Spring");
    }
}

启动类用来测试后面的代码。 

至此一个Spring项目就创建完成了。再来看看怎么使用Spring项目

Spring的使用 (Bean对象的存取及使用)

Bean对象的存储 

1、添加Spring的配置文件

在resources目录下创建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>

建议把这个配置保存在码云,用的时候直接去复制即可 

2、创建Bean对象 

新建一个类即可。

3、将Bean注册到容器中(在配置文件中进行配置) 

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

Bean对象的获取 

Bean对象的获取要2个步骤:

1、得到Spring上下文(对象都交给Spring了,所以获取的时候要下获取到Spring的上下文) 

2、通过Spring上下文获取指定Bean对象

1、得到Spring上下文(对象都交给Spring了,所以获取的时候要下获取到Spring的上下文)  

使用ApplicationContext来获取对象 

1、得到Spring上下文

//获取Spring上下文
ApplicationContext context=new ClassPathXmlApplicationContext("spring-config.xml");

2、获取指定Bean对象 

//获取指定Bean对象
User user = (User)context.getBean("user");

注意: 

这是这个对象就可以进行使用了。

这样我们就可以不用new对象而能够使用对象了。 

除了使用 ApplicationContext来获取对象外,我们还可以使用BeanFactory来获取对象

使用BeanFactory来获取对象 

public static void main(String[] args) {
        //获取Spring上下文
        BeanFactory beanFactory=new XmlBeanFactory(new ClassPathResource("spring-config.xml"));
        //获取Bean对象
        User user= (User) beanFactory.getBean("user");
        //使用bean
        user.sayHi();
    }

写到这里就有个面试题了:

ApplicationContext和BeanFactory的区别是什么 

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

不同点 :

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

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

关于getBean()的更多用法 

1、根据bean的id获取bean 

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

user是该bean的id,且这个id只能存在一个,Spring容器中不能存在多个名称为user的bean 

2、根据bean的类型获取bean 

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

这种类型的好处是不用进行类型的强转,但是这个在出现容器中同一个类有多个对象注入的时候就会报错。因为不能确定是哪个对象。

3、根据bean的id和bean的类型获取bean(推荐使用) 

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

这种写法既可以不用强制类型转换,也能够准确的获取到指定的bean对象,推荐使用这种方式。 

以上就是一文掌握Spring的创建与使用的详细内容,更多关于Spring的创建与使用的资料请关注脚本之家其它相关文章!

相关文章

  • springboot中使用redis的方法代码详解

    springboot中使用redis的方法代码详解

    &#8203;redis 作为一个高性能的内存数据库,如果不会用就太落伍了,之前在 node.js 中用过 redis,本篇记录如何将 redis 集成到 spring boot 中。感兴趣的朋友跟随小编一起看看吧
    2019-05-05
  • 解决版本不兼容Jar包冲突问题

    解决版本不兼容Jar包冲突问题

    在和三方对接的过程中,我们可能会不断引入一些三方jar包,但这个时候就有可能出现一个项目需要依赖两个版本不同且功能不兼容的jar包,本文主要介绍了解决版本不兼容Jar包冲突问题,感兴趣的可以了解一下
    2023-10-10
  • SpringBoot中@PathVariable、@RequestParam和@RequestBody的区别和使用详解

    SpringBoot中@PathVariable、@RequestParam和@RequestBody的区别和使用详解

    这篇文章主要介绍了SpringBoot中@PathVariable、@RequestParam和@RequestBody的区别和使用详解,@PathVariable 映射 URL 绑定的占位符,通过@RequestMapping注解中的{}占位符来标识URL中的变量部分,需要的朋友可以参考下
    2024-01-01
  • Spring Cloud Feign组成配置过程解析

    Spring Cloud Feign组成配置过程解析

    这篇文章主要介绍了Spring Cloud Feign组成配置过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-03-03
  • Feign远程调用传递对象参数并返回自定义分页数据的过程解析

    Feign远程调用传递对象参数并返回自定义分页数据的过程解析

    这篇文章主要介绍了Feign远程调用传递对象参数并返回自定义分页数据的过程解析,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-03-03
  • SpringCloud gateway+zookeeper实现网关路由的详细搭建

    SpringCloud gateway+zookeeper实现网关路由的详细搭建

    这篇文章主要介绍了SpringCloud gateway+zookeeper实现网关路由,本文通过图文实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-08-08
  • java获取到heapdump文件后快速分析技巧

    java获取到heapdump文件后快速分析技巧

    大家都知道HeapDump文件是指定时刻的Java堆栈的快照,是一种镜像文件,今天通过本文给大家介绍java获取到heapdump文件后,如何快速分析,需要的朋友可以参考下
    2023-04-04
  • Java concurrency之AtomicReference原子类_动力节点Java学院整理

    Java concurrency之AtomicReference原子类_动力节点Java学院整理

    AtomicReference是作用是对"对象"进行原子操作。这篇文章主要介绍了Java concurrency之AtomicReference原子类,需要的朋友可以参考下
    2017-06-06
  • 基于Nacos实现Spring Cloud Gateway实现动态路由的方法

    基于Nacos实现Spring Cloud Gateway实现动态路由的方法

    这篇文章主要介绍了基于Nacos实现Spring Cloud Gateway实现动态路由的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-06-06
  • java反射原理制作对象打印工具

    java反射原理制作对象打印工具

    本文主要给大家介绍了java反射原理制作对象打印工具的方法和代码,以及一个热心网友给出的更加简洁方便的代码,小伙伴们需要的话可以参考下。
    2015-12-12

最新评论