Spring项目的创建与使用

这篇具有很好参考价值的文章主要介绍了Spring项目的创建与使用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

创建Spring项目

创建Maven项目

引入依赖

使用镜像下载

下载依赖

添加启动类

使用Spring项目

创建Spring配置文件

存储Bean

取出并使用Bean(通过ApplicationContext接口)

通过id

通过class

通过class+id(推荐)

取出并使用Bean(通过BeanFactory接口)

ApplicationContext和BeanFactory的关系


创建Spring项目

Spring项目的创建主要是在maven项目引入依赖后下载依赖,这时一个maven项目就变成了Spring项目。


创建Maven项目

Spring项目的创建与使用

Spring项目的创建与使用


引入依赖

在pom.xml文件下添加Spring的依赖。这里的依赖只是相当于只是声明了一下,还没有真正的导入其中。

在中心仓库搜索Spring

Maven Repository: Search/Browse/Explore (mvnrepository.com)

Spring项目的创建与使用

Spring项目的创建与使用5.X.X对应JDK8,6.X.X对应JDK17

这里是JDK8对应的依赖,可以自行复制(在project标签下)

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

    </dependencies>

由于中心仓库在国外,下载一般会很慢,所以需要我们使用国内镜像来下载。


使用镜像下载

这里有两个地方的设置需要修改。

1:IDEA中的设置

Spring项目的创建与使用

Spring项目的创建与使用

如果有该文件,修改其配置:

   <mirror>
        <id>alimaven</id>
        <name>aliyun maven</name>
        <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
        <mirrorOf>central</mirrorOf>        
  </mirror>

 Spring项目的创建与使用

2:项目中的设置

Spring项目的创建与使用

Spring项目的创建与使用

这样的修改是一劳永逸的,下次无需修改,只用到项目设置中看看是否需要修改(通常不用) 


下载依赖

Spring项目的创建与使用

Spring项目的创建与使用  


添加启动类

Spring项目的创建与使用


使用Spring项目

Spring本质上是一个拥有许多方法和工具的IoC容器,容器最重要的是就是放东西取东西

这里的东西自然是Java中的对象,一般对象也被叫做Bean,接下来就使用Bean

创建Spring配置文件

在存储Bean之前,先要在resources目录下创建一个Spring的配置文件,这里面是用来声明存放Bean的。

<?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 http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd">
</beans>

存储Bean

需要先创建出Bean

Spring项目的创建与使用

然后在配置文件中声明一下就可以存放到Spring中去了

Spring项目的创建与使用


取出并使用Bean(通过ApplicationContext接口)

通过id

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

public class App {
    public static void main(String[] args) {
        //                                         这里写配置文件的名字
        ApplicationContext context =
                new ClassPathXmlApplicationContext("spring-config.xml");
        // 由于取出来的 bean 类型是 Object 类型,所以需要强转成 Student 类型
        //                                这里的 student 需要和 配置文件中的id 相同
        Student student = (Student) context.getBean("student");
        student.sayHi();
    }
}

Spring项目的创建与使用

通过class

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

public class App {
    public static void main(String[] args) {
        //                                         这里写配置文件的名字
        ApplicationContext context =
                new ClassPathXmlApplicationContext("spring-config.xml");

        Student student = context.getBean(Student.class);
        student.sayHi();
    }
}

通过class+id(推荐)

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

public class App {
    public static void main(String[] args) {
        //                                         这里写配置文件的名字
        ApplicationContext context =
                new ClassPathXmlApplicationContext("spring-config.xml");

        // 这种写法相较于之前id找到bean后,然后转成Student对象来说
        // 省去了强转的这一步 (推荐写法)
        Student student = context.getBean("student", Student.class);
        student.sayHi();
    }
}

取出并使用Bean(通过BeanFactory接口)

通过该接口取出使用Bean与ApplicationContext接口没有很大的区别。

Spring项目的创建与使用

import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.xml.XmlBeanFactory;
import org.springframework.core.io.ClassPathResource;
import people.Teacher;

public class App {
    public static void main(String[] args) {

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

        // Teacher teacher = (Teacher) factory.getBean("teacher");
        // Teacher teacher = factory.getBean(Teacher.class);
        Teacher teacher = factory.getBean("teacher", Teacher.class);

        teacher.sayHi();
    }
}
public class Teacher {

    public void sayHi() {
        System.out.println("hi teacher");
    }
}

Spring项目的创建与使用

那么表面上看二者使用没有任何取区别,通过下面的代码可以看出二者的本质区别。

配置文件下现在有Spring项目的创建与使用

再手动创建一下构造方法方便观察

Spring项目的创建与使用

Spring项目的创建与使用

使用ApplicationContext获取上下文

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

public class App2 {
    public static void main(String[] args) {
        ApplicationContext context = new ClassPathXmlApplicationContext("spring-config.xml");
}

执行代码后

Spring项目的创建与使用

结论:可以看出它把配置文件中所有的Bean先都加载出来了

使用BeanFactory获取上下文

import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.xml.XmlBeanFactory;
import org.springframework.core.io.ClassPathResource;

public class App2 {
    public static void main(String[] args) {
        BeanFactory factory = new XmlBeanFactory(new ClassPathResource("spring-config.xml"));

    }
}

Spring项目的创建与使用

结论:没有使用Bean,就没有任何Bean被加载。

使用一下Teacher观察结果:

Spring项目的创建与使用

ApplicationContext和BeanFactory的关系

继承方面:二者都是Spring容器的顶级接口,ApplicationContext是BeanFactory的子类。

功能方面:ApplicationContext出了拥有BeanFactory的所有功能之外,还添加了一些其他功能:对国际化支持、资源访问的支持、事务传播方面的支持等。

性能方面:

        ApplicationContext  比较费内存,一次性会全部加载完所有Bean对象,后续使用会很快。

        BeanFacotry  不费内存,只有调用时才初始化,所以后续使用效率不高。

推荐使用 ApplicationContext,因为BeanFactory已经被弃用了。


有什么错误评论区指出。希望可以帮到你。文章来源地址https://www.toymoban.com/news/detail-411519.html

到了这里,关于Spring项目的创建与使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 【JavaEE】Spring Boot - 项目的创建和使用

    【JavaEE】Spring Boot 开发要点总结(1) Spring框架是为了简化Java程序的开发的,而Spring Boot框架则是为了简化Spring程序开发的 Spring Boot,也就是Spring 脚手架 现实中的脚手架是这样的: 通过这个脚手架,我们就可以更快速方便的盖房子,并且房子建得会更好 而Spring Boot,就是S

    2024年02月14日
    浏览(28)
  • 使用阿里云镜像创建一个Spring Boot项目

    由于现在的idea在创建项目时已经不支持Java8版本了,如果我们还想用8版本,可以使用阿里云镜像创建。所以得改变原有的地址为: https://start.aliyun.com 上面是idea专业版创建项目,如果是社区版还需要在创建前安装一个插件 : Spring Boot Helper 不过这个是收费的,想要免费的我们

    2024年04月25日
    浏览(26)
  • 如何使用社区版IDEA创建一个Spring Boot项目

    这篇博客,我们要教大家如何使用社区版IDEA来创建一个Spring Boot的项目。 首先我们要下载一个插件——Spring Boot Helper,只有安装了这个插件我们才能创建Spring Boot项目,如下图所示:  【注意】这个时候和平时下载插件不同,不要直接点“下载”按钮, 因为这个插件是需要

    2024年02月12日
    浏览(45)
  • 如何通过idea使用JDK8.0创建Spring项目

            目前 IDEA 进行了优化,所以我们在创建 Spring 项目时会发现,以及不能选择通过 JDK8.0 创建了,这是因为官方已经不再提供 JDK8.0 创建 Spring 项目,我们可以通过修改创建 Spring 项目的路径来解决该问题         在创建 Spring 项目的页面,修改 Server URL 为 https://start.a

    2024年01月22日
    浏览(43)
  • idea使用Spring Initializer创建springboot项目的坑【保姆级教学】

    提示:这里先简述项目创建后遇到的问题和解决方案: idea 使用 Spring Initializer 创建springboot项目后, 有以下问题: ① 右键没有Run ② 右键New新建文件发现无Java Class选项 然后解决掉 ①② 问题后出现新的问题: ③ @SpringBootApplication 注解爆红找不到引用 ④ pom依赖能下载但是加

    2024年02月04日
    浏览(42)
  • 使用IDEA创建使用 JDK8 的 2.x.x 版本的 Spring Boot 项目以及 Spring Boot 项目如何修改JDK版本

    目录 一、在阿里云上官网上创建项目 二、将 IDEA 中创建项目的源地址修改为阿里云官网 三、创建 3.x.x 的项目之后修改配置降低至 2.7.x 版本和使用 JDK8(修改 Spring Boot 的 JDK 版本同理) 从上面的 Spring Boot 官网的截图中可以发现,自 2023-11-24 之后,最后一个支持使用 JDK8 的

    2024年01月21日
    浏览(52)
  • 2. 使用IDEA创建Spring Boot Hello项目并管理依赖——Maven入门指南

    前言:本文将介绍如何使用IDEA创建一个Spring Boot Hello项目,并通过Maven来管理项目的依赖。我们从项目的创建到代码的编写,再到项目的构建和运行,一步步演示了整个过程。 🚀 作者简介:作为某云服务提供商的后端开发人员,我将在这里与大家简要分享一些实用的开发小

    2024年02月10日
    浏览(42)
  • nextjs系列教程(二):项目创建及目录结构

    1. 使用 create-next-app创建新的 Next.js 应用程序,它会自动为你设置所有内容。 2. 如果你希望使用 TypeScript 开发项目,可以通过 --typescript 参数创建 TypeScript 项目 3. 创建过程中会提示选择项目配置,截图如下 项目名称,这里输入react_next_pro。 项目是否需要使用Typescript。 项目是

    2024年02月09日
    浏览(37)
  • Spring Boot项目 目录结构

    根目录: com.zhangziwa.practisesvr 启动类: com.zhangziwa.practisesvr.PractisesvrApplication 实体类: com.zhangziwa.practisesvr.model 数据传输对象(dto): com.zhangziwa.practisesvr.dto 视图包装对象(vo)推荐: com.zhangziwa.practisesvr.vo 数据接口访问层(Dao): com.zhangziwa.practisesvr.mapper 数据服务接口层(S

    2024年01月25日
    浏览(34)
  • 实践解决:IDEA2022版本创建Maven项目时没有出现src目录

    大家好,我是小白DunkIT,今天给大家分享一下我最近遇到的IDEA2022.3版本创建Maven项目时出现没有src目录的问题。 问题:IDEA创建Maven项目时没有出现src目录 创建Maven项目 新版本的IDEA创建是选用的是Maven Archetype,选择这个也是和Maven一样的。按照这样流程创建完成之后的的架构

    2024年02月11日
    浏览(43)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包