Spring项目如何创建?Bean对象是如何存储的?

  • 博主简介:想进大厂的打工人
  • 博主主页:@xyk:
  • 所属专栏: JavaEE进阶 

目录

文章目录

一、创建Spring项目

1.1 创建Maven项目

2.2 配置国内源

二、Bean对象的存储和读取

2.1 添加spring配置文件

2.2 创建Bean对象

2.3 读取Bean对象

2.3.1 得到spring上下文对象

总结:spring框架使用


一、创建Spring项目

1.1 创建Maven项目

Spring项目的基础就是Maven项目:一路next下去

Spring项目如何创建?Bean对象是如何存储的?_第1张图片

finish之后,出现这样的界面:

Spring项目如何创建?Bean对象是如何存储的?_第2张图片

2.2 配置国内源

由于国外源不稳定,可能让下面第二步引入 Spring 依赖会失败,所以这里先介绍如何一下配置国内镜像源。

进入Settings,搜索Maven

Spring项目如何创建?Bean对象是如何存储的?_第3张图片

 注意我标红的位置,主要是下方的文件要和我一致(可以不在C盘)

Spring项目如何创建?Bean对象是如何存储的?_第4张图片

settings.xml文件


C:\Users\86180\.m2\repository
    
        
        alimaven
        aliyun maven
        http://maven.aliyun.com/nexus/content/groups/public/
        central
        
    

如果你是在引入相关依赖失败后进行的国内源配置,就要去本地管理jar包的目录将jar包都进行删除,然后重新刷新下载依赖即可。

Spring项目如何创建?Bean对象是如何存储的?_第5张图片

 重新进行下载

Spring项目如何创建?Bean对象是如何存储的?_第6张图片

3.添加spring依赖

在pom.xml中添加依赖,刷新


    
        org.springframework
        spring-context
        5.2.3.RELEASE
    
    
        org.springframework
        spring-beans
        5.2.3.RELEASE
    

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

4.创建启动类

在java目录创建类,写代码即可

Spring项目如何创建?Bean对象是如何存储的?_第7张图片

二、Bean对象的存储和读取

2.1 添加spring配置文件

右键resources目录,新建一个spring-config.xml配置文件。

Spring项目如何创建?Bean对象是如何存储的?_第8张图片

配置文件内容如下:



2.2 创建Bean对象

public class student {
    public void sayHi(String name){
        System.out.println("hello!" + name);
    }
}

然后将Bean通过配置文件,注入到spring中,即在spring配置文件中通过以下语句注入。

id:将对象存储到容器的名字(后续取对象会用)

class:要存储对象的完整路径

2.3 读取Bean对象

获取并使⽤ Bean 对象,分为以下 3 步:
1. 得到 Spring 上下⽂对象,因为对象都交给 Spring 管理了,所以获取对象要从 Spring 中获取,那么就得先得到 Spring 的上下⽂。
2. 通过 Spring 上下⽂,获取某⼀个指定的 Bean 对象。
3. 使⽤ Bean 对象。

2.3.1 得到spring上下文对象

1.可使用ApplicationContext接口

public class App {
    public static void main(String[] args) {
        ApplicationContext context = new ClassPathXmlApplicationContext("spring-config.xml");
//        BeanFactory factory = new XmlBeanFactory(new ClassPathResource("spring-config.xml"));
        student student = context.getBean("student", demo.student.class);
        student.sayHi("张三");
    }
}
实现类 描述
ClassPathXmlApplicationContext(常用) 加载类路径下的配置文件,要求配置文件必须在类路径下
FileSystemXmlApplicationContext 可以加载磁盘任意路径下的配置文件(必须要有访问权限)

Spring项目如何创建?Bean对象是如何存储的?_第9张图片

2.还可以使用 BeanFactory工厂来获取Bean

public class App {
    public static void main(String[] args) {
//        ApplicationContext context = new ClassPathXmlApplicationContext("spring-config.xml");
        BeanFactory factory = new XmlBeanFactory(new ClassPathResource("spring-config.xml"));
        student student = factory.getBean("student", demo.student.class);
        student.sayHi("张三");
    }
}

但实际上并不推荐使用这种方式,算是过时代的方式了,因为旧时期需要考虑内存占用的问题,而现在内存资源没有这样的问题了。

上面两种效果都是一样的,那么ApplicationContext与 BeanFactory有什么区别?

相同点:

  1. 都可以得到spring上下文对象
  2. 都是来自spring顶级接口

不同点:

  1. 继承关系和功能⽅⾯来说:其中 BeanFactory 提供了基础的访问容器的能力;而 ApplicationContext属于 BeanFactory 的⼦类,它除了继承了 BeanFactory 的所有功能之外,它还拥有独特的特性,还添加了对国际化⽀持、资源访问⽀持、以及事件传播等⽅⾯的⽀持。
  2. 从性能⽅⾯来说:ApplicationContext 是⼀次性加载并初始化所有的 Bean 对象,属于饿汉方式;而BeanFactory 是需要那个才去加载那个,属于懒汉方式
     

验证ApplicationContext 加载机制:

Spring项目如何创建?Bean对象是如何存储的?_第10张图片

Spring项目如何创建?Bean对象是如何存储的?_第11张图片

Spring项目如何创建?Bean对象是如何存储的?_第12张图片

可见,在spring框架一启动,会将所有的Bean对象创建出来,属于饿汉方式

验证BeanFactory加载机制:

Spring项目如何创建?Bean对象是如何存储的?_第13张图片

可见BeanFactory是懒加载机制~~

总结:spring框架使用

Spring项目如何创建?Bean对象是如何存储的?_第14张图片

你可能感兴趣的:(JavaEE进阶,java,java-ee,spring,后端)