Spring为什么这么火 之 Spring的创建及存储、获取Bean对象

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

目录

1、创建Spring项目

1.1、创建一个Maven项目

 1.2、添加Spring框架支持

1.3、添加启动类

2、存储Bean对象

2.1、创建Bean对象

2.2、将Bean对象注册到Spring容器中

3、获取、使用Bean对象

3.1、得到Spring上下文对象

使用ApplicationContext作为Spring的上下文 【更常用】

使用 BeanFactory作为Spring的上下文

面试题ApplicationContext   VS  BeanFactory

3.2、通过Spring上下文获取某一个指定的对象【3种方式】 

3.3、使用Bean对象


1、创建Spring项目

三步即可搞定

1.1、创建一个Maven项目

 1.2、添加Spring框架支持

在pom.xml中添加

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

添加依赖加载时间可能需要一点时间耐心等待哈

1.3、添加启动类

在java文件下创建启动类即可


2、存储Bean对象

存入需要先有这么个对象才能谈到存呀~

2.1、创建Bean对象

Bean对象就是Java中一个普通对象而已啦~


public class User {
    public void Hello() {
        System.out.println("hello world");
    }
}

2.2、将Bean对象注册到Spring容器中

添加配置文件并且要以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">
</beans>

如果爆红刷新一下即可~

接下来就是正式存储Bean对象具体操作

在<beans>中添加如下代码

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

这里的class值需要对应

 

 如果你的类在某个包下那你就包名1.包名2.类名


3、获取、使用Bean对象

3.1、得到Spring上下文对象

Spring上下文是什么其实就是Spring本身 

使用ApplicationContext作为Spring的上下文 【更常用】

        因为对象都交给Spring管理了所以获取对象对象要从Spring中获取那就得先得到Spring的上下文

ApplicationContext context = new ClassPathXmlApplicationContext("Spring.xml");

括号里填什么呢

 

使用 BeanFactory作为Spring的上下文

BeanFactory context = new XmlBeanFactory(new ClassPathResource("Spring.xml"));

二者的效果是一样的

面试题ApplicationContext   VS  BeanFactory

相同点

  • 都可以得到Spring上下文对象
  • 都是来自Spring的顶级接口

不同点

  • 继承关系ApplicationContext   属于 BeanFactory 的子类
  • 功能BeanFactory只有最基础的访问Bean的能力但是ApplicationContext除了有BeanFactory功能以外还包含了自己独有的功能如国际化支持、资源访问、事件传播等
  • 性能方面的区别ApplicationContext 加载方式是将Bean对象一次性加载后期访问Bean对象时就会很快BeanFactory需要某个Bean时采用加载Bean对象所以它在执行Bean获取时比较慢

3.2、通过Spring上下文获取某一个指定的对象【3种方式】 

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


public class Test {
    public static void main(String[] args) {
        //1、得到Spring的上下文对象
        ApplicationContext context = new ClassPathXmlApplicationContext("Spring.xml");

        //2、加载某个Bean
        //方法一
        User user = (User) context.getBean("user");//根据bean的名称【标识】

        //方法二
        //不用强转了
        // User user1 = context.getBean(User.class);//根据bean类型获取bean

        //方法三
        User user2 = context.getBean("user",User.class);//根据bean名称加上bean对象/类型

        //3、调用相应的方法
        user.Hello();
        //user1.Hello();
        user2.Hello();
    }
}

方法二中为什么把他注释了呢因为咱们在Spring.xml中是这样写滴

 

        一个类引入了两次当它加载时他就不知道加载哪个【一个类每注入一次都是不一样的可以自己去敲代码看看user和user1是否相等】 当我们只注入一次时当然是可以使用方法二的

        最优方法是方法三没有了方法一的强转【可能会带来问题】也不会产生方法二的弊端

 

注意Id需要一致

 

 

3.3、使用Bean对象

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


public class Test {
    public static void main(String[] args) {
        //1、得到Spring的上下文对象
        ApplicationContext context = new ClassPathXmlApplicationContext("Spring.xml");

        //2、加载某个Bean
        User user = (User) context.getBean("user");

        //3、调用相应的方法
        user.Hello();
    }
}

咱们下期见咯~ 

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: Spring