首页 > 其他分享 >Spring学习:如何创建并配置一个第三方Bean

Spring学习:如何创建并配置一个第三方Bean

时间:2024-05-27 10:33:11浏览次数:13  
标签:xml Spring class ComponentScan Bean 创建 第三方

文章目录

 

一、知识储备

  1. 使用 XML 配置
application.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
        https://www.springframework.org/schema/beans/spring-beans.xsd">

    <bean id="aService" class="com.test.learnjava.service.AService">
        <property name="bService" ref="bService" /> <!-- 注入另一个bean -->
		<property name="username" value="test" /> <!-- 注入int、String 等数据类型 -->
    </bean>

    <bean id="bService" class="com.test.learnjava.service.BService" />
</beans>
// 创建上下文
ApplicationContext context = new ClassPathXmlApplicationContext("application.xml");

// 获取Bean
AService aService = context.getBean(AService.class);

// 正常调用
aService.test();
  1. 使用 Annotation(注解)配置
@Component
public class BService {
    ...
}

@Component 注解就相当于定义了一个Bean

使用 @Autowired 就相当于把指定类型的Bean注入到指定的字段中。和XML配置相比,@Autowired大幅简化了注入,因为它不但可以写在set()方法上,还可以直接写在字段上,甚至可以写在构造方法中

@ComponentScan 标注的类表明是一个配置类,作用类似一个 .xml 配置文件。但要与 @ComponentScan 一起使用,目的是扫描涉及到的bean

二、创建第三方Bean

如果一个Bean不在我们自己的package管理之类,例如ZoneId,如何创建它?

答案是:我们自己在@Configuration类中编写一个Java方法创建并返回它,注意给方法标记一个@Bean注解:


@Configuration
@ComponentScan
public class AppConfig {
    // 创建一个Bean, A是其他package中的
    @Bean
    A createA() {
        return A.of("Z");
    }
}

Spring对标记为@Bean的方法只调用一次,因此返回的Bean仍然是单例。

https://blog.csdn.net/coding_sleep/article/details/106391749

标签:xml,Spring,class,ComponentScan,Bean,创建,第三方
From: https://www.cnblogs.com/zhihongShee/p/18215021

相关文章

  • 【JAVA】Java如何使用Spring Boot进行Web服务开发
    文章目录前言一、函数解释二、代码实现三、总结前言在现代的微服务架构中,创建快速、可靠的Web服务已经成为一项基本技能。SpringBoot是一个出色的框架,它简化了Spring应用开发,使我们能够更快速地创建和部署Web服务。在这篇博客中,我们将探讨如何使用Java和SpringBoo......
  • SpringValidation
    一、概述:​JSR303中提出了BeanValidation,表示JavaBean的校验,HibernateValidation是其具体实现,并对其进行了一些扩展,添加了一些实用的自定义校验注解。​Spring中集成了这些内容,你可以在Spring中以原生的手段来使用校验功能,当然Spring也对其进行了一点简单的扩展,以便其更适......
  • Java项目-基于springboot+vue的旅游管理系统(源码+数据库+文档)​
    如需完整项目,请私信博主基于SpringBoot+Vue的旅游管理系统开发语言:Java数据库:MySQL技术:SpringBoot+MyBatis+Vue.js工具:IDEA/Ecilpse、Navicat、Maven随着科学技术的飞速发展,网络快速发展、人民生活的快节奏都在努力与现代的先进技术接轨,通过科技手段来提高自身的优势,旅游管......
  • Java项目-基于springboot+vue的简历系统(源码+数据库+文档)​
    如需完整项目,请私信博主基于SpringBoot+Vue的简历系统开发语言:Java数据库:MySQL技术:SpringBoot+MyBatis+Vue.js工具:IDEA/Ecilpse、Navicat、Maven随着科学技术的飞速发展,社会的方方面面、各行各业都在努力与现代的先进技术接轨,通过科技手段来提高自身的优势,简历系统当然也不......
  • Spring Cloud快速入门
    SpringCloud是一个基于SpringBoot的微服务框架,它提供了一系列的功能和工具,用于构建分布式系统和服务。以下是一个SpringCloud应用框架的快速入门指南:1.环境准备安装JavaJDK:确保你的计算机上安装了JavaDevelopmentKit(JDK)。安装Maven或Gradle:Maven和Gradle是Java......
  • Spring Cloud 面试题(五)
    1.Eureka的自我保护模式是什么?Eureka的自我保护模式是一种应对网络异常的安全保护措施,旨在防止因网络分区或其他异常情况导致服务实例被错误地注销。当EurekaServer在短时间内丢失过多的客户端心跳时,会触发自我保护机制。以下是自我保护模式的几个关键点[40][41][46]:触......
  • Spring Cloud 面试题(六)
    1.Nginx与Ribbon的区别Nginx与Ribbon都是负载均衡器,但它们在设计定位、工作方式以及使用场景上存在一些区别:定位与角色:Nginx是一个通用的反向代理服务器,主要作为服务端的负载均衡器和反向代理,位于客户端和后端服务器之间。它通常以独立的服务器程序运行,可以作为独立的......
  • Spring Cloud 面试题(四)
    1.什么是微服务架构?微服务架构是一种软件开发架构风格,它将应用程序作为一组小的服务构建,每个服务运行在其独立的进程中,并通常围绕业务功能进行组织。这些服务可以通过定义良好的轻量级机制(通常是HTTPRESTfulAPI)进行通信。每个服务是自包含的,意味着它拥有自己的业务逻辑......
  • Spring Cloud 面试题(三)
    1.什么是SpringCloudGateway?SpringCloudGateway是SpringCloud的一个项目,旨在为微服务架构提供一种简单而有效的API网关解决方案。它是基于SpringFramework5和SpringBoot2.x构建的,并且设计为一个路由层,用于将请求路由到正确的服务实例。SpringCloudGateway的......
  • 【一篇搞懂】SpringMVC学习丨黑马程序员(学习笔记)
    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录一、前言......