Spring项目的创建和使用

Spring:Spring是一个包含众多工具方法的IoC容器

Spring的核心功能:

  • 将对象(俗称Bean)存储到Sping容器中
  • 从容器中取出对象

目录

一,创建Spring项目

1,创建一个Maven项目

 2,添加Spring框架(以spring-context为例)

 3,创建启动类

 二,操作Bean对象

1,存储Bean对象

创建Bean对象

添加配置文件(spring-config.xml)

Bean对象的注入

 2,获取并使用Bean对象

使用ApplicationContext操作

使用BeanFactory操作

 常见面试题(ApplicationContext 和 BeanFactory的区别):


一,创建Spring项目

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

  1. 创建一个普通的Maven;
  2. 添加Spring框架支持(spring-context、spring-beans);
  3. 添加启动类.

1,创建一个Maven项目

Spring项目的创建和使用_第1张图片

 Spring项目的创建和使用_第2张图片

 2,添加Spring框架(以spring-context为例)

添加Spring依赖前需要配置Maven国内源,详情博客:Maven配置国内源以及jar下载失败处理详解_徐憨憨!的博客-CSDN博客

使用Maven仓库(https://mvnrepository.com/)查找Spring相关框架并添加;

Spring项目的创建和使用_第3张图片

 Spring项目的创建和使用_第4张图片

 Spring项目的创建和使用_第5张图片

 3,创建启动类

在创建好的项目java文件夹下创建一个启动类,需要包含main方法;

Spring项目的创建和使用_第6张图片

 二,操作Bean对象

上述操作已经创建了一个Maven项目了,通过这个Maven项目可以进行对Bean对象的存储和取出操作!

1,存储Bean对象

存储Bean对象分为两步:

  1.  存储Bean之前,先得有Bean才行,因此需要先创建一个Bean;
  2.  将创建的Bean注册到Spring容器中.

创建Bean对象

Bean对象其实就是一个普通的Java对象,现在我们创建一个Student对象,具体代码如下:

public class Student {
    //为了简化代码 这里使用就地初始化的方式
    public int id = 1;
    public String name = "张三";
    
    public void print() {
        System.out.println("id: " + id + " name: " + name);
    }
}

添加配置文件(spring-config.xml)

Bean对象的注册依赖配置文件spring-config.xml,需要将此文件放到resources的根目录下:

Spring项目的创建和使用_第7张图片

 配置文件的内容不需要背诵,事先存储一份,用的时候直接复制即可,配置文件内容如下:



Bean对象的注入

这里使用beans标签进行注入,后面随着学习的深入,将会使用更加简单的方法进行注册;

Spring项目的创建和使用_第8张图片

 2,获取并使用Bean对象

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

使用ApplicationContext操作

public class App {
    public static void main(String[] args) {
        //1.获取 Spring 上下文对象
        ApplicationContext context = new ClassPathXmlApplicationContext("spring-config.xml");
        //2.获取 Bean 对象
        //Student student = (Student) context.getBean("student");//使用名称的方式进行获取
        //Student student = context.getBean(Student.class);//使用类的方式进行获取
        Student student = context.getBean("student",Student.class);//使用名称+类的方式进行获取(该方式更推荐)
        //3.使用 Bean 对象
        student.print();
    }
}

Spring项目的创建和使用_第9张图片  

注意:

获取spring上下文对象时需要传入spring-config配置文件用来加载Bean对象;

getBean方法有很多重载方法,不同方法所需传入的参数不同;

使用名称的方式进行获取时,返回的类型是Object类型,需要进行强转;

传入的名称要和bean标签中设置的id匹配.

使用BeanFactory操作

public class App {
    public static void main(String[] args) {
        //1.获取 Spring 上下文对象
        BeanFactory beanFactory = new XmlBeanFactory(new ClassPathResource("spring-config.xml"));
        //2.获取 Bean 对象(这里也可以使用多种方式获取 Bean 对象)
        Student student = beanFactory.getBean("student", Student.class);
        //3.使用 Bean 对象
        student.print();
    }
}

Spring项目的创建和使用_第10张图片

 常见面试题(ApplicationContext 和 BeanFactory的区别):

继承关系和功能方面来说:Spring 容器有两个顶级的接口:BeanFactory 和 ApplicationContext。其中 BeanFactory 提供了基础的访问容器的能力,而 ApplicationContext 属于 BeanFactory 的⼦类,它除了继承了 BeanFactory 的所有功能之外,它还拥有独特的特性,还添加了对国际化支持、资源访问支持、以及事件传播等方面的⽀持。
从性能方面来说:ApplicationContext 是⼀次性加载并初始化所有的 Bean 对象,而
BeanFactory 是需要那个才去加载那个,因此更加轻量。

你可能感兴趣的:(JavaEE学习,spring,java,spring,boot)